完善同步机制 1min一次

This commit is contained in:
fish 2019-05-06 21:03:40 +08:00
parent 7ae4a5597e
commit 8f7f176257
4 changed files with 56 additions and 42 deletions

View File

@ -116,30 +116,7 @@ func init() {
check(err)
var device Device
//var serialPort = make(map[string]int)
//for k, i := range conf.SERIALPORTS_LIST {
// log.Println(k)
// log.Println(i)
// if v, c := serialPort[k]; c {
// log.Println("repeatd serial port:", v)
// os.Exit(3)
// } else {
// serialPort[k] = 0
// }
//}
//log.Println("begin print serialPort")
//for k, i := range serialPort {
// log.Println(k)
// log.Println(i)
//}
log.Println("slaveDevices:", conf.WIRELESSSLAVEDEVICES)
// for _,i := range conf.WIRELESSSLAVEDEVICES{
// log.Println(conf.WIRELESSSLAVEDEVICES[k].ID)
// log.Println(i.ID)
// }
// log.Println("slaveDevices:", conf.WIRELESSSLAVEDEVICES)
for _,v := range conf.LORANODES {
v.CURRENT_DATA = -1
@ -217,9 +194,9 @@ func init() {
maledemoDevice.DATA["data2"] = 0
//3是男厕
DEVICEDATAS.DATA[demoDevice.VERSION+"_2"] = maledemoDevice
dbdata_init()
go dbdata_init()
}

13
main.go
View File

@ -15,12 +15,17 @@ func main() {
go serial_run()
c := cron.New()
send_data(CODE1001)
//获取数据防抖处理时间
// send_data(CODE1001)
//获取数据防抖处理时间配置
go getConf()
// c.AddFunc("0, *, *, *, *, *", func() {
// send_data(CODE1001)
// })
//一分钟一次 同步数据
c.AddFunc("0, *, *, *, *, *", func() {
send_data(CODE1001)
yunhorn_hb_dpark_v1()
})
c.AddFunc("*/10, *, *, *, *, *", func() {

View File

@ -71,15 +71,10 @@ func handleConn(conn net.Conn) {
func readConn(conn net.Conn, readChan chan<- []byte, stopChan chan<- bool) {
// data_buf := make(chan []byte)
// Rdata := make([]byte, 0)
data := make([]byte, 256)
Rdata2 := make([]byte, 0)
for {
// data := make([]byte, config.SERVER_RECV_LEN)
//data2 := make([]byte,256)
reqLen, err := conn.Read(data)
if err != nil {
log.Println(err)
@ -108,10 +103,10 @@ func readConn(conn net.Conn, readChan chan<- []byte, stopChan chan<- bool) {
buffer.WriteString(s)
// log.Println(b)
//分隔符
// log.Println("$$$$$$$$$$$$$$$$$$$$$$$$$",i,reqLen)
// log.Println("$$$$$$$$$$$$$$$$$$$$$$$$$",data[reqLen])
end :=0
//254为分隔符
if b==254 && i>3{
addrs := data[i-4:i]
//尿布台数据地址1位 数据2位
@ -186,11 +181,6 @@ func readConn(conn net.Conn, readChan chan<- []byte, stopChan chan<- bool) {
stopChan <- true
}
//BytesCombine 多个[]byte数组合并成一个[]byte
func BytesCombine(pBytes ...[]byte) []byte {
return bytes.Join(pBytes, []byte(""))
}
func writeConn(conn net.Conn, writeChan <-chan string, stopChan chan<- bool) {
for {
strData := <-writeChan

View File

@ -7,6 +7,8 @@ import (
_ "math/rand"
"strconv"
"sync"
"encoding/json"
"time"
)
type Devicedatas struct {
@ -105,7 +107,47 @@ func yunhorn_lora_l_v1(data_buf []byte) {
if conf.DEBUG {
log.Println(device)
}
// send_data(1005, device)
}
func yunhorn_hb_dpark_v1(){
log.Println("begin yunhorn_hb_dpark_v1")
// var datalist [len(conf.LORANODES)]LoraNode
datalist := make([]LoraNode,len(conf.LORANODES))
var R_data P1004_6
//心跳数据
R_data.CODE = 1009
//spao点的公厕
R_data.ID = "spaoDevs"
//尿布台
R_data.VERSION = "yunhorn_hb_dpark"
R_data.ONLINE = true
R_data.DATA = make(map[string]interface{})
R_data.DATA["data"]=datalist
for i,v := range conf.LORANODES {
loraNode,ok :=loraNodeMap.Load(v.ADR)
if !ok {
log.Println("hb load loraNode fail ", ok)
continue;
}
newLoraNode := LoraNode{}
newLoraNode.CURRENT_DATA = loraNode.(LoraNode).CURRENT_DATA
newLoraNode.TIME = loraNode.(LoraNode).TIME
newLoraNode.LOCATION_TYPE = ""
newLoraNode.LOCATION_CODE = ""
newLoraNode.LOCATION_DATA = loraNode.(LoraNode).LOCATION_DATA
newLoraNode.ADR = loraNode.(LoraNode).ADR
datalist[i]=newLoraNode
}
R_data.TIMESTAMP=time.Now().Unix()
data_bufTmp, _ := json.Marshal(R_data)
data_buf := string(data_bufTmp)
go post_to_server(data_buf)
}