完善本地web数据
This commit is contained in:
parent
2446847ae9
commit
41d2d2d3ee
|
@ -75,6 +75,8 @@ var conf Conf
|
||||||
var DEVICEDATAS Devicedatas
|
var DEVICEDATAS Devicedatas
|
||||||
var demoDevice Device
|
var demoDevice Device
|
||||||
|
|
||||||
|
var airDevice Device
|
||||||
|
|
||||||
var db, _ = sql.Open("sqlite3", "./db/gateway.db")
|
var db, _ = sql.Open("sqlite3", "./db/gateway.db")
|
||||||
|
|
||||||
// 加载配置文件
|
// 加载配置文件
|
||||||
|
@ -114,6 +116,9 @@ func init() {
|
||||||
demoDevice.ONLINE = true
|
demoDevice.ONLINE = true
|
||||||
log.Println("init demoDevice success:", demoDevice)
|
log.Println("init demoDevice success:", demoDevice)
|
||||||
|
|
||||||
|
airDevice.DATA = make(map[string]interface{})
|
||||||
|
airDevice.DATA["data"]=0
|
||||||
|
|
||||||
dbdata_init()
|
dbdata_init()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
2
main.go
2
main.go
|
@ -10,10 +10,12 @@ import (
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
||||||
go gw_router()
|
go gw_router()
|
||||||
go serial_run()
|
go serial_run()
|
||||||
c := cron.New()
|
c := cron.New()
|
||||||
send_data(1001)
|
send_data(1001)
|
||||||
|
|
||||||
c.AddFunc("0, *, *, *, *, *", func() {
|
c.AddFunc("0, *, *, *, *, *", func() {
|
||||||
send_data(1001)
|
send_data(1001)
|
||||||
})
|
})
|
||||||
|
|
3
mq.go
3
mq.go
|
@ -1,3 +1,6 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
//var data []byte = []byte{0x01,0x01,0x01,0x00}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
91
worker.go
91
worker.go
|
@ -23,58 +23,56 @@ type Device struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
//处理通过tcp发送过来的数据
|
//处理通过tcp发送过来的数据
|
||||||
func yunhorn_wireless(data_buf []byte){
|
func yunhorn_wireless(data_buf []byte) {
|
||||||
//至少5个字节数据
|
//至少5个字节数据
|
||||||
log.Println("wireless.tcp.data.len:",len(data_buf))
|
log.Println("wireless.tcp.data.len:", len(data_buf))
|
||||||
if len(data_buf)>4 {
|
if len(data_buf) > 4 {
|
||||||
adrh := data_buf[0]
|
adrh := data_buf[0]
|
||||||
adrl := data_buf[1]
|
adrl := data_buf[1]
|
||||||
|
|
||||||
if (adrh==0 && adrl==0) || (adrh==0 && adrl==1) {
|
if (adrh == 0 && adrl == 0) || (adrh == 0 && adrl == 1) {
|
||||||
go yunhorn_ys_l_v1(data_buf)
|
go yunhorn_ys_l_v1(data_buf)
|
||||||
}else{
|
} else {
|
||||||
dataType := data_buf[2]
|
dataType := data_buf[2]
|
||||||
data_int := Bytes2Bits(data_buf[3:4])
|
data_int := Bytes2Bits(data_buf[3:4])
|
||||||
data := data_int[0]
|
data := data_int[0]
|
||||||
//第3个字节表示本数据帧的类型,00表示NPN数据类型,01表示磁开关数据类型,02表示485传感器上报数据类型,03表示485传感器数据采集类型
|
//第3个字节表示本数据帧的类型,00表示NPN数据类型,01表示磁开关数据类型,02表示485传感器上报数据类型,03表示485传感器数据采集类型
|
||||||
if dataType !=3 {
|
if dataType != 3 {
|
||||||
for _,item := range conf.WIRELESSSLAVEDEVICES{
|
for _, item := range conf.WIRELESSSLAVEDEVICES {
|
||||||
//数据是否需要反转,检测到有信号是1的情况
|
//数据是否需要反转,检测到有信号是1的情况
|
||||||
|
|
||||||
// log.Println("adrh:%d,adrl:%d,conf.adrh:%d,conf.adrl:%d",int(adrh),int(adrl),item.ADRH,item.ADRL)
|
// log.Println("adrh:%d,adrl:%d,conf.adrh:%d,conf.adrl:%d",int(adrh),int(adrl),item.ADRH,item.ADRL)
|
||||||
if int(adrh)!=item.ADRH || int(adrl) != item.ADRL{
|
if int(adrh) != item.ADRH || int(adrl) != item.ADRL {
|
||||||
continue;
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if item.FLIP {
|
||||||
|
if data == 0 {
|
||||||
|
data = 1
|
||||||
|
} else {
|
||||||
|
data = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var device Device
|
||||||
|
//TODO 配置device
|
||||||
|
device.ID = item.ID
|
||||||
|
device.VERSION = item.VERSION
|
||||||
|
device.ONLINE = true
|
||||||
|
|
||||||
if item.FLIP{
|
device.DATA = make(map[string]interface{})
|
||||||
if data==0{
|
device.DATA["data"] = data
|
||||||
data = 1
|
send_data(1005, device)
|
||||||
}else{
|
}
|
||||||
data = 0
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// if(len(data_buf)>8){
|
||||||
var device Device
|
// go yunhorn_wireless(data_buf[4:])
|
||||||
//TODO 配置device
|
// }
|
||||||
device.ID = item.ID
|
|
||||||
device.VERSION = item.VERSION
|
|
||||||
device.ONLINE = true
|
|
||||||
|
|
||||||
device.DATA = make(map[string]interface{})
|
|
||||||
device.DATA["data"] = data
|
|
||||||
send_data(1005, device)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// if(len(data_buf)>8){
|
|
||||||
// go yunhorn_wireless(data_buf[4:])
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func yunhorn_xdy_l_v1(data_buf []byte){
|
func yunhorn_xdy_l_v1(data_buf []byte) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,7 +140,7 @@ func yunhorn_ys_l_v1(data_buf []byte) {
|
||||||
demoDevice.DATA["data"+strconv.Itoa(2)] = 0
|
demoDevice.DATA["data"+strconv.Itoa(2)] = 0
|
||||||
demoDevice.DATA["data"+strconv.Itoa(3)] = 0
|
demoDevice.DATA["data"+strconv.Itoa(3)] = 0
|
||||||
|
|
||||||
if data_int0[0]==0 && data_int1[0]==0 {
|
if data_int0[0] == 0 && data_int1[0] == 0 && data_type[0] == 0 {
|
||||||
demoDevice.DATA["data"+strconv.Itoa(8)] = data_int[0]
|
demoDevice.DATA["data"+strconv.Itoa(8)] = data_int[0]
|
||||||
var device Device
|
var device Device
|
||||||
device.Lock()
|
device.Lock()
|
||||||
|
@ -225,6 +223,7 @@ func yunhorn_kgl_l_v1(data_buf []byte) {
|
||||||
|
|
||||||
// 采集并解析水表数据
|
// 采集并解析水表数据
|
||||||
func yunhorn_sb_c_v1(s *serial.Port, device_id string, command [][]byte, num string) {
|
func yunhorn_sb_c_v1(s *serial.Port, device_id string, command [][]byte, num string) {
|
||||||
|
|
||||||
_, err = s.Write([]byte(command[0]))
|
_, err = s.Write([]byte(command[0]))
|
||||||
check(err)
|
check(err)
|
||||||
if conf.DEBUG {
|
if conf.DEBUG {
|
||||||
|
|
Loading…
Reference in New Issue