diff --git a/CHANGELOG.md b/CHANGELOG.md index 6fa8f8d..2534ab0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,6 +48,8 @@ The git repository is hosted at the following site: * Changed gitignore to ignore the build folder. ### Added +* Added all the basic object property value data types supported + for B-ASC sample. (#52) * Added BACnet Application Specific Control (B-ASC) sample. (#51) * Added timer and audit-log objects to basic server. (#51) * Added Model_Name config to the Kconfig for basic BACnet device. (#50) diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index c7430fd..57928da 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -639,6 +639,47 @@ zephyr_compile_definitions( $<$:BACAPP_SHED_LEVEL> $<$:BACAPP_ACCESS_RULE> $<$:BACAPP_CHANNEL_VALUE> + $<$:BACAPP_TIMER_VALUE> $<$:BACAPP_LOG_RECORD> $<$:BACAPP_SECURE_CONNECT> + # BACnet data types supported for BACnetChanneValue + # enabling any individual overrides the NUMERIC defaults + $<$:CHANNEL_NUMERIC> + $<$:CHANNEL_NULL> + $<$:CHANNEL_BOOLEAN> + $<$:CHANNEL_UNSIGNED> + $<$:CHANNEL_SIGNED> + $<$:CHANNEL_REAL> + $<$:CHANNEL_DOUBLE> + $<$:CHANNEL_OCTET_STRING> + $<$:CHANNEL_CHARACTER_STRING> + $<$:CHANNEL_BIT_STRING> + $<$:CHANNEL_ENUMERATED> + $<$:CHANNEL_DATE> + $<$:CHANNEL_TIME> + $<$:CHANNEL_OBJECT_ID> + $<$:CHANNEL_LIGHTING_COMMAND> + $<$:CHANNEL_XY_COLOR> + $<$:CHANNEL_COLOR_COMMAND> + # BACnet data types supported for BACnetTimerStateChangeValue + # enabling any individual overrides the NUMERIC defaults + $<$:BACNET_TIMER_VALUE_ALL> + $<$:BACNET_TIMER_VALUE_NUMERIC> + $<$:BACNET_TIMER_VALUE_NULL> + $<$:BACNET_TIMER_VALUE_BOOLEAN> + $<$:BACNET_TIMER_VALUE_UNSIGNED> + $<$:BACNET_TIMER_VALUE_SIGNED> + $<$:BACNET_TIMER_VALUE_REAL> + $<$:BACNET_TIMER_VALUE_DOUBLE> + $<$:BACNET_TIMER_VALUE_OCTET_STRING> + $<$:BACNET_TIMER_VALUE_CHARACTER_STRING> + $<$:BACNET_TIMER_VALUE_BIT_STRING> + $<$:BACNET_TIMER_VALUE_ENUMERATED> + $<$:BACNET_TIMER_VALUE_DATE> + $<$:BACNET_TIMER_VALUE_TIME> + $<$:BACNET_TIMER_VALUE_OBJECT_ID> + $<$:BACNET_TIMER_VALUE_NO_VALUE> + $<$:BACNET_TIMER_VALUE_DATETIME> + $<$:BACNET_TIMER_VALUE_CONSTRUCTED_VALUE> + $<$:BACNET_TIMER_VALUE_LIGHTING_COMMAND> ) diff --git a/zephyr/Kconfig b/zephyr/Kconfig index 509c6c1..36a8d6a 100644 --- a/zephyr/Kconfig +++ b/zephyr/Kconfig @@ -137,7 +137,8 @@ config BACAPP_TYPES_EXTRA CALENDAR_ENTRY, SPECIAL_EVENT, HOST_N_PORT, DEVICE_OBJECT_PROPERTY_REFERENCE, DEVICE_OBJECT_REFERENCE, OBJECT_PROPERTY_REFERENCE, DESTINATION, BDT_ENTRY, FDT_ENTRY, - ACTION_COMMAND, SCALE, SHED_LEVEL + ACTION_COMMAND, SCALE, SHED_LEVEL, ACCESS_RULE, CHANNEL_VALUE, + TIMER_VALUE, LOG_RECORD, and SECURE_CONNECT config BACAPP_NULL bool "BACnet data types supported for WriteProperty: NULL" @@ -337,6 +338,12 @@ config BACAPP_CHANNEL_VALUE help BACnet data types supported for WriteProperty: BACAPP_CHANNEL_VALUE +config BACAPP_TIMER_VALUE + bool "BACnet data types supported for WriteProperty: BACAPP_TIMER_VALUE" + default false + help + BACnet data types supported for WriteProperty: BACAPP_TIMER_VALUE + config BACAPP_LOG_RECORD bool "BACnet data types supported for WriteProperty: BACAPP_LOG_RECORD" default false @@ -361,6 +368,236 @@ config BACAPP_SNPRINTF_ENABLED help Enable BACnet app snprintf +config CHANNEL_NUMERIC + bool "BACnet data types supported for BACnetChanneValue numeric" + default true + help + BACnet data types supported for BACnetChanneValue numeric include: + NULL, BOOLEAN, UNSIGNED, SIGNED, REAL, DOUBLE, ENUMERATED, + LIGHTING_COMMAND, COLOR_COMMAND, and XY_COLOR. + +config CHANNEL_VALUE_ALL + bool "BACnet data types supported for all BACnetChanneValue types" + default true + help + NULL, BOOLEAN, UNSIGNED, SIGNED, REAL, DOUBLE, ENUMERATED, + LIGHTING_COMMAND, COLOR_COMMAND, XY_COLOR, OBJECT_ID, + OCTET_STRING, CHARACTER_STRING, BIT_STRING, DATE, and TIME. + +config CHANNEL_NULL + bool "BACnet data types supported for BACnetChanneValue: NULL" + default false + help + BACnet data types supported for BACnetChanneValue: NULL + +config CHANNEL_BOOLEAN + bool "BACnet data types supported for BACnetChanneValue: BOOLEAN" + default false + help + BACnet data types supported for BACnetChanneValue: BOOLEAN + +config CHANNEL_UNSIGNED + bool "BACnet data types supported for BACnetChanneValue: UNSIGNED" + default false + help + BACnet data types supported for BACnetChanneValue: UNSIGNED + +config CHANNEL_SIGNED + bool "BACnet data types supported for BACnetChanneValue: SIGNED" + default false + help + BACnet data types supported for BACnetChanneValue: SIGNED + +config CHANNEL_REAL + bool "BACnet data types supported for BACnetChanneValue: REAL" + default false + help + BACnet data types supported for BACnetChanneValue: REAL + +config CHANNEL_DOUBLE + bool "BACnet data types supported for BACnetChanneValue: DOUBLE" + default false + help + BACnet data types supported for BACnetChanneValue: DOUBLE + +config CHANNEL_OCTET_STRING + bool "BACnet data types supported for BACnetChanneValue: OCTET_STRING" + default false + help + BACnet data types supported for BACnetChanneValue: OCTET_STRING + +config CHANNEL_CHARACTER_STRING + bool "BACnet data types supported for BACnetChanneValue: CHARACTER_STRING" + default false + help + BACnet data types supported for BACnetChanneValue: CHARACTER_STRING + +config CHANNEL_BIT_STRING + bool "BACnet data types supported for BACnetChanneValue: BIT_STRING" + default false + help + BACnet data types supported for BACnetChanneValue: BIT_STRING + +config CHANNEL_ENUMERATED + bool "BACnet data types supported for BACnetChanneValue: ENUMERATED" + default false + help + BACnet data types supported for BACnetChanneValue: ENUMERATED + +config CHANNEL_DATE + bool "BACnet data types supported for BACnetChanneValue: DATE" + default false + help + BACnet data types supported for BACnetChanneValue: DATE + +config CHANNEL_TIME + bool "BACnet data types supported for BACnetChanneValue: TIME" + default false + help + BACnet data types supported for BACnetChanneValue: TIME + +config CHANNEL_OBJECT_ID + bool "BACnet data types supported for BACnetChanneValue: OBJECT_ID" + default false + help + BACnet data types supported for BACnetChanneValue: OBJECT_ID + +config CHANNEL_LIGHTING_COMMAND + bool "BACnet data types supported for BACnetChanneValue: LIGHTING_COMMAND" + default false + help + BACnet data types supported for BACnetChanneValue: LIGHTING_COMMAND + +config CHANNEL_XY_COLOR + bool "BACnet data types supported for BACnetChanneValue: XY_COLOR" + default false + help + BACnet data types supported for BACnetChanneValue: XY_COLOR + +config CHANNEL_COLOR_COMMAND + bool "BACnet data types supported for BACnetChanneValue: COLOR_COMMAND" + default false + help + BACnet data types supported for BACnetChanneValue: COLOR_COMMAND + +config BACNET_TIMER_VALUE_NUMERIC + bool "BACnet data types supported for BACnetTimerStateChangeValue numeric" + default true + help + BACnet data types supported for BACnetTimerStateChangeValue numeric include: + NULL, BOOLEAN, UNSIGNED, SIGNED, REAL, DOUBLE, ENUMERATED, and NO_VALUE + +config BACNET_TIMER_VALUE_ALL + bool "BACnet data types supported for all BACnetTimerStateChangeValue types" + default true + help + BACnet data types supported for all BACnetTimerStateChangeValue types include: + NULL, BOOLEAN, UNSIGNED, SIGNED, REAL, DOUBLE, ENUMERATED, NO_VALUE, + OCTET_STRING, CHARACTER_STRING, BIT_STRING, DATE, TIME, OBJECT_ID, + DATETIME, CONSTRUCTED_VALUE, and LIGHTING_COMMAND + +config BACNET_TIMER_VALUE_NULL + bool "BACnet data types supported for BACnetTimerStateChangeValue: NULL" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: NULL + +config BACNET_TIMER_VALUE_BOOLEAN + bool "BACnet data types supported for BACnetTimerStateChangeValue: BOOLEAN" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: BOOLEAN + +config BACNET_TIMER_VALUE_UNSIGNED + bool "BACnet data types supported for BACnetTimerStateChangeValue: UNSIGNED" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: UNSIGNED + +config BACNET_TIMER_VALUE_SIGNED + bool "BACnet data types supported for BACnetTimerStateChangeValue: SIGNED" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: SIGNED + +config BACNET_TIMER_VALUE_REAL + bool "BACnet data types supported for BACnetTimerStateChangeValue: REAL" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: REAL + +config BACNET_TIMER_VALUE_DOUBLE + bool "BACnet data types supported for BACnetTimerStateChangeValue: DOUBLE" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: DOUBLE + +config BACNET_TIMER_VALUE_OCTET_STRING + bool "BACnet data types supported for BACnetTimerStateChangeValue: OCTET_STRING" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: OCTET_STRING + +config BACNET_TIMER_VALUE_CHARACTER_STRING + bool "BACnet data types supported for BACnetTimerStateChangeValue: CHARACTER_STRING" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: CHARACTER_STRING + +config BACNET_TIMER_VALUE_BIT_STRING + bool "BACnet data types supported for BACnetTimerStateChangeValue: BIT_STRING" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: BIT_STRING + +config BACNET_TIMER_VALUE_ENUMERATED + bool "BACnet data types supported for BACnetTimerStateChangeValue: ENUMERATED" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: ENUMERATED + +config BACNET_TIMER_VALUE_DATE + bool "BACnet data types supported for BACnetTimerStateChangeValue: DATE" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: DATE + +config BACNET_TIMER_VALUE_TIME + bool "BACnet data types supported for BACnetTimerStateChangeValue: TIME" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: TIME + +config BACNET_TIMER_VALUE_OBJECT_ID + bool "BACnet data types supported for BACnetTimerStateChangeValue: OBJECT_ID" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: OBJECT_ID + +config BACNET_TIMER_VALUE_DATETIME + bool "BACnet data types supported for BACnetTimerStateChangeValue: DATETIME" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: DATETIME + +config BACNET_TIMER_VALUE_LIGHTING_COMMAND + bool "BACnet data types supported for BACnetTimerStateChangeValue: LIGHTING_COMMAND" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: LIGHTING_COMMAND + +config BACNET_TIMER_VALUE_NO_VALUE + bool "BACnet data types supported for BACnetTimerStateChangeValue: NO_VALUE" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: NO_VALUE + +config BACNET_TIMER_VALUE_CONSTRUCTED_VALUE + bool "BACnet data types supported for BACnetTimerStateChangeValue: CONSTRUCTED_VALUE" + default false + help + BACnet data types supported for BACnetTimerStateChangeValue: CONSTRUCTED_VALUE + config BACDL_BIP_PORT int "BACnet IPv4 UDP port" default 47808 diff --git a/zephyr/samples/profiles/b-asc/prj.conf b/zephyr/samples/profiles/b-asc/prj.conf index 6dc8a5a..582a880 100644 --- a/zephyr/samples/profiles/b-asc/prj.conf +++ b/zephyr/samples/profiles/b-asc/prj.conf @@ -32,9 +32,9 @@ CONFIG_BACNETSTACK_BACNET_SETTINGS=y CONFIG_BACNET_SETTINGS_SHELL=y # BACnet Library - options CONFIG_BACNET_MAX_CHARACTER_STRING_BYTES=128 -# BACnet Library - enable example objects +# BACnet Library - enable required basic objects CONFIG_BACNET_BASIC_OBJECT_NETWORK_PORT=y - +# BACnet Library - enable basic objects CONFIG_BACNET_BASIC_OBJECTS_ACCESS=y CONFIG_BACNET_BASIC_OBJECT_ACCUMULATOR=y CONFIG_BACNET_BASIC_OBJECT_ANALOG_INPUT=y @@ -50,7 +50,6 @@ CONFIG_BACNET_BASIC_OBJECT_CHANNEL=y CONFIG_BACNET_BASIC_OBJECT_COMMAND=y CONFIG_BACNET_BASIC_OBJECT_COLOR=y CONFIG_BACNET_BASIC_OBJECT_COLOR_TEMPERATURE=y -CONFIG_BACNET_BASIC_OBJECTS_ACCESS=y CONFIG_BACNET_BASIC_OBJECT_CHARACTERSTRING_VALUE=y CONFIG_BACNET_BASIC_OBJECT_INTEGER_VALUE=y CONFIG_BACNET_BASIC_OBJECT_LOAD_CONTROL=y @@ -68,6 +67,12 @@ CONFIG_BACNET_BASIC_OBJECT_STRUCTURED_VIEW=y CONFIG_BACNET_BASIC_OBJECT_TIME_VALUE=y CONFIG_BACNET_BASIC_OBJECT_TIMER=y CONFIG_BACNET_BASIC_OBJECT_TRENDLOG=y +# Access Control Objects +CONFIG_BACNET_BASIC_OBJECTS_ACCESS=y +# Property value container data types supported +CONFIG_BACAPP_ALL=y +CONFIG_BACNET_TIMER_VALUE_ALL=y +CONFIG_CHANNEL_VALUE_ALL=y # BACnet Library - server framework - includes device and ports CONFIG_BACNET_BASIC_SERVER=y