BACnetNG driver does not properly write schedule objects

BACnetNG driver does not properly write schedule objects

Summary

 

An scedule in BACnet can have the objects:

Device_0030de091099.SCHEDULE_0.effective-period

Device_0030de091099.SCHEDULE_0.exception-schedule

Device_0030de091099.SCHEDULE_0.weekly-schedule

when trying to write the exception schedule the diagviewer/wireshark reports an error:

'Device_0030de091099' Error writing value to object '04400000' property '00000026' array index '4294967295' failed with error class '2', error code '9'

To reproduce for example take the string from the exception schedule

{<0> {<1> {[10] 255.255.01.255},{[10] 255.255.02.255}}},{<2> },{(3) 1},{<0> {(0) 255.255.255.255}},{<2> },{(3) 1},{<0> {(0) 255.255.255.255}},{<2> {[11] 00:00:00:000},{[0]},{[11] 00:00:00:000},{[0]}},{(3) 1}

and change it to

{<0> {<1> {[10] 255.255.01.255},{[10] 255.255.

03.255}}},{<2> },{(3) 1},{<0> {(0) 255.255.255.255}},{<2> },{(3) 1},{<0> {(0) 255.255.255.255}},{<2> {[11] 00:00:00:000},{[0]},{[11] 00:00:00:000},{[0]}},{(3) 1}

which still should be valid.

The weekly schedule also can't be written.

E.g. a string like this:

{<0> {[11] 08:00:00:000},{[2] 3},{[11] 18:00:00:000},{[2] 2}}

The effective period can be written

 

Description

 

An scedule in BACnet can have the objects:

Device_0030de091099.SCHEDULE_0.effective-period

Device_0030de091099.SCHEDULE_0.exception-schedule

Device_0030de091099.SCHEDULE_0.weekly-schedule

when trying to write the exception schedule the diagviewer/wireshark reports an error:

'Device_0030de091099' Error writing value to object '04400000' property '00000026' array index '4294967295' failed with error class '2', error code '9'

To reproduce for example take the string from the exception schedule

{<0> {<1> {[10] 255.255.01.255},{[10] 255.255.02.255}}},{<2> },{(3) 1},{<0> {(0) 255.255.255.255}},{<2> },{(3) 1},{<0> {(0) 255.255.255.255}},{<2> {[11] 00:00:00:000},{[0]},{[11] 00:00:00:000},{[0]}},{(3) 1}

and change it to

{<0> {<1> {[10] 255.255.01.255},{[10] 255.255.

03.255}}},{<2> },{(3) 1},{<0> {(0) 255.255.255.255}},{<2> },{(3) 1},{<0> {(0) 255.255.255.255}},{<2> {[11] 00:00:00:000},{[0]},{[11] 00:00:00:000},{[0]}},{(3) 1}

which still should be valid.

The weekly schedule also can't be written.

E.g. a string like this:

{<0> {[11] 08:00:00:000},{[2] 3},{[11] 18:00:00:000},{[2] 2}}

The effective period can be written

 

Solution

The problem was addressed in the parsing of nested constructed types.

Issue Number: 34768
Fixed on Date: 7.7.2015
Versions: 7.20 0 BUILD 21629