use deveui as key

This commit is contained in:
Joerg Lehmann 2019-06-26 19:25:27 +02:00
parent 40f7563f72
commit b9cc2aacbc
1 changed files with 16 additions and 14 deletions

View File

@ -24,6 +24,7 @@ const (
type MessageProperties struct { type MessageProperties struct {
Time string `json:"Time"` Time string `json:"Time"`
Payload_hex string `json:"payload_hex"` Payload_hex string `json:"payload_hex"`
DevEUI string `json:"DevEUI"`
DevAddr string `json:"DevAddr"` DevAddr string `json:"DevAddr"`
LrrLAT float32 `json:"LrrLAT"` LrrLAT float32 `json:"LrrLAT"`
LrrLON float32 `json:"LrrLON"` LrrLON float32 `json:"LrrLON"`
@ -86,7 +87,7 @@ type payload_1 struct {
var file *os.File var file *os.File
func DecodePayload(s string, devaddr string, lrrlat float32, lrrlon float32, write2file bool) { func DecodePayload(s string, deveui string, devaddr string, lrrlat float32, lrrlon float32, write2file bool) {
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
@ -124,21 +125,21 @@ func DecodePayload(s string, devaddr string, lrrlat float32, lrrlon float32, wri
var step = int64(pl_1.O / 7) var step = int64(pl_1.O / 7)
t := pl_1.T t := pl_1.T
WriteDatapoint(tfp,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.H1,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),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)
t = t + int16(pl_1.TC2) t = t + int16(pl_1.TC2)
WriteDatapoint(tfp + (2 * step),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)
t = t + int16(pl_1.TC3) t = t + int16(pl_1.TC3)
WriteDatapoint(tfp + (3 * step),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)
t = t + int16(pl_1.TC4) t = t + int16(pl_1.TC4)
WriteDatapoint(tfp + (4 * step),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)
t = t + int16(pl_1.TC5) t = t + int16(pl_1.TC5)
WriteDatapoint(tfp + (5 * step),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)
t = t + int16(pl_1.TC6) t = t + int16(pl_1.TC6)
WriteDatapoint(tfp + (6 * step),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)
t = t + int16(pl_1.TC7) t = t + int16(pl_1.TC7)
WriteDatapoint(tfp + (7 * step),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)
} }
} else if (s[0:2] == "80") { } else if (s[0:2] == "80") {
fmt.Printf("{\n") fmt.Printf("{\n")
@ -155,13 +156,13 @@ func DecodePayload(s string, devaddr string, lrrlat float32, lrrlon float32, wri
// Time of Packet received // Time of Packet received
var tfp = (time.Now().Unix() / 60) var tfp = (time.Now().Unix() / 60)
WriteDatapoint(tfp,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)
} }
} }
} }
func WriteDatapoint(mytime int64, 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) {
// 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 %
@ -175,9 +176,9 @@ func WriteDatapoint(mytime int64, devaddr string, v uint8, h uint8, p uint8, w u
s := "" s := ""
if (v > 0) { if (v > 0) {
s = fmt.Sprintf("measurement,devaddr=%s v=%di,vp=%di,h=%di,p=%di,w=%di,w1=%di,w2=%di,t=%.1f,lrrlat=%f,lrrlon=%f %d\n",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 %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)
} else { } else {
s = fmt.Sprintf("measurement,devaddr=%s h=%di,p=%di,w=%di,w1=%di,w2=%di,t=%.1f,lrrlat=%f,lrrlon=%f %d\n",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 %d\n",deveui,devaddr,h,int32(p)+825,w*5,w1,w2,float32(t)/10,lrrlat,lrrlon,mytime*60*1000*1000*1000)
} }
WriteStringToFile(s) WriteStringToFile(s)
@ -233,10 +234,11 @@ func main() {
} }
fmt.Println("Time: " + u.Prop.Time) fmt.Println("Time: " + u.Prop.Time)
fmt.Println("Payload Hex: " + u.Prop.Payload_hex) fmt.Println("Payload Hex: " + u.Prop.Payload_hex)
fmt.Println("DevEUI: " + u.Prop.DevEUI)
fmt.Println("DevAddr: " + u.Prop.DevAddr) fmt.Println("DevAddr: " + u.Prop.DevAddr)
fmt.Printf("LrrLAT: %f\n",u.Prop.LrrLAT) fmt.Printf("LrrLAT: %f\n",u.Prop.LrrLAT)
fmt.Printf("LrrLON: %f\n",u.Prop.LrrLON) fmt.Printf("LrrLON: %f\n",u.Prop.LrrLON)
DecodePayload(u.Prop.Payload_hex, u.Prop.DevAddr, u.Prop.LrrLAT, u.Prop.LrrLON, true) DecodePayload(u.Prop.Payload_hex, u.Prop.DevEUI, u.Prop.DevAddr, u.Prop.LrrLAT, u.Prop.LrrLON, true)
}) })
log.Fatal(http.ListenAndServe(":8080", nil)) log.Fatal(http.ListenAndServe(":8080", nil))
} }