groundlevel stuff
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2023-12-15 17:29:12 +01:00
parent 7ee7d4df89
commit 6d932f56c8
4 changed files with 48 additions and 7 deletions

View File

@ -2,6 +2,7 @@ package draginoLmds200
import (
"fmt"
"strconv"
"encoding/json"
"udi/database"
)
@ -25,7 +26,7 @@ type message struct {
Dis2 int `json:"dis2"`
}
func Parse(fPort int, decodedPayload []byte, variables *map[string]database.VariableType) error {
func Parse(fPort int, decodedPayload []byte, variables *map[string]database.VariableType, device *database.Device) error {
if fPort != 2 {
return fmt.Errorf("Unexpected fPort %d", fPort)
}
@ -40,17 +41,38 @@ func Parse(fPort int, decodedPayload []byte, variables *map[string]database.Vari
Unit: "V",
Value: message.Bat,
}
distance1 := message.Dis1 * 10
(*variables)["Distance1"] = database.VariableType {
Label: "Distance1",
Variable: "Level",
Unit: "mm",
Value: (message.Dis1 * 10),
Value: distance1,
}
distance2 := message.Dis2 * 10
(*variables)["Distance2"] = database.VariableType {
Label: "Distance2",
Variable: "Level",
Unit: "mm",
Value: (message.Dis2 * 10),
Value: distance2,
}
groundLevelI, exists := device.Attributes["GroundLevel"]
groundLevelS, ok := groundLevelI.(string)
groundLevel, err3 := strconv.Atoi(groundLevelS)
if exists && err3 == nil && ok {
correctedDistance1 := groundLevel - distance1
(*variables)["CorrectedDistance1"] = database.VariableType {
Label: "CorrectedDistance1",
Variable: "Level",
Unit: "mm",
Value: correctedDistance1,
}
correctedDistance2 := groundLevel - distance2
(*variables)["CorrectedDistance2"] = database.VariableType {
Label: "CorrectedDistance2",
Variable: "Level",
Unit: "mm",
Value: correctedDistance2,
}
}
return nil
}