On line 213-216 in BACnetObject.java
if (pid.intValue() == PropertyIdentifier.priorityArray.intValue()) throw new BACnetServiceException(ErrorClass.property, ErrorCode.writeAccessDenied); if (pid.intValue() == PropertyIdentifier.relinquishDefault.intValue()) throw new BACnetServiceException(ErrorClass.property, ErrorCode.writeAccessDenied); ```The BACnet standard states that if the PresentValue is commandable, then the PriorityArray and RelinquishDefault shall be present. Clause 19 indicates that the PriorityArray is indeed read only, but I didn't see any mention about RelinquishDefault being read only. Is there a reason for this behaviour in BACnet4J?
First, thanks for doing some research prior to posting.
From the text:
... R or O properties may also be writable at the implementor's option unless specifically prohibited in the text describing that particular standard object's property.
An O property, if present in a particular object, is not required to be writable unless specifically identified as such in the text describing that particular standard object's property.
So, i agree. The "output" objects list the relinquish default as "R", but don't prohibit it from being writable. The "value" objects list it as "O", but similarly don't object specifically to writing. Accordingly, i've changed the code (commented out 215-216) and checked into CVS.
No worries and thanks.