Skip to content

Commit a4c9590

Browse files
authored
Allow omitting the DPT scale field (#84)
1 parent 2e640c1 commit a4c9590

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

dpt.go

+6-3
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,13 @@ type DPT struct {
1818
func newDPT(s BaseSentence) (DPT, error) {
1919
p := NewParser(s)
2020
p.AssertType(TypeDPT)
21-
return DPT{
21+
dpt := DPT{
2222
BaseSentence: s,
2323
Depth: p.Float64(0, "depth"),
2424
Offset: p.Float64(1, "offset"),
25-
RangeScale: p.Float64(2, "range scale"),
26-
}, p.Err()
25+
}
26+
if len(p.Fields) > 2 {
27+
dpt.RangeScale = p.Float64(2, "range scale")
28+
}
29+
return dpt, p.Err()
2730
}

dpt_test.go

+9
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,15 @@ var dpttests = []struct {
3030
RangeScale: MustParseDecimal("0.1"),
3131
},
3232
},
33+
{
34+
name: "good sentence with 2 fields",
35+
raw: "$INDPT,2.3,0.0*46",
36+
msg: DPT{
37+
Depth: MustParseDecimal("2.3"),
38+
Offset: MustParseDecimal("0.0"),
39+
RangeScale: MustParseDecimal("0"),
40+
},
41+
},
3342
{
3443
name: "bad validity",
3544
raw: "$SDDPT,0.5,0.5,*AA",

0 commit comments

Comments
 (0)