代码修改完成

This commit is contained in:
wyh 2022-03-07 08:37:38 +08:00
parent b86186937b
commit 830d011c1d
2 changed files with 29 additions and 14 deletions

View File

@ -31,10 +31,11 @@ func main() {
//ble服务 //ble服务
service.BleDelivery() service.BleDelivery()
go service.BleMessagePush() go service.BleWriteMqtt()
go service.BleCacheClear() // go service.BleMessagePush()
go service.Bletokeninit() // go service.BleCacheClear()
go service.BleHeartBeat() // go service.Bletokeninit()
// go service.BleHeartBeat()
go gin.Service(&gin.Config{ go gin.Service(&gin.Config{
RootPath: APPNAME, RootPath: APPNAME,

View File

@ -20,14 +20,14 @@ import (
"myschools.me/wyh/ble-april/mosquitto" "myschools.me/wyh/ble-april/mosquitto"
) )
var m map[string]*IBeancon var m map[string]*BeaconApril
var chn chan *IBeancon var chn chan *BeaconApril
var token string var token string
var expiretime time.Time var expiretime time.Time
func init() { func init() {
m = make(map[string]*IBeancon, 500) m = make(map[string]*BeaconApril, 500)
chn = make(chan *IBeancon, 500) chn = make(chan *BeaconApril, 500)
} }
type Bletoken struct { type Bletoken struct {
@ -117,11 +117,7 @@ var serviceHandler MQTT.MessageHandler = func(client MQTT.Client, msg MQTT.Messa
// 解析out1.device // 解析out1.device
bles := BleDecode(out1["devices"].([]interface{})) bles := BleDecode(out1["devices"].([]interface{}))
for _, d := range bles { for _, d := range bles {
chn <- &IBeancon{ chn <- d
DeviceID: fmt.Sprintf("%s:%s:%s:%s:%s:%s", d.Mac[0:2], d.Mac[2:4], d.Mac[4:6], d.Mac[6:8], d.Mac[8:10], d.Mac[10:12]),
HappenTime: time.Now(),
Updated: time.Now().Unix(),
}
} }
} }
@ -135,6 +131,20 @@ func BleDelivery() {
} }
func BleWriteMqtt() {
topic := "april"
for {
if b, ok := <-chn; ok {
if err := mosquitto.DistributeObject(&topic, 1, false, b); err != nil {
logrus.WithFields(logrus.Fields{
"func": "BleWriteMqtt",
}).Warnf("mosquitto.DistributeObject: %s", err.Error())
continue
}
}
}
}
// 取出数据进行处理 // 取出数据进行处理
func BleMessagePush() { func BleMessagePush() {
@ -186,7 +196,7 @@ func BleMessagePush() {
continue continue
} }
if i["msg"] == "ok" { if i["msg"] == "ok" {
m[b.DeviceID] = b m[b.Mac] = b
} }
} }
@ -293,6 +303,8 @@ type BeaconApril struct {
Mac string Mac string
Rssi string Rssi string
AdvertisementData string AdvertisementData string
HappenTime time.Time
Updated int64 `json:"-"`
} }
// func NewiBeacon(data []byte, mac string) (*IBeancon, error) { // func NewiBeacon(data []byte, mac string) (*IBeancon, error) {
@ -337,6 +349,8 @@ func BleDecode(data []interface{}) []*BeaconApril {
Mac: vals[2:14], Mac: vals[2:14],
Rssi: vals[14:16], Rssi: vals[14:16],
AdvertisementData: vals[16:], AdvertisementData: vals[16:],
HappenTime: time.Now(),
Updated: time.Now().Unix(),
}) })
} }
return bles return bles