添加继电器类型,开关事件

This commit is contained in:
fish 2019-05-09 14:30:57 +08:00
parent 95a4d57d05
commit ddd0b42ebd
3 changed files with 104 additions and 21 deletions

View File

@ -52,6 +52,14 @@
} }
], ],
"lora_nodes":[ "lora_nodes":[
{
"adr":"dc390000",
"location_type":"changing_desk",
"location_code":"spao",
"location_data":"data13",
"current_data":0,
"device":"yunhorn_kq_d_v1_1"
},
{ {
"adr":"0c521618", "adr":"0c521618",
"location_type":"changing_desk", "location_type":"changing_desk",

View File

@ -311,7 +311,8 @@ func dealDatav3(data []byte) string{
var duration = nowtime.Sub(loraNode.(LoraNode).TIME).Seconds() var duration = nowtime.Sub(loraNode.(LoraNode).TIME).Seconds()
var durationAsInt64 = int(duration) var durationAsInt64 = int(duration)
log.Println("yunhorndeug.push.data.durationAsInt64:",durationAsInt64) // log.Println("yunhorndeug.push.data.durationAsInt64:",durationAsInt64)
if current == 0 { if current == 0 {
//类型2 吸顶 //类型2 吸顶
if datatype==2{ if datatype==2{
@ -378,15 +379,89 @@ func dealDatav3(data []byte) string{
} }
}else if datatype==3{ }else if datatype==3{
//空气质量
for _, b := range data[5:] { }else if datatype==4{
s := strconv.FormatInt(int64(b&0xff), 16) buffer := new(bytes.Buffer)
if len(s) == 1 {
buffer.WriteString("0") // log.Println("data[9]",int64(data[9]))
} // log.Println("data[10]",int64(data[10]))
buffer.WriteString(s)
if data[6] == 0{
buffer.WriteString("-")
} }
log.Println("aq.data:",buffer.String())
wdint1 := strconv.FormatInt(int64(data[7]&0xff), 10)
buffer.WriteString(wdint1)
buffer.WriteString(".")
wdfh := int(data[10])
wdint2 := strconv.FormatInt(int64(data[8]&0xff), 10)
if wdfh<10{
buffer.WriteString("0")
}
buffer.WriteString(wdint2)
log.Println("wdfh",data[6])
wddata := buffer.String()
log.Println("wddata",wddata)
buffer = new(bytes.Buffer)
sdint1 := strconv.FormatInt(int64(data[9]&0xff), 10)
buffer.WriteString(sdint1)
buffer.WriteString(".")
sdint2 := strconv.FormatInt(int64(data[10]&0xff), 10)
if wdfh<10{
buffer.WriteString("0")
}
buffer.WriteString(sdint2)
sddata := buffer.String()
log.Println("sddata",sddata)
nh3 := uint32(data[11])*256+uint32(data[12])
log.Println("nh3",nh3)
log.Println("h2s",data[13])
ch2o := uint32(data[14])*256+uint32(data[15])
log.Println("ch2o",ch2o)
co2data := uint32(data[16])*256+uint32(data[17])
log.Println("co2data",co2data)
tvocdata := data[18]
log.Println("tvocdata",tvocdata)
// log.Println("pm25data1",data[19])
// log.Println("pm25data2",data[20])
pm25data := uint32(data[19])*256+uint32(data[20])
log.Println("pm25data",pm25data)
// log.Println("pm10data1",data[21])
// log.Println("pm10data2",data[22])
pm10data := uint32(data[21])*256+uint32(data[22])
log.Println("pm10data",pm10data)
var R_data P1004_6
R_data.CODE = 1005
R_data.ID = "dc390000"
//尿布台
R_data.VERSION = "yunhorn_kq_c_v1"
R_data.ONLINE = true
R_data.DATA = make(map[string]interface{})
R_data.DATA["temperature"]=wddata
R_data.DATA["humidity"]=sddata
R_data.DATA["nh3"]=sddata
R_data.DATA["h2s"]=sddata
R_data.DATA["ch2o"]=ch2o
R_data.DATA["co2"]=co2data
R_data.DATA["tvoc"]=tvocdata
R_data.DATA["pm25"]=pm25data
R_data.DATA["pm10"]=pm10data
data_bufTmp, _ := json.Marshal(R_data)
data_buf := string(data_bufTmp)
go post_to_server(data_buf)
} }
// log.Println("current:",current) // log.Println("current:",current)
@ -424,7 +499,7 @@ func changeDataV2(loraNode LoraNode){
DEVICEDATAS.RLock() DEVICEDATAS.RLock()
DEVICEDATAS.DATA[loraNode.DEVICE].DATA[loraNode.LOCATION_DATA] = loraNode.CURRENT_DATA DEVICEDATAS.DATA[loraNode.DEVICE].DATA[loraNode.LOCATION_DATA] = loraNode.CURRENT_DATA
DEVICEDATAS.RUnlock() DEVICEDATAS.RUnlock()
log.Println("yunhorndeug.push.data.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@22222:",DEVICEDATAS.DATA[loraNode.DEVICE]) log.Println("yunhorndeug.push.data.change:",DEVICEDATAS.DATA[loraNode.DEVICE])
// log.Println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@") // log.Println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@")
} }

View File

@ -83,7 +83,7 @@ func readConn(conn net.Conn, readChan chan<- []byte, stopChan chan<- bool) {
buffer := new(bytes.Buffer) buffer := new(bytes.Buffer)
continueCount := 0 continueCount := 0
log.Println("yunhorndeug.push.data.tcp.reqLen|data",reqLen,data) // log.Println("yunhorndeug.push.data.tcp.reqLen|data",reqLen,data)
// log.Println("$$$$$$$$$$$$$$$$$$$$$$$$$",data[:reqLen]) // log.Println("$$$$$$$$$$$$$$$$$$$$$$$$$",data[:reqLen])
for i, b := range data[:reqLen] { for i, b := range data[:reqLen] {
@ -157,13 +157,13 @@ func readConn(conn net.Conn, readChan chan<- []byte, stopChan chan<- bool) {
log.Println("pm25data",pm25data) log.Println("pm25data",pm25data)
//8E 3C 00 00 47 46 //8E 3C 00 00 47 46
var green []byte = []byte{0x8E,0x3C,0x00,0x00,0x47,0x46} var close []byte = []byte{0x8E,0x3C,0x00,0x00,0x43,0x46}
var red []byte = []byte{0x8E,0x3C,0x00,0x00,0x52,0x46} var open []byte = []byte{0x8E,0x3C,0x00,0x00,0x4F,0x46}
var writedata []byte =[]byte{} var writedata []byte =[]byte{}
if pm25data>200{ if pm25data>100{
writedata = red writedata = open
}else{ }else{
writedata = green writedata = close
} }
v, err := connTest.Write(writedata) v, err := connTest.Write(writedata)
log.Println("send.msg.conn.RemoteAddr",connTest.RemoteAddr()) log.Println("send.msg.conn.RemoteAddr",connTest.RemoteAddr())
@ -183,11 +183,11 @@ func readConn(conn net.Conn, readChan chan<- []byte, stopChan chan<- bool) {
// values = data[i+2:i+3] // values = data[i+2:i+3]
values := data[i+2] values := data[i+2]
//8E 3C 00 00 47 46 //28 3C 00 00 47 46
var green []byte = []byte{0x8E,0x3C,0x00,0x00,0x47,0x46} var green []byte = []byte{0x28,0x3C,0x00,0x00,0x47,0x46}
var red []byte = []byte{0x8E,0x3C,0x00,0x00,0x52,0x46} var red []byte = []byte{0x28,0x3C,0x00,0x00,0x52,0x46}
var yellow []byte = []byte{0x8E,0x3C,0x00,0x00,0x59,0x46} var yellow []byte = []byte{0x28,0x3C,0x00,0x00,0x59,0x46}
var writedata []byte =[]byte{} var writedata []byte =[]byte{}
writedata = green writedata = green
if values == 2{ if values == 2{
@ -222,7 +222,7 @@ func readConn(conn net.Conn, readChan chan<- []byte, stopChan chan<- bool) {
buffer = new(bytes.Buffer) buffer = new(bytes.Buffer)
if(dataType ==1 || dataType ==2 ){ if(dataType ==1 || dataType ==2 || dataType == 4 ){
go dealDatav3(data[i-4:i+end]) go dealDatav3(data[i-4:i+end])
} }