Feature/oscbs 29 calendar time object (#440)

* Added basic Calendar object, unit tests, and integration with example device object.

* Added basic Time Value object, unit tests, and integration with example device object.

---------

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
This commit is contained in:
Mikhail Antropov
2024-02-02 08:01:27 +03:00
committed by GitHub
parent 340bd09561
commit 8f576461a8
38 changed files with 2574 additions and 45 deletions
+4
View File
@@ -112,6 +112,7 @@ set(BACNETSTACK_SRCS
${BACNETSTACK_SRC}/bacnet/basic/object/bi.h
${BACNETSTACK_SRC}/bacnet/basic/object/bo.h
${BACNETSTACK_SRC}/bacnet/basic/object/bv.h
${BACNETSTACK_SRC}/bacnet/basic/object/calendar.h
${BACNETSTACK_SRC}/bacnet/basic/object/channel.h
${BACNETSTACK_SRC}/bacnet/basic/object/color_object.h
${BACNETSTACK_SRC}/bacnet/basic/object/color_temperature.h
@@ -132,6 +133,7 @@ set(BACNETSTACK_SRCS
${BACNETSTACK_SRC}/bacnet/basic/object/osv.h
${BACNETSTACK_SRC}/bacnet/basic/object/piv.h
${BACNETSTACK_SRC}/bacnet/basic/object/schedule.h
${BACNETSTACK_SRC}/bacnet/basic/object/time_value.h
${BACNETSTACK_SRC}/bacnet/basic/object/trendlog.h
${BACNETSTACK_SRC}/bacnet/basic/service/h_alarm_ack.h
${BACNETSTACK_SRC}/bacnet/basic/service/h_apdu.c
@@ -342,6 +344,7 @@ set(BACNETSTACK_BASIC_SRCS
${BACNETSTACK_SRC}/bacnet/basic/object/bi.c
${BACNETSTACK_SRC}/bacnet/basic/object/bo.c
${BACNETSTACK_SRC}/bacnet/basic/object/bv.c
${BACNETSTACK_SRC}/bacnet/basic/object/calendar.c
${BACNETSTACK_SRC}/bacnet/basic/object/channel.c
#${BACNETSTACK_SRC}/bacnet/basic/object/client/device-client.c
${BACNETSTACK_SRC}/bacnet/basic/object/command.c
@@ -364,6 +367,7 @@ set(BACNETSTACK_BASIC_SRCS
${BACNETSTACK_SRC}/bacnet/basic/object/osv.c
${BACNETSTACK_SRC}/bacnet/basic/object/piv.c
${BACNETSTACK_SRC}/bacnet/basic/object/schedule.c
${BACNETSTACK_SRC}/bacnet/basic/object/time_value.c
${BACNETSTACK_SRC}/bacnet/basic/object/trendlog.c
${BACNETSTACK_SRC}/bacnet/basic/service/h_alarm_ack.c
${BACNETSTACK_SRC}/bacnet/basic/service/h_arf_a.c
+2
View File
@@ -27,6 +27,7 @@ if(CONFIG_BACNET_USE_DYNAMIC_DESCRIPTION)
bi.c
bo.c
bv.c
calendar.c
channel.c
command.c
credential_data_input.c
@@ -42,6 +43,7 @@ if(CONFIG_BACNET_USE_DYNAMIC_DESCRIPTION)
osv.c
piv.c
schedule.c
time_value.c
trendlog.c
)
@@ -0,0 +1,74 @@
# SPDX-License-Identifier: MIT
cmake_minimum_required(VERSION 3.13.1)
# Extract module path and names
string(REGEX REPLACE
"/zephyr/tests/[a-zA-Z_/-]*$" ""
BACNET_BASE
${CMAKE_CURRENT_SOURCE_DIR})
string(REGEX REPLACE
"/zephyr/tests/" "/src/"
BACNET_SRC_PATH
${CMAKE_CURRENT_SOURCE_DIR})
string(REGEX REPLACE
"/zephyr/tests/" "/test/"
BACNET_TEST_PATH
${CMAKE_CURRENT_SOURCE_DIR})
get_filename_component(BACNET_NAME ${BACNET_BASE} NAME)
# Update include path for this module
list(APPEND BACNET_INCLUDE ${BACNET_BASE}/src)
if(BOARD STREQUAL unit_testing)
file(RELATIVE_PATH BACNET_INCLUDE $ENV{ZEPHYR_BASE} ${BACNET_BASE}/src)
list(APPEND INCLUDE ${BACNET_INCLUDE})
list(APPEND SOURCES
${BACNET_SRC_PATH}.c
${BACNET_TEST_PATH}/src/main.c
${BACNET_TEST_PATH}/stubs.c
${BACNET_TEST_PATH}/../mock/device_mock.c
)
get_filename_component(BACNET_OBJECT_SRC ${BACNET_SRC_PATH} PATH)
get_filename_component(BACNET_BASIC_SRC ${BACNET_OBJECT_SRC} PATH)
get_filename_component(BACNET_SRC ${BACNET_BASIC_SRC} PATH)
list(APPEND SOURCES
${BACNET_SRC}/bacaddr.c
${BACNET_SRC}/bacapp.c
${BACNET_SRC}/bacdcode.c
${BACNET_SRC}/bacdest.c
${BACNET_SRC}/bacstr.c
${BACNET_SRC}/bacint.c
${BACNET_SRC}/bacreal.c
${BACNET_SRC}/datetime.c
${BACNET_SRC}/timestamp.c
${BACNET_SRC}/basic/sys/days.c
${BACNET_SRC}/basic/sys/keylist.c
${BACNET_SRC}/bacdevobjpropref.c
${BACNET_SRC}/bactext.c
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/proplist.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
${BACNET_SRC}/calendar_entry.c
${BACNET_SRC}/dailyschedule.c
${BACNET_SRC}/special_event.c
${BACNET_SRC}/weeklyschedule.c
${BACNET_SRC}/basic/sys/bigend.c
${BACNET_SRC}/bactimevalue.c
)
set(CONF_FILE "${CONF_FILE};prj.unit_testing.conf")
find_package(Zephyr COMPONENTS unittest REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(${BACNET_NAME})
else()
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(${BACNET_NAME})
target_include_directories(app PRIVATE ${BACNET_INCLUDE})
target_sources(app PRIVATE
${BACNET_TEST_PATH}/src/main.c
)
endif()
@@ -0,0 +1,2 @@
CONFIG_ZTEST=y
CONFIG_BACNETSTACK=y
@@ -0,0 +1,2 @@
CONFIG_ZTEST=y
#CONFIG_BACNETSTACK=y
@@ -0,0 +1,6 @@
tests:
bacnet.basic.object.calendar:
tags: bacnet
bacnet.basic.object.calendar.unit:
tags: bacnet
type: unit
@@ -40,6 +40,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/bacstr.c
${BACNET_SRC}/bacint.c
${BACNET_SRC}/bacreal.c
${BACNET_SRC}/calendar.c
${BACNET_SRC}/datetime.c
${BACNET_SRC}/timestamp.c
${BACNET_SRC}/basic/sys/days.c
@@ -68,6 +69,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/basic/object/bi.c
${BACNET_SRC}/basic/object/bo.c
${BACNET_SRC}/basic/object/bv.c
${BACNET_SRC}/basic/object/calendar.c
${BACNET_SRC}/basic/object/channel.c
${BACNET_SRC}/basic/object/color_object.c
${BACNET_SRC}/basic/object/color_temperature.c
@@ -84,6 +86,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/basic/object/osv.c
${BACNET_SRC}/basic/object/piv.c
${BACNET_SRC}/basic/object/schedule.c
${BACNET_SRC}/basic/object/time_value.c
${BACNET_SRC}/basic/object/trendlog.c
${BACNET_SRC}/hostnport.c
${BACNET_SRC}/basic/service/h_apdu.c
@@ -0,0 +1,74 @@
# SPDX-License-Identifier: MIT
cmake_minimum_required(VERSION 3.13.1)
# Extract module path and names
string(REGEX REPLACE
"/zephyr/tests/[a-zA-Z_/-]*$" ""
BACNET_BASE
${CMAKE_CURRENT_SOURCE_DIR})
string(REGEX REPLACE
"/zephyr/tests/" "/src/"
BACNET_SRC_PATH
${CMAKE_CURRENT_SOURCE_DIR})
string(REGEX REPLACE
"/zephyr/tests/" "/test/"
BACNET_TEST_PATH
${CMAKE_CURRENT_SOURCE_DIR})
get_filename_component(BACNET_NAME ${BACNET_BASE} NAME)
# Update include path for this module
list(APPEND BACNET_INCLUDE ${BACNET_BASE}/src)
if(BOARD STREQUAL unit_testing)
file(RELATIVE_PATH BACNET_INCLUDE $ENV{ZEPHYR_BASE} ${BACNET_BASE}/src)
list(APPEND INCLUDE ${BACNET_INCLUDE})
list(APPEND SOURCES
${BACNET_SRC_PATH}.c
${BACNET_TEST_PATH}/src/main.c
${BACNET_TEST_PATH}/stubs.c
${BACNET_TEST_PATH}/../mock/device_mock.c
)
get_filename_component(BACNET_OBJECT_SRC ${BACNET_SRC_PATH} PATH)
get_filename_component(BACNET_BASIC_SRC ${BACNET_OBJECT_SRC} PATH)
get_filename_component(BACNET_SRC ${BACNET_BASIC_SRC} PATH)
list(APPEND SOURCES
${BACNET_SRC}/bacaddr.c
${BACNET_SRC}/bacapp.c
${BACNET_SRC}/bacdcode.c
${BACNET_SRC}/bacdest.c
${BACNET_SRC}/bacstr.c
${BACNET_SRC}/bacint.c
${BACNET_SRC}/bacreal.c
${BACNET_SRC}/datetime.c
${BACNET_SRC}/timestamp.c
${BACNET_SRC}/basic/sys/days.c
${BACNET_SRC}/basic/sys/keylist.c
${BACNET_SRC}/bacdevobjpropref.c
${BACNET_SRC}/bactext.c
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/proplist.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
${BACNET_SRC}/calendar_entry.c
${BACNET_SRC}/dailyschedule.c
${BACNET_SRC}/special_event.c
${BACNET_SRC}/weeklyschedule.c
${BACNET_SRC}/basic/sys/bigend.c
${BACNET_SRC}/bactimevalue.c
)
set(CONF_FILE "${CONF_FILE};prj.unit_testing.conf")
find_package(Zephyr COMPONENTS unittest REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(${BACNET_NAME})
else()
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(${BACNET_NAME})
target_include_directories(app PRIVATE ${BACNET_INCLUDE})
target_sources(app PRIVATE
${BACNET_TEST_PATH}/src/main.c
)
endif()
@@ -0,0 +1,2 @@
CONFIG_ZTEST=y
CONFIG_BACNETSTACK=y
@@ -0,0 +1,2 @@
CONFIG_ZTEST=y
#CONFIG_BACNETSTACK=y
@@ -0,0 +1,6 @@
tests:
bacnet.basic.object.time_value:
tags: bacnet
bacnet.basic.object.time_value.unit:
tags: bacnet
type: unit
+1 -1
View File
@@ -53,7 +53,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/dailyschedule.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/timestamp.c
${BACNET_SRC}/hostnport.c
${BACNET_SRC}/hostnport.c
)
set(CONF_FILE "${CONF_FILE};prj.unit_testing.conf")