Feature/add create object service (#476)

Added BACnet CreateObject and DeleteObject services

* refactored codec for BACnetPropertyValue into bacapp module
* added unit tests for BACnetPropertyValue
* refactored COV and Events to use BACnetPropertyValue codec API
* added unit tests for COV
* added overrun safe decoders for tag numbers and boolean context
* added unit tests and codecs for CreateObject and DeleteObject services
* added APDU service handers and senders for CreateObject and DeleteObject services
* added command line apps bacco and bacdo for CreateObject and DeleteObject services
* added CreateObject and DeleteObject service handling in example server app and device object
* added new BACnetRejectReason, Error Class, and BACnetAbortReason enumerations and conversions

---------

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
This commit is contained in:
Steve Karg
2023-08-28 13:02:35 -05:00
committed by GitHub
parent 8184afea12
commit f61f4300be
60 changed files with 3946 additions and 942 deletions
+9 -1
View File
@@ -1074,6 +1074,7 @@ INDTEXT_DATA bacnet_reject_reason_names[] = { { REJECT_REASON_OTHER, "Other" },
{ REJECT_REASON_TOO_MANY_ARGUMENTS, "Too Many Arguments" },
{ REJECT_REASON_UNDEFINED_ENUMERATION, "Undefined Enumeration" },
{ REJECT_REASON_UNRECOGNIZED_SERVICE, "Unrecognized Service" },
{ REJECT_REASON_INVALID_DATA_ENCODING, "invalid-data-encoding" },
{ REJECT_REASON_PROPRIETARY_FIRST, "Proprietary" }, { 0, NULL } };
const char *bactext_reject_reason_name(unsigned index)
@@ -1091,6 +1092,12 @@ INDTEXT_DATA bacnet_abort_reason_names[] = { { ABORT_REASON_OTHER, "Other" },
{ ABORT_REASON_SEGMENTATION_NOT_SUPPORTED, "Segmentation Not Supported" },
{ ABORT_REASON_SECURITY_ERROR, "Security Error" },
{ ABORT_REASON_INSUFFICIENT_SECURITY, "Insufficient Security" },
{ ABORT_REASON_WINDOW_SIZE_OUT_OF_RANGE, "window-size-out-of-range" },
{ ABORT_REASON_APPLICATION_EXCEEDED_REPLY_TIME,
"application-exceeded-reply-time" },
{ ABORT_REASON_OUT_OF_RESOURCES, "out-of-resources" },
{ ABORT_REASON_TSM_TIMEOUT, "tsm-timeout" },
{ ABORT_REASON_APDU_TOO_LONG, "apdu-too-long" },
{ ABORT_REASON_PROPRIETARY_FIRST, "Proprietary" }, { 0, NULL } };
const char *bactext_abort_reason_name(unsigned index)
@@ -1104,7 +1111,8 @@ INDTEXT_DATA bacnet_error_class_names[] = { { ERROR_CLASS_DEVICE, "device" },
{ ERROR_CLASS_OBJECT, "object" }, { ERROR_CLASS_PROPERTY, "property" },
{ ERROR_CLASS_RESOURCES, "resources" },
{ ERROR_CLASS_SECURITY, "security" }, { ERROR_CLASS_SERVICES, "services" },
{ ERROR_CLASS_VT, "vt" }, { 0, NULL } };
{ ERROR_CLASS_VT, "vt" }, { ERROR_CLASS_COMMUNICATION, "communication" },
{ 0, NULL } };
const char *bactext_error_class_name(unsigned index)
{