From b4eaa3fd16bbd5bb95f763150b0c7002a075be32 Mon Sep 17 00:00:00 2001 From: Joerg Lehmann Date: Fri, 30 Apr 2021 15:12:27 +0200 Subject: [PATCH] fix bug when big weight change --- main.go | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index de3267e..a8659f0 100644 --- a/main.go +++ b/main.go @@ -340,32 +340,56 @@ func DecodePayload(s string, deveui string, devaddr string, lrrlat float32, lrrl WriteDatapoint(tfp, deveui, devaddr, pl_2.Vbat, pl_2.H, pl_2.P, w, 0, 0, t, lrrlat, lrrlon, 0, 0, 0, 0, 0) } //t = t + int16(pl_2.TC1) - w = w + uint16(pl_2.WC1) + if valid_measurements == 2 { + w = pl_2.W8 + } else { + w = w + uint16(pl_2.WC1) + } if valid_measurements > 1 { WriteDatapoint(tfp+(step), deveui, devaddr, 0, 1, 0, w, 0, 0, t, lrrlat, lrrlon, 0, 0, 0, 0, 0) } t = t + int16(pl_2.TC2) - w = w + uint16(pl_2.WC2) + if valid_measurements == 3 { + w = pl_2.W8 + } else { + w = w + uint16(pl_2.WC2) + } if valid_measurements > 2 { WriteDatapoint(tfp+(2*step), deveui, devaddr, 0, 1, 0, w, 0, 0, t, lrrlat, lrrlon, 0, 0, 0, 0, 0) } t = t + int16(pl_2.TC3) - w = w + uint16(pl_2.WC3) + if valid_measurements == 4 { + w = pl_2.W8 + } else { + w = w + uint16(pl_2.WC3) + } if valid_measurements > 3 { WriteDatapoint(tfp+(3*step), deveui, devaddr, 0, 1, 0, w, 0, 0, t, lrrlat, lrrlon, 0, 0, 0, 0, 0) } t = t + int16(pl_2.TC4) - w = w + uint16(pl_2.WC4) + if valid_measurements == 5 { + w = pl_2.W8 + } else { + w = w + uint16(pl_2.WC4) + } if valid_measurements > 4 { WriteDatapoint(tfp+(4*step), deveui, devaddr, 0, 1, 0, w, 0, 0, t, lrrlat, lrrlon, 0, 0, 0, 0, 0) } t = t + int16(pl_2.TC5) - w = w + uint16(pl_2.WC5) + if valid_measurements == 6 { + w = pl_2.W8 + } else { + w = w + uint16(pl_2.WC5) + } if valid_measurements > 5 { WriteDatapoint(tfp+(5*step), deveui, devaddr, 0, 1, 0, w, 0, 0, t, lrrlat, lrrlon, 0, 0, 0, 0, 0) } t = t + int16(pl_2.TC6) - w = w + uint16(pl_2.WC6) + if valid_measurements == 7 { + w = pl_2.W8 + } else { + w = w + uint16(pl_2.WC6) + } if valid_measurements > 6 { WriteDatapoint(tfp+(6*step), deveui, devaddr, 0, 1, 0, w, 0, 0, t, lrrlat, lrrlon, 0, 0, 0, 0, 0) }