new first packet with fw_version
This commit is contained in:
parent
dd64d079a4
commit
5a6a4f03a9
|
|
@ -33,6 +33,7 @@ type MessageProperties struct {
|
||||||
type Message struct {
|
type Message struct {
|
||||||
Prop MessageProperties `json:"DevEUI_uplink"`
|
Prop MessageProperties `json:"DevEUI_uplink"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type payload_128 struct {
|
type payload_128 struct {
|
||||||
Version uint8
|
Version uint8
|
||||||
Vbat uint8
|
Vbat uint8
|
||||||
|
|
@ -44,6 +45,18 @@ type payload_128 struct {
|
||||||
W uint16
|
W uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type payload_129 struct {
|
||||||
|
Version uint8
|
||||||
|
Fw_version int32
|
||||||
|
Vbat uint8
|
||||||
|
H uint8
|
||||||
|
T int16
|
||||||
|
P uint8
|
||||||
|
W1 int32
|
||||||
|
W2 int32
|
||||||
|
W uint16
|
||||||
|
}
|
||||||
|
|
||||||
type payload_1 struct {
|
type payload_1 struct {
|
||||||
Version uint8
|
Version uint8
|
||||||
Vbat uint8
|
Vbat uint8
|
||||||
|
|
@ -92,9 +105,11 @@ func DecodePayload(s string, deveui string, devaddr string, lrrlat float32, lrrl
|
||||||
var ba []byte
|
var ba []byte
|
||||||
var pl_1 payload_1
|
var pl_1 payload_1
|
||||||
var pl_128 payload_128
|
var pl_128 payload_128
|
||||||
|
var pl_129 payload_129
|
||||||
ba, _ = hex.DecodeString(s)
|
ba, _ = hex.DecodeString(s)
|
||||||
pl_1 = payload_1{}
|
pl_1 = payload_1{}
|
||||||
pl_128 = payload_128{}
|
pl_128 = payload_128{}
|
||||||
|
pl_129 = payload_129{}
|
||||||
br := bytes.NewReader(ba)
|
br := bytes.NewReader(ba)
|
||||||
if (s[0:2] == "01") {
|
if (s[0:2] == "01") {
|
||||||
err := binary.Read(br, binary.LittleEndian, &pl_1)
|
err := binary.Read(br, binary.LittleEndian, &pl_1)
|
||||||
|
|
@ -106,6 +121,11 @@ func DecodePayload(s string, deveui string, devaddr string, lrrlat float32, lrrl
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
}
|
}
|
||||||
|
} else if (s[0:2] == "81") {
|
||||||
|
err := binary.Read(br, binary.LittleEndian, &pl_129)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
fmt.Printf("Payload String is unknown: %s\n",s)
|
fmt.Printf("Payload String is unknown: %s\n",s)
|
||||||
}
|
}
|
||||||
|
|
@ -129,22 +149,21 @@ func DecodePayload(s string, deveui string, devaddr string, lrrlat float32, lrrl
|
||||||
// the second measurement as first..., the same for humidity, which is usually too low...
|
// the second measurement as first..., the same for humidity, which is usually too low...
|
||||||
t := pl_1.T
|
t := pl_1.T
|
||||||
t = t + int16(pl_1.TC1)
|
t = t + int16(pl_1.TC1)
|
||||||
//WriteDatapoint(tfp,deveui,devaddr,pl_1.Vbat,pl_1.H1,pl_1.P1,pl_1.W1,0,0,t,lrrlat,lrrlon)
|
WriteDatapoint(tfp,deveui,devaddr,pl_1.Vbat,pl_1.H2,pl_1.P1,pl_1.W1,0,0,t,lrrlat,lrrlon,0)
|
||||||
WriteDatapoint(tfp,deveui,devaddr,pl_1.Vbat,pl_1.H2,pl_1.P1,pl_1.W1,0,0,t,lrrlat,lrrlon)
|
|
||||||
//t = t + int16(pl_1.TC1)
|
//t = t + int16(pl_1.TC1)
|
||||||
WriteDatapoint(tfp + (step),deveui,devaddr,0,pl_1.H2,pl_1.P2,pl_1.W2,0,0,t,lrrlat,lrrlon)
|
WriteDatapoint(tfp + (step),deveui,devaddr,0,pl_1.H2,pl_1.P2,pl_1.W2,0,0,t,lrrlat,lrrlon,0)
|
||||||
t = t + int16(pl_1.TC2)
|
t = t + int16(pl_1.TC2)
|
||||||
WriteDatapoint(tfp + (2 * step),deveui,devaddr,0,pl_1.H3,pl_1.P3,pl_1.W3,0,0,t,lrrlat,lrrlon)
|
WriteDatapoint(tfp + (2 * step),deveui,devaddr,0,pl_1.H3,pl_1.P3,pl_1.W3,0,0,t,lrrlat,lrrlon,0)
|
||||||
t = t + int16(pl_1.TC3)
|
t = t + int16(pl_1.TC3)
|
||||||
WriteDatapoint(tfp + (3 * step),deveui,devaddr,0,pl_1.H4,pl_1.P4,pl_1.W4,0,0,t,lrrlat,lrrlon)
|
WriteDatapoint(tfp + (3 * step),deveui,devaddr,0,pl_1.H4,pl_1.P4,pl_1.W4,0,0,t,lrrlat,lrrlon,0)
|
||||||
t = t + int16(pl_1.TC4)
|
t = t + int16(pl_1.TC4)
|
||||||
WriteDatapoint(tfp + (4 * step),deveui,devaddr,0,pl_1.H5,pl_1.P5,pl_1.W5,0,0,t,lrrlat,lrrlon)
|
WriteDatapoint(tfp + (4 * step),deveui,devaddr,0,pl_1.H5,pl_1.P5,pl_1.W5,0,0,t,lrrlat,lrrlon,0)
|
||||||
t = t + int16(pl_1.TC5)
|
t = t + int16(pl_1.TC5)
|
||||||
WriteDatapoint(tfp + (5 * step),deveui,devaddr,0,pl_1.H6,pl_1.P6,pl_1.W6,0,0,t,lrrlat,lrrlon)
|
WriteDatapoint(tfp + (5 * step),deveui,devaddr,0,pl_1.H6,pl_1.P6,pl_1.W6,0,0,t,lrrlat,lrrlon,0)
|
||||||
t = t + int16(pl_1.TC6)
|
t = t + int16(pl_1.TC6)
|
||||||
WriteDatapoint(tfp + (6 * step),deveui,devaddr,0,pl_1.H7,pl_1.P7,pl_1.W7,0,0,t,lrrlat,lrrlon)
|
WriteDatapoint(tfp + (6 * step),deveui,devaddr,0,pl_1.H7,pl_1.P7,pl_1.W7,0,0,t,lrrlat,lrrlon,0)
|
||||||
t = t + int16(pl_1.TC7)
|
t = t + int16(pl_1.TC7)
|
||||||
WriteDatapoint(tfp + (7 * step),deveui,devaddr,0,pl_1.H8,pl_1.P8,pl_1.W8,0,0,t,lrrlat,lrrlon)
|
WriteDatapoint(tfp + (7 * step),deveui,devaddr,0,pl_1.H8,pl_1.P8,pl_1.W8,0,0,t,lrrlat,lrrlon,0)
|
||||||
}
|
}
|
||||||
} else if (s[0:2] == "80") {
|
} else if (s[0:2] == "80") {
|
||||||
fmt.Printf("{\n")
|
fmt.Printf("{\n")
|
||||||
|
|
@ -161,7 +180,25 @@ func DecodePayload(s string, deveui string, devaddr string, lrrlat float32, lrrl
|
||||||
// Time of Packet received
|
// Time of Packet received
|
||||||
var tfp = (time.Now().Unix() / 60)
|
var tfp = (time.Now().Unix() / 60)
|
||||||
|
|
||||||
WriteDatapoint(tfp,deveui,devaddr,pl_128.Vbat,pl_128.H,pl_128.P,pl_128.W,pl_128.W1,pl_128.W2,pl_128.T,lrrlat,lrrlon)
|
WriteDatapoint(tfp,deveui,devaddr,pl_128.Vbat,pl_128.H,pl_128.P,pl_128.W,pl_128.W1,pl_128.W2,pl_128.T,lrrlat,lrrlon,0)
|
||||||
|
}
|
||||||
|
} else if (s[0:2] == "81") {
|
||||||
|
fmt.Printf("{\n")
|
||||||
|
fmt.Printf(" version: %d,\n", pl_129.Version)
|
||||||
|
fmt.Printf(" fw_version: %d,\n", pl_129.Fw_version)
|
||||||
|
fmt.Printf(" vbat: %d,\n", pl_129.Vbat)
|
||||||
|
fmt.Printf(" humidity: %d\n",pl_129.H)
|
||||||
|
fmt.Printf(" pressure: %d\n",pl_129.P)
|
||||||
|
fmt.Printf(" weight1: %d\n",pl_129.W1)
|
||||||
|
fmt.Printf(" weight2: %d\n",pl_129.W2)
|
||||||
|
fmt.Printf(" weight: %d\n",pl_129.W)
|
||||||
|
fmt.Printf(" temp: %d\n",pl_129.T)
|
||||||
|
fmt.Printf("}\n")
|
||||||
|
if write2file {
|
||||||
|
// Time of Packet received
|
||||||
|
var tfp = (time.Now().Unix() / 60)
|
||||||
|
|
||||||
|
WriteDatapoint(tfp,deveui,devaddr,pl_129.Vbat,pl_129.H,pl_129.P,pl_129.W,pl_129.W1,pl_129.W2,pl_129.T,lrrlat,lrrlon,pl_129.Fw_version)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Send alert if necessary
|
// Send alert if necessary
|
||||||
|
|
@ -177,7 +214,7 @@ func DecodePayload(s string, deveui string, devaddr string, lrrlat float32, lrrl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func WriteDatapoint(mytime int64, deveui string, devaddr string, v uint8, h uint8, p uint8, w uint16, w1 int32, w2 int32, t int16, lrrlat float32, lrrlon float32) {
|
func WriteDatapoint(mytime int64, deveui string, devaddr string, v uint8, h uint8, p uint8, w uint16, w1 int32, w2 int32, t int16, lrrlat float32, lrrlon float32, fw_version int32) {
|
||||||
// wir nehmen humidity als Referenz, wenn diese > 0 ist, dann ist es
|
// wir nehmen humidity als Referenz, wenn diese > 0 ist, dann ist es
|
||||||
// eine gueltige Messung
|
// eine gueltige Messung
|
||||||
var vp uint8 // Voltage in %
|
var vp uint8 // Voltage in %
|
||||||
|
|
@ -191,9 +228,9 @@ func WriteDatapoint(mytime int64, deveui string, devaddr string, v uint8, h uint
|
||||||
|
|
||||||
s := ""
|
s := ""
|
||||||
if (v > 0) {
|
if (v > 0) {
|
||||||
s = fmt.Sprintf("measurement,deveui=%s devaddr=\"%s\",v=%di,vp=%di,h=%di,p=%di,w=%di,w1=%di,w2=%di,t=%.1f,lrrlat=%f,lrrlon=%f %d\n",deveui,devaddr,int32(v)*7+2510,vp,h,int32(p)+825,w*5,w1,w2,float32(t)/10,lrrlat,lrrlon,mytime*60*1000*1000*1000)
|
s = fmt.Sprintf("measurement,deveui=%s devaddr=\"%s\",v=%di,vp=%di,h=%di,p=%di,w=%di,w1=%di,w2=%di,t=%.1f,lrrlat=%f,lrrlon=%f,fw_version=%di %d\n",deveui,devaddr,int32(v)*7+2510,vp,h,int32(p)+825,w*5,w1,w2,float32(t)/10,lrrlat,lrrlon,fw_version,mytime*60*1000*1000*1000)
|
||||||
} else {
|
} else {
|
||||||
s = fmt.Sprintf("measurement,deveui=%s devaddr=\"%s\",h=%di,p=%di,w=%di,w1=%di,w2=%di,t=%.1f,lrrlat=%f,lrrlon=%f %d\n",deveui,devaddr,h,int32(p)+825,w*5,w1,w2,float32(t)/10,lrrlat,lrrlon,mytime*60*1000*1000*1000)
|
s = fmt.Sprintf("measurement,deveui=%s devaddr=\"%s\",h=%di,p=%di,w=%di,w1=%di,w2=%di,t=%.1f,lrrlat=%f,lrrlon=%f,fw_version=%di %d\n",deveui,devaddr,h,int32(p)+825,w*5,w1,w2,float32(t)/10,lrrlat,lrrlon,fw_version,mytime*60*1000*1000*1000)
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteStringToFile(s)
|
WriteStringToFile(s)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue