完善lora网关冗余数据过滤,添加mqtt配置
This commit is contained in:
parent
1898095d9a
commit
be02a72085
|
@ -226,5 +226,9 @@
|
|||
"pro_category":1,
|
||||
"syn_data":false,
|
||||
"syn_extension_Time":false,
|
||||
"record_log_path":"/usr/local/dpark"
|
||||
"record_log_path":"/usr/local/dpark",
|
||||
"mqtt_open":true,
|
||||
"mqtt_broker":"tcp://120.77.206.101:1883",
|
||||
"mqtt_username":"",
|
||||
"mqtt_password":""
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import (
|
|||
// "strconv"
|
||||
"time"
|
||||
"sync"
|
||||
"math/rand"
|
||||
)
|
||||
|
||||
type Traffic struct {
|
||||
|
@ -43,6 +44,10 @@ type Conf struct {
|
|||
SYNDATA bool `json:"syn_data"`
|
||||
SYNEXTENSIONTIME bool `json:"syn_extension_Time"`
|
||||
RECORD_LOG_PATH string `json:"record_log_path"`
|
||||
MQTT_OPEN bool `json:"mqtt_open"`
|
||||
MQTT_BROKER string `json:"mqtt_broker"`
|
||||
MQTT_USERNAME string `json:"mqtt_username"`
|
||||
MQTT_PASSWORD string `json:"mqtt_password"`
|
||||
}
|
||||
|
||||
//无线 下位机
|
||||
|
@ -94,6 +99,7 @@ type LoraNode struct{
|
|||
CURRENT_DATA int `json:"current_data"`
|
||||
CHECK_TIME bool `json:"check_time"`
|
||||
DEVICE string `json:"device"`
|
||||
UPDATE_TIME time.Time `json:"update_time"`
|
||||
}
|
||||
|
||||
var conf Conf
|
||||
|
@ -101,13 +107,11 @@ var DEVICEDATAS Devicedatas
|
|||
var demoDevice Device
|
||||
|
||||
var today string
|
||||
//var airDevice Device
|
||||
|
||||
//var femaledemoDevice Device
|
||||
//var maledemoDevice Device
|
||||
|
||||
var nodeUpdateMap sync.Map
|
||||
// var logch = make(chan []byte)
|
||||
|
||||
//sensor data update map
|
||||
var sensorUpdateMap sync.Map
|
||||
|
||||
//log channel
|
||||
var logch = make(chan []byte)
|
||||
|
@ -120,6 +124,9 @@ var db, _ = sql.Open("sqlite3", "./db/gateway.db")
|
|||
// 加载配置文件
|
||||
func init() {
|
||||
|
||||
//以时间配置随机数种子
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
|
||||
t := time.Now()
|
||||
today = t.Format("2006-01-02")
|
||||
|
||||
|
|
3
main.go
3
main.go
|
@ -52,6 +52,7 @@ func main() {
|
|||
c.AddFunc("0, */10, *, *, *, *", savedata_cron)
|
||||
c.AddFunc("0, 0, 0, *, *, *", insertdata)
|
||||
c.AddFunc("0, 0, *, *, *, *", get_weather)
|
||||
//定时更新today字段,当前日期
|
||||
c.AddFunc("0, *, *, *, *, *", func(){
|
||||
t := time.Now()
|
||||
today = t.Format("2006-01-02")
|
||||
|
@ -60,6 +61,8 @@ func main() {
|
|||
|
||||
if conf.OPENTCPSETVER {
|
||||
|
||||
//开启mqtt默认认定是无线方案
|
||||
|
||||
go record_log_channel()
|
||||
|
||||
tcp_port := strconv.Itoa(conf.TCPPORT)
|
||||
|
|
|
@ -232,7 +232,7 @@ func dealDatav3(data []byte) string{
|
|||
// log.Println("loraNodeMap:",loraNodeMap)
|
||||
loraNode, ok := loraNodeMap.Load(adr)
|
||||
if !ok {
|
||||
log.Println("load loraNode success ", ok)
|
||||
log.Println("load loraNode fail ", adr)
|
||||
return ""
|
||||
}
|
||||
// log.Println("load loraNode:",loraNode)
|
||||
|
|
20
tcpserver.go
20
tcpserver.go
|
@ -85,6 +85,7 @@ func readConn(conn net.Conn, readChan chan<- []byte, stopChan chan<- bool) {
|
|||
continueCount := 0
|
||||
// log.Println("yunhorndeug.push.data.tcp.reqLen|data",reqLen,data)
|
||||
log.Println("$$$$$$$$$$$$$$$$$$$$$$$$$",data[:reqLen])
|
||||
now := time.Now()
|
||||
for i, b := range data[:reqLen] {
|
||||
|
||||
if reqLen<7{
|
||||
|
@ -104,11 +105,6 @@ func readConn(conn net.Conn, readChan chan<- []byte, stopChan chan<- bool) {
|
|||
buffer.WriteString(s)
|
||||
}
|
||||
|
||||
// log.Println("========================",data[reqLen-2:reqLen])
|
||||
|
||||
// log.Println(b)
|
||||
// log.Println("$$$$$$$$$$$$$$$$$$$$$$$$$",i,reqLen)
|
||||
// log.Println("$$$$$$$$$$$$$$$$$$$$$$$$$",data[reqLen])
|
||||
end :=0
|
||||
//254为分隔符
|
||||
if b==254 && i>3{
|
||||
|
@ -215,13 +211,23 @@ func readConn(conn net.Conn, readChan chan<- []byte, stopChan chan<- bool) {
|
|||
|
||||
log.Println("yunhorndeug.push.data.tcp:",buffer.String(),addrs,dataType,values)
|
||||
|
||||
_,ok := loraNodeMap.Load(buffer.String())
|
||||
loraNode,ok := loraNodeMap.Load(buffer.String())
|
||||
if !ok{
|
||||
log.Println("yunhorndeug.push.data.tcp.dev not exist:",buffer.String(),dataType,values)
|
||||
buffer = new(bytes.Buffer)
|
||||
buffer = new(bytes.Buffer)
|
||||
continue
|
||||
}
|
||||
|
||||
if !loraNode.(LoraNode).UPDATE_TIME.IsZero() {
|
||||
var duration = now.Sub(loraNode.(LoraNode).UPDATE_TIME).Seconds()
|
||||
var durationAsInt64 = int(duration)
|
||||
if(durationAsInt64<=1){
|
||||
log.Println("repeat.sensor.data:",addrs)
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
buffer = new(bytes.Buffer)
|
||||
|
||||
go write_log_channel(data[i-4:i+end])
|
||||
|
|
Loading…
Reference in New Issue