@@ -220,19 +220,23 @@ func (p Parser) Parse(indices []int) (msgs []parse.Message) {
220220
221221 id , _ := strconv .ParseUint (bits [:32 ], 2 , 32 )
222222 unkn1 , _ := strconv .ParseUint (bits [32 :40 ], 2 , 8 )
223- unkn2 , _ := strconv .ParseUint (bits [40 :48 ], 2 , 8 )
223+ nouse , _ := strconv .ParseUint (bits [40 :46 ], 2 , 6 )
224+ backflow , _ := strconv .ParseUint (bits [46 :48 ], 2 , 2 )
224225 consumption , _ := strconv .ParseUint (bits [48 :72 ], 2 , 24 )
225226 unkn3 , _ := strconv .ParseUint (bits [72 :74 ], 2 , 2 )
226- unkn4 , _ := strconv .ParseUint (bits [74 :80 ], 2 , 6 )
227+ leak , _ := strconv .ParseUint (bits [74 :78 ], 2 , 4 )
228+ leaknow , _ := strconv .ParseUint (bits [78 :80 ], 2 , 2 )
227229
228230 var r900 R900
229231
230232 r900 .ID = uint32 (id )
231233 r900 .Unkn1 = uint8 (unkn1 )
232- r900 .Unkn2 = uint8 (unkn2 )
234+ r900 .NoUse = uint8 (nouse )
235+ r900 .BackFlow = uint8 (backflow )
233236 r900 .Consumption = uint32 (consumption )
234237 r900 .Unkn3 = uint8 (unkn3 )
235- r900 .Unkn4 = uint8 (unkn4 )
238+ r900 .Leak = uint8 (leak )
239+ r900 .LeakNow = uint8 (leaknow )
236240
237241 msgs = append (msgs , r900 )
238242 }
@@ -243,10 +247,13 @@ func (p Parser) Parse(indices []int) (msgs []parse.Message) {
243247type R900 struct {
244248 ID uint32 `xml:",attr"` // 32 bits
245249 Unkn1 uint8 `xml:",attr"` // 8 bits
246- Unkn2 uint8 `xml:",attr"` // 8 bits
250+ NoUse uint8 `xml:",attr"` // 6 bits, day bins of no use
251+ BackFlow uint8 `xml:",attr"` // 2 bits, backflow past 35d hi/lo
247252 Consumption uint32 `xml:",attr"` // 24 bits
248253 Unkn3 uint8 `xml:",attr"` // 2 bits
249- Unkn4 uint8 `xml:",attr"` // 6 bits
254+ Leak uint8 `xml:",attr"` // 4 bits, day bins of leak
255+ LeakNow uint8 `xml:",attr"` // 2 bits, leak past 24h hi/lo
256+
250257}
251258
252259func (r900 R900 ) MsgType () string {
@@ -262,23 +269,27 @@ func (r900 R900) MeterType() uint8 {
262269}
263270
264271func (r900 R900 ) String () string {
265- return fmt .Sprintf ("{ID:%10d Unkn1:0x%02X Unkn2:0x%02X Consumption:%8d Unkn3:0x%02X Unkn4:0x%02X }" ,
272+ return fmt .Sprintf ("{ID:%10d Unkn1:0x%02X NoUse:%2d BackFlow:%1d Consumption:%8d Unkn3:0x%02X Leak:%2d LeakNow:%1d }" ,
266273 r900 .ID ,
267274 r900 .Unkn1 ,
268- r900 .Unkn2 ,
275+ r900 .NoUse ,
276+ r900 .BackFlow ,
269277 r900 .Consumption ,
270278 r900 .Unkn3 ,
271- r900 .Unkn4 ,
279+ r900 .Leak ,
280+ r900 .LeakNow ,
272281 )
273282}
274283
275284func (r900 R900 ) Record () (r []string ) {
276285 r = append (r , strconv .FormatUint (uint64 (r900 .ID ), 10 ))
277286 r = append (r , strconv .FormatUint (uint64 (r900 .Unkn1 ), 10 ))
278- r = append (r , strconv .FormatUint (uint64 (r900 .Unkn2 ), 10 ))
287+ r = append (r , strconv .FormatUint (uint64 (r900 .NoUse ), 10 ))
288+ r = append (r , strconv .FormatUint (uint64 (r900 .BackFlow ), 10 ))
279289 r = append (r , strconv .FormatUint (uint64 (r900 .Consumption ), 10 ))
280290 r = append (r , strconv .FormatUint (uint64 (r900 .Unkn3 ), 10 ))
281- r = append (r , strconv .FormatUint (uint64 (r900 .Unkn4 ), 10 ))
291+ r = append (r , strconv .FormatUint (uint64 (r900 .Leak ), 10 ))
292+ r = append (r , strconv .FormatUint (uint64 (r900 .LeakNow ), 10 ))
282293
283294 return
284295}
0 commit comments