parent
7b70cc660e
commit
38f3778b7a
@ -1,47 +0,0 @@
|
|||||||
package android
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"net/http"
|
|
||||||
"database/sql"
|
|
||||||
_ "go-sqlite3-master"
|
|
||||||
"application/pkg/app"
|
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
)
|
|
||||||
|
|
||||||
func getMacAddress() (macAddress []string) {
|
|
||||||
netInterfaces, err := net.Interfaces()
|
|
||||||
if err != nil {
|
|
||||||
fmt.Printf("fail to get net interfaces: %v", err)
|
|
||||||
return macAddress
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, netInterface := range netInterfaces {
|
|
||||||
MacAddress := netInterface.HardwareAddr.String()
|
|
||||||
if len(MacAddress) == 0 {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
macAddress = append(macAddress, MacAddress)
|
|
||||||
}
|
|
||||||
return macAddress
|
|
||||||
}
|
|
||||||
|
|
||||||
func sendMacAddress(c *gin.Context) {
|
|
||||||
appG := app.Gin{C: c}
|
|
||||||
macAddress = getMacAddress()
|
|
||||||
db, err := sql.Open("sqlite3", "info.db")
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
}
|
|
||||||
defer db.Close()
|
|
||||||
db.Exec(`insert into Endpoint values (?,?)`, macAddress, 0)
|
|
||||||
appG.Response(http.StatusOK, "成功", null)
|
|
||||||
}
|
|
||||||
|
|
||||||
func mediaPipe(c *gin.Context) {
|
|
||||||
appG := app.Gin{C: c}
|
|
||||||
//这里将视频流转化为自然语言
|
|
||||||
data :=
|
|
||||||
appG.Response(http.StatusOK, "成功", data)
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
package pc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"database/sql"
|
|
||||||
_ "go-sqlite3-master"
|
|
||||||
"net/http"
|
|
||||||
)
|
|
||||||
|
|
||||||
//拉取在线的算力设备
|
|
||||||
func endpoint(w http.ResponseWriter, r *http.Request) {
|
|
||||||
db, err := sql.Open("sqlite3", "info.db")
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
}
|
|
||||||
defer db.Close()
|
|
||||||
rows, _ := db.Query(`select endpoint.macAddress from Endpoint where endpoint.times < Average.average;`)
|
|
||||||
defer rows.Close()
|
|
||||||
var endpoint Endpoint
|
|
||||||
var endpoints = []string {}
|
|
||||||
for rows.Next() {
|
|
||||||
rows.Scan(&endpoint.macAddress)
|
|
||||||
endpoints.append(endpoint.macAddress)
|
|
||||||
}
|
|
||||||
rows.Close()
|
|
||||||
}
|
|
||||||
|
|
||||||
func shuffle(n int) []int {
|
|
||||||
b := rand.Perm(n)
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
func request(params map[string]interface{}) error {
|
|
||||||
var indexes = []int {0,1,2,3,4,5,6}
|
|
||||||
var err error
|
|
||||||
|
|
||||||
shuffle(indexes)
|
|
||||||
maxRetryTimes := 3
|
|
||||||
|
|
||||||
idx := 0
|
|
||||||
for i :=0; i < maxRetryTimes; i++ {
|
|
||||||
err = apiRequest(params, indexes[idx])
|
|
||||||
if err == nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
idx++
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
//logging
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
@ -0,0 +1,5 @@
|
|||||||
|
module main.go
|
||||||
|
|
||||||
|
go 1.19
|
||||||
|
|
||||||
|
require github.com/mattn/go-sqlite3 v1.14.15 // indirect
|
@ -0,0 +1,2 @@
|
|||||||
|
github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI=
|
||||||
|
github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
Binary file not shown.
@ -0,0 +1,92 @@
|
|||||||
|
package android
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"net"
|
||||||
|
"database/sql"
|
||||||
|
"time"
|
||||||
|
"pkg/app"
|
||||||
|
"errors"
|
||||||
|
_ "github.com/mattn/go-sqlite3"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
|
//获取本设备的mac地址
|
||||||
|
func getMacAddress() (macAddress string) {
|
||||||
|
netInterfaces, err := net.Interfaces()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("fail to get net interfaces: %v", err)
|
||||||
|
return macAddress
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, netInterface := range netInterfaces {
|
||||||
|
if ( netInterface.Name == "WLAN" ) {
|
||||||
|
macAddress := netInterface.HardwareAddr
|
||||||
|
return macAddress.String()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return macAddress
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取本设备的IP地址
|
||||||
|
func getIpAddress() (addr string, err error) {
|
||||||
|
var (
|
||||||
|
ief *net.Interface
|
||||||
|
addrs []net.Addr
|
||||||
|
ipv4Addr net.IP
|
||||||
|
)
|
||||||
|
if ief, err = net.InterfaceByName("WLAN"); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if addrs, err = ief.Addrs(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
for _, addr := range addrs {
|
||||||
|
if ipv4Addr = addr.(*net.IPNet).IP.To4(); ipv4Addr != nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ipv4Addr == nil {
|
||||||
|
return "", errors.New(fmt.Sprintf("interface WLAN don't have an ipv4 address\n"))
|
||||||
|
}
|
||||||
|
return ipv4Addr.String(), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
//向服务器发送本设备的mac地址和IP地址
|
||||||
|
func sendAddress(c *gin.Context) {
|
||||||
|
appG := app.Gin{C: c}
|
||||||
|
now := time.Now()
|
||||||
|
hour := now.Hour()
|
||||||
|
minute := now.Minute()
|
||||||
|
t := hour*100 + minute
|
||||||
|
macAddress := getMacAddress()
|
||||||
|
ipAddress, err := getIpAddress()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
db, err := sql.Open("sqlite3", "info.db")
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
defer db.Close()
|
||||||
|
rows, err := db.Query(`select macAddress from Endpoint where macAddress = ?;`, macAddress)
|
||||||
|
defer rows.Close()
|
||||||
|
var MacAddress string
|
||||||
|
rows.Next()
|
||||||
|
rows.Scan(&MacAddress)
|
||||||
|
if MacAddress == "" {
|
||||||
|
db.Exec(`insert into Endpoint values (?,?,?,?);`, macAddress, ipAddress, 0, t)
|
||||||
|
} else {
|
||||||
|
db.Exec(`update Endpoint set ipAddress = ? where macAddress = ?;`, ipAddress, macAddress)
|
||||||
|
db.Exec(`update Endpoint set isOnLine = ? where macAddress = ?;`, t, macAddress)
|
||||||
|
}
|
||||||
|
appG.Response(http.StatusOK, "成功", null)
|
||||||
|
}
|
||||||
|
|
||||||
|
func mediaPipe(c *gin.Context) {
|
||||||
|
appG := app.Gin{C: c}
|
||||||
|
//这里将视频流转化为自然语言
|
||||||
|
data :=
|
||||||
|
appG.Response(http.StatusOK, "成功", data)
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
package pc
|
||||||
|
|
||||||
|
import (
|
||||||
|
"database/sql"
|
||||||
|
_ "github.com/mattn/go-sqlite3"
|
||||||
|
"time"
|
||||||
|
"math/rand"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
//拉取在线的算力设备
|
||||||
|
func ipAddress() []string {
|
||||||
|
now := time.Now()
|
||||||
|
hour := now.Hour()
|
||||||
|
minute := now.Minute()
|
||||||
|
t := hour*100 + minute -100
|
||||||
|
db, err := sql.Open("sqlite3", "info.db")
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
defer db.Close()
|
||||||
|
rows, _ := db.Query(`select average from Average;`)
|
||||||
|
defer rows.Close()
|
||||||
|
var average int
|
||||||
|
rows.Next()
|
||||||
|
rows.Scan(&average)
|
||||||
|
rows, _ = db.Query(`select ipAddress from Endpoint where times <= ? and isOnLine >= ?;`, average, t)
|
||||||
|
defer rows.Close()
|
||||||
|
var endpoint Endpoint
|
||||||
|
ipAddress := ""
|
||||||
|
for rows.Next() {
|
||||||
|
rows.Scan(&endpoint.ipAddress)
|
||||||
|
ipAddress += endpoint.ipAddress + ","
|
||||||
|
}
|
||||||
|
rows.Close()
|
||||||
|
sep := ","
|
||||||
|
IpAddress := strings.Split(ipAddress, sep)
|
||||||
|
return IpAddress
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
rand.Seed(time.Now().UnixNano())
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//洗牌算法
|
||||||
|
func shuffle(n []string) {
|
||||||
|
for i := 0; i < len(n); i++ {
|
||||||
|
a := rand.Intn(len(n))
|
||||||
|
b := rand.Intn(len(n))
|
||||||
|
n[a], n[b] = n[b], n[a]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//返回可进行运算的设备地址
|
||||||
|
func request() []string {
|
||||||
|
var ipAddress = ipAddress()
|
||||||
|
for i := 0; i < 3; i++ {
|
||||||
|
shuffle(ipAddress)
|
||||||
|
}
|
||||||
|
return ipAddress
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
//获取手语视频
|
||||||
|
func getMedia() {}
|
||||||
|
|
||||||
|
//翻译视频为自然语言
|
||||||
|
func mediaToWords() {}
|
||||||
|
|
||||||
|
//显示自然语言
|
||||||
|
func display() {}
|
@ -0,0 +1,24 @@
|
|||||||
|
//输入自然语言
|
||||||
|
function enterWords() {
|
||||||
|
words = infos.words.value
|
||||||
|
wordsToMedia(words)
|
||||||
|
}
|
||||||
|
|
||||||
|
//翻译自然语言为动画
|
||||||
|
function wordsToMedia(words) {}
|
||||||
|
|
||||||
|
//显示动画
|
||||||
|
function display(media) {
|
||||||
|
var xmlhttp;
|
||||||
|
if (window.XMLHttpRequest) xmlhttp=new XMLHttpRequest();
|
||||||
|
else xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
|
||||||
|
xmlhttp.onreadystatechange=function()
|
||||||
|
{
|
||||||
|
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
|
||||||
|
if (xmlhttp.responseText=="成功") alert("删除成功!")
|
||||||
|
else alert("操作失败")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
xmlhttp.open("GET","http://127.0.0.1:8000//"+"?user="+user+"&ps="+ps,true);
|
||||||
|
xmlhttp.send();
|
||||||
|
}
|
Loading…
Reference in new issue