Added FD BBMD Address encoding. (#269)

* Added FD BBMD Address encoder and decoder

* Added FD BBMD address to bacapp

* Added FD BBMD address to network port object

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
This commit is contained in:
Steve Karg
2022-05-10 17:06:51 -05:00
committed by GitHub
parent 89a81447cc
commit e08680044e
14 changed files with 581 additions and 3 deletions
+6
View File
@@ -22,6 +22,12 @@ test:
[ -d $(BUILD_DIR) ] && cd $(BUILD_DIR) && ctest $(CTEST_OPTIONS)
[ -d $(BUILD_DIR) ] && $(MAKE) -C $(BUILD_DIR) lcov
.PHONY: retest
retest:
[ -d $(BUILD_DIR) ] && cd $(BUILD_DIR) && cmake --build . && cd ..
[ -d $(BUILD_DIR) ] && cd $(BUILD_DIR) && ctest $(CTEST_OPTIONS)
[ -d $(BUILD_DIR) ] && $(MAKE) -C $(BUILD_DIR) lcov
.PHONY: report
report:
[ -d $(BUILD_DIR) ] && cat $(BUILD_DIR)/Testing/Temporary/LastTest*.log
+2
View File
@@ -24,6 +24,7 @@ add_compile_definitions(
BIG_ENDIAN=0
CONFIG_ZTEST=1
PRINT_ENABLED=1
BACAPP_HOST_N_PORT=1
)
include_directories(
@@ -46,6 +47,7 @@ add_executable(${PROJECT_NAME}
${SRC_DIR}/bacnet/basic/sys/days.c
${SRC_DIR}/bacnet/lighting.c
${SRC_DIR}/bacnet/indtext.c
${SRC_DIR}/bacnet/datalink/bvlc.c
# Test and test library files
./src/main.c
${ZTST_DIR}/ztest_mock.c
+3
View File
@@ -148,6 +148,9 @@ static void test_bacapp_copy(void)
#if defined(BACAPP_LIGHTING_COMMAND)
BACNET_APPLICATION_TAG_LIGHTING_COMMAND,
#endif
#if defined(BACAPP_HOST_N_PORT)
BACNET_APPLICATION_TAG_HOST_N_PORT,
#endif
};
for (i = 0; i < sizeof(tags)/sizeof(tags[0]); ++i) {
BACNET_APPLICATION_TAG tag = tags[i];
+29 -1
View File
@@ -816,6 +816,33 @@ static void test_BVLC_Address_Get_Set(void)
zassert_equal(octet3, test_octet3, NULL);
}
static void test_BVLC_BBMD_Address(void)
{
uint8_t apdu[480] = { 0 };
uint16_t apdu_len = 0;
uint16_t test_apdu_len = 0;
uint16_t i = 0;
BACNET_IP_ADDRESS bbmd_address;
BACNET_IP_ADDRESS test_bbmd_address;
BACNET_ERROR_CODE error_code = 0;
bool status = false;
status = bvlc_address_port_from_ascii(
&bbmd_address, "192.168.0.255", "0xBAC0");
zassert_true(status, NULL);
apdu_len = bvlc_foreign_device_bbmd_host_address_encode(apdu, sizeof(apdu),
&bbmd_address);
zassert_not_equal(apdu_len, 0, NULL);
test_apdu_len = bvlc_foreign_device_bbmd_host_address_decode(apdu,
apdu_len, &error_code, &test_bbmd_address);
zassert_not_equal(test_apdu_len, 0, NULL);
zassert_not_equal(test_apdu_len, BACNET_STATUS_ERROR, NULL);
zassert_not_equal(test_apdu_len, BACNET_STATUS_ABORT, NULL);
zassert_not_equal(test_apdu_len, BACNET_STATUS_REJECT, NULL);
status = bvlc_address_different(&bbmd_address, &test_bbmd_address);
zassert_false(status, NULL);
}
/**
* @}
*/
@@ -837,7 +864,8 @@ void test_main(void)
ztest_unit_test(test_BVLC_Original_Broadcast_NPDU),
ztest_unit_test(test_BVLC_Secure_BVLL),
ztest_unit_test(test_BVLC_Address_Copy),
ztest_unit_test(test_BVLC_Address_Get_Set)
ztest_unit_test(test_BVLC_Address_Get_Set),
ztest_unit_test(test_BVLC_BBMD_Address)
);
ztest_run_test_suite(bvlc_tests);