Hello everyone,
In the defaultTransport.java class, the number of segments is hard-coded to a maximum of 128.
When sending a request:
defaultTransport.javaif (segmentsRequired > 128) throw new ServiceTooBigException("Request too big to send to device; too many segments required");
When sending a response:
defaultTransport.java if (segmentsRequired > request.getMaxSegmentsAccepted().getMaxSegments() || segmentsRequired > 128) { LOG.warn("Response too big to send to device; too many segments required"); throw new BACnetAbortException(AbortReason.bufferOverflow); }
According to BACnet Standard 135-2016, the maximum is 255. Page 22: "The first conditional parameter is the 'Sequence Number.' This one-octet
unsigned integer is used by the segment transmitter to indicate the position of the current segment in the series of segments
composing the complete message.".
Does anyone know why the segmentation here is limited to 128, can and should we change that value to the maximum of 255?
Hello everyone, In the defaultTransport.java class, the number of segments is hard-coded to a maximum of 128.
When sending a request: defaultTransport.java
if (segmentsRequired > 128) throw new ServiceTooBigException("Request too big to send to device; too many segments required");
When sending a response: defaultTransport.java
if (segmentsRequired > request.getMaxSegmentsAccepted().getMaxSegments() || segmentsRequired > 128) { LOG.warn("Response too big to send to device; too many segments required"); throw new BACnetAbortException(AbortReason.bufferOverflow); }
According to BACnet Standard 135-2016, the maximum is 255. Page 22: "The first conditional parameter is the 'Sequence Number.' This one-octet unsigned integer is used by the segment transmitter to indicate the position of the current segment in the series of segments composing the complete message.". Does anyone know why the segmentation here is limited to 128, can and should we change that value to the maximum of 255?