Hi all,
I'm using bacnet-stack to create device have 1000 bacnet point. I wonder how to answer PDU_TYPE_CONFIRMED_SERVICE_REQUEST/ SERVICE_CONFIRMED_READ_PROPERTY / OBJECT_DEVICE / PROP_OBJECT_LIST. 1000 point will exceed MAX APDU length.
Thank you
The BACnet Device object has a property: object_list
The object_list property is a BACnetARRAY which means: array index 0 is the array length (number of objects) array index 1..N are the BACnet object-identifier (object-type + object-instance) of each object.
A ReadProperty or ReadPropertyMultiple to an object_list property with a large number of objects in a device - using the array index of ALL - without segmentation - would likely return "segmentation not supported". The client could then fallback to using either a single array index or multiple array indices (ReadPropertyMultiple).
Even if the device supported segmentation, it is possible that the size of the giant object-list would not fit into the number of segments that are supported by the device, and so it is required that the client fallback using one or more indices of a BACnetARRAY property.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
Anonymous
-
2023-12-06
I want to use BACnet stack 1.3 for my appliation, but I hope to support segmentation. Current code does not support segmentation, I remembered that you have ever created a branch about segmentation seversl years ago, but I cannot find it now, could please help me to provide the link? thanks.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The BACnet Device object has a property: object_list
The object_list property is a BACnetARRAY which means:
array index 0 is the array length (number of objects)
array index 1..N are the BACnet object-identifier (object-type + object-instance) of each object.
A ReadProperty or ReadPropertyMultiple to an object_list property with a large number of objects in a device - using the array index of ALL - without segmentation - would likely return "segmentation not supported". The client could then fallback to using either a single array index or multiple array indices (ReadPropertyMultiple).
Even if the device supported segmentation, it is possible that the size of the giant object-list would not fit into the number of segments that are supported by the device, and so it is required that the client fallback using one or more indices of a BACnetARRAY property.
I want to use BACnet stack 1.3 for my appliation, but I hope to support segmentation. Current code does not support segmentation, I remembered that you have ever created a branch about segmentation seversl years ago, but I cannot find it now, could please help me to provide the link? thanks.
The jbennet branch includes BACnet segmentation:
https://sourceforge.net/p/bacnet/src/ci/jbennet/tree/