parent
c1222cfe2f
commit
7b70cc660e
@ -0,0 +1,47 @@
|
|||||||
|
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)
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
package android
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"database/sql"
|
||||||
|
_ "go-sqlite3-master"
|
||||||
|
"application/pkg/app"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
|
func updateAverage (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(`update Endpoint set times = times + 1 where macAddress = ?`, macAddress)
|
||||||
|
rows, err := db.Query(`select SUM( times ) from Endpoint`)
|
||||||
|
defer rows.Close()
|
||||||
|
var sumOfTimes int
|
||||||
|
rows.Next()
|
||||||
|
rows.Scan(&sumOfTimes)
|
||||||
|
rows, err := db.Query(`select COUNT( macAddress ) from Endpoint`)
|
||||||
|
defer rows.Close()
|
||||||
|
var countOfMacAddress int
|
||||||
|
rows.Next()
|
||||||
|
rows.Scan(&countOfMacAddress)
|
||||||
|
db.Exec(`update Average set average = ?/?`sendMacAddress, countOfMacAddress)
|
||||||
|
appG.Response(http.StatusOK, "成功", null)
|
||||||
|
}
|
||||||
|
|
||||||
|
func wordSend (c *gin.Context) {
|
||||||
|
appG := app.Gin{C: c}
|
||||||
|
//这里获取转化好的数据
|
||||||
|
data := mediaPipe().data
|
||||||
|
updateAverage()
|
||||||
|
appG.Response(http.StatusOK, "成功", data)
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
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,10 @@
|
|||||||
|
package pkg
|
||||||
|
|
||||||
|
type Endpoint struct {
|
||||||
|
macAddress string //设备地址
|
||||||
|
times int //贡献算力次数
|
||||||
|
}
|
||||||
|
|
||||||
|
type Average struct {
|
||||||
|
average int //平均使用次数
|
||||||
|
}
|
Loading…
Reference in new issue