From 7f3b82db9a9085826790143f351423028bc5d19b Mon Sep 17 00:00:00 2001 From: Steve Karg Date: Wed, 3 Jan 2024 10:35:03 -0600 Subject: [PATCH] Fixed compilation with BACNET_SVC_SERVER=1 for apps. (#552) Co-authored-by: Steve Karg --- Makefile | 8 ++++++++ apps/add-list-element/main.c | 4 ++++ apps/create-object/main.c | 4 ++++ apps/delete-object/main.c | 4 ++++ apps/readfile/main.c | 4 ++++ apps/readprop/main.c | 4 ++++ apps/readpropm/main.c | 4 ++++ apps/readrange/main.c | 4 ++++ apps/remove-list-element/main.c | 4 ++++ apps/scov/main.c | 4 ++++ apps/server-client/main.c | 4 ++++ apps/writeprop/main.c | 4 ++++ apps/writepropm/main.c | 4 ++++ src/bacnet/basic/service/h_apdu.c | 8 ++++++-- src/bacnet/config.h | 7 ++++--- src/bacnet/create_object.c | 2 ++ src/bacnet/list_element.c | 2 ++ src/bacnet/wpm.c | 2 ++ 18 files changed, 72 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 887e0c3d..eaa61e92 100644 --- a/Makefile +++ b/Makefile @@ -125,6 +125,14 @@ readbdt: readfdt: $(MAKE) -s -C apps $@ +.PHONY: readprop +readprop: + $(MAKE) -s -C apps $@ + +.PHONY: readpropm +readpropm: + $(MAKE) -s -C apps $@ + .PHONY: remove-list-element remove-list-element: $(MAKE) -s -C apps $@ diff --git a/apps/add-list-element/main.c b/apps/add-list-element/main.c index f34e14c7..a8501e9a 100644 --- a/apps/add-list-element/main.c +++ b/apps/add-list-element/main.c @@ -15,6 +15,10 @@ #define PRINT_ENABLED 1 +#if BACNET_SVC_SERVER +#error "App requires server-only features disabled! Set BACNET_SVC_SERVER=0" +#endif + #include "bacnet/bacdef.h" #include "bacnet/config.h" #include "bacnet/bactext.h" diff --git a/apps/create-object/main.c b/apps/create-object/main.c index 0a1336a9..f84c2def 100644 --- a/apps/create-object/main.c +++ b/apps/create-object/main.c @@ -15,6 +15,10 @@ #define PRINT_ENABLED 1 +#if BACNET_SVC_SERVER +#error "App requires server-only features disabled! Set BACNET_SVC_SERVER=0" +#endif + #include "bacnet/bacdef.h" #include "bacnet/config.h" #include "bacnet/bactext.h" diff --git a/apps/delete-object/main.c b/apps/delete-object/main.c index 33004347..f0fb909d 100644 --- a/apps/delete-object/main.c +++ b/apps/delete-object/main.c @@ -15,6 +15,10 @@ #define PRINT_ENABLED 1 +#if BACNET_SVC_SERVER +#error "App requires server-only features disabled! Set BACNET_SVC_SERVER=0" +#endif + #include "bacnet/bacdef.h" #include "bacnet/config.h" #include "bacnet/bactext.h" diff --git a/apps/readfile/main.c b/apps/readfile/main.c index 43c2478c..35fb8b65 100644 --- a/apps/readfile/main.c +++ b/apps/readfile/main.c @@ -51,6 +51,10 @@ #include "bacnet/basic/tsm/tsm.h" #include "bacnet/datalink/dlenv.h" +#if BACNET_SVC_SERVER +#error "App requires server-only features disabled! Set BACNET_SVC_SERVER=0" +#endif + /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; diff --git a/apps/readprop/main.c b/apps/readprop/main.c index 59284e09..79915852 100644 --- a/apps/readprop/main.c +++ b/apps/readprop/main.c @@ -35,6 +35,10 @@ #define PRINT_ENABLED 1 +#if BACNET_SVC_SERVER +#error "App requires server-only features disabled! Set BACNET_SVC_SERVER=0" +#endif + #include "bacnet/bacdef.h" #include "bacnet/config.h" #include "bacnet/bactext.h" diff --git a/apps/readpropm/main.c b/apps/readpropm/main.c index 7b652371..7af90cf0 100644 --- a/apps/readpropm/main.c +++ b/apps/readpropm/main.c @@ -35,6 +35,10 @@ #define PRINT_ENABLED 1 +#if BACNET_SVC_SERVER +#error "App requires server-only features disabled! Set BACNET_SVC_SERVER=0" +#endif + #include "bacnet/bacdef.h" #include "bacnet/config.h" #include "bacnet/bactext.h" diff --git a/apps/readrange/main.c b/apps/readrange/main.c index 255dea26..5f003889 100644 --- a/apps/readrange/main.c +++ b/apps/readrange/main.c @@ -56,6 +56,10 @@ #include "bacnet/datalink/dlenv.h" #include "bacnet/readrange.h" +#if BACNET_SVC_SERVER +#error "App requires server-only features disabled! Set BACNET_SVC_SERVER=0" +#endif + /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; diff --git a/apps/remove-list-element/main.c b/apps/remove-list-element/main.c index 3adcd2af..e73e391e 100644 --- a/apps/remove-list-element/main.c +++ b/apps/remove-list-element/main.c @@ -39,6 +39,10 @@ #include "bacnet/basic/tsm/tsm.h" #include "bacnet/datalink/dlenv.h" +#if BACNET_SVC_SERVER +#error "App requires server-only features disabled! Set BACNET_SVC_SERVER=0" +#endif + /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; /* target device data for the request */ diff --git a/apps/scov/main.c b/apps/scov/main.c index a581ce72..1f184570 100644 --- a/apps/scov/main.c +++ b/apps/scov/main.c @@ -54,6 +54,10 @@ #include "bacnet/basic/tsm/tsm.h" #include "bacnet/datalink/dlenv.h" +#if BACNET_SVC_SERVER +#error "App requires server-only features disabled! Set BACNET_SVC_SERVER=0" +#endif + /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; diff --git a/apps/server-client/main.c b/apps/server-client/main.c index 8e02fcb7..3d55d192 100644 --- a/apps/server-client/main.c +++ b/apps/server-client/main.c @@ -26,6 +26,10 @@ #include "bacnet/datalink/datalink.h" #include "bacnet/datalink/dlenv.h" +#if BACNET_SVC_SERVER +#error "App requires server-only features disabled! Set BACNET_SVC_SERVER=0" +#endif + /* print with flush by default */ #define PRINTF debug_aprintf diff --git a/apps/writeprop/main.c b/apps/writeprop/main.c index 4f989d1f..72ef972f 100644 --- a/apps/writeprop/main.c +++ b/apps/writeprop/main.c @@ -56,6 +56,10 @@ #define MAX_PROPERTY_VALUES 64 #endif +#if BACNET_SVC_SERVER +#error "App requires server-only features disabled! Set BACNET_SVC_SERVER=0" +#endif + /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; diff --git a/apps/writepropm/main.c b/apps/writepropm/main.c index 5defbca9..84928e03 100644 --- a/apps/writepropm/main.c +++ b/apps/writepropm/main.c @@ -33,6 +33,10 @@ #define PRINT_ENABLED 1 +#if BACNET_SVC_SERVER +#error "App requires server-only features disabled! Set BACNET_SVC_SERVER=0" +#endif + #include "bacnet/bacdef.h" #include "bacnet/config.h" #include "bacnet/bactext.h" diff --git a/src/bacnet/basic/service/h_apdu.c b/src/bacnet/basic/service/h_apdu.c index 12aa6825..34429abb 100644 --- a/src/bacnet/basic/service/h_apdu.c +++ b/src/bacnet/basic/service/h_apdu.c @@ -559,16 +559,18 @@ void apdu_handler(BACNET_ADDRESS *src, uint16_t apdu_len) { BACNET_CONFIRMED_SERVICE_DATA service_data = { 0 }; - BACNET_CONFIRMED_SERVICE_ACK_DATA service_ack_data = { 0 }; - uint8_t invoke_id = 0; uint8_t service_choice = 0; uint8_t *service_request = NULL; uint16_t service_request_len = 0; int len = 0; /* counts where we are in PDU */ +#if !BACNET_SVC_SERVER + uint8_t invoke_id = 0; + BACNET_CONFIRMED_SERVICE_ACK_DATA service_ack_data = { 0 }; BACNET_ERROR_CODE error_code = ERROR_CODE_SUCCESS; BACNET_ERROR_CLASS error_class = ERROR_CLASS_SERVICES; uint8_t reason = 0; bool server = false; +#endif if (apdu) { /* PDU Type */ @@ -620,6 +622,7 @@ void apdu_handler(BACNET_ADDRESS *src, } } break; +#if !BACNET_SVC_SERVER case PDU_TYPE_SIMPLE_ACK: if (apdu_len < 3) { break; @@ -716,6 +719,7 @@ void apdu_handler(BACNET_ADDRESS *src, } tsm_free_invoke_id(invoke_id); break; +#endif default: break; } diff --git a/src/bacnet/config.h b/src/bacnet/config.h index 82c7e9a8..f41819bb 100644 --- a/src/bacnet/config.h +++ b/src/bacnet/config.h @@ -244,9 +244,10 @@ */ /* -** Note: I've left everything enabled here in the default config.h. You should -** use a local copy of config.h with settings configured for your needs to -** make use of any code space reductions in your device. +** Note: these are enabled by default for the example apps to build. +** Use a local copy named "bacnet-config.h" with settings configured for +** the product specific needs for code space reductions in your device. +** Alternately, use a compiler and linker the have code reduction features. **/ #define BACNET_SVC_I_HAVE_A 1 diff --git a/src/bacnet/create_object.c b/src/bacnet/create_object.c index e953a66b..4e2c2fba 100644 --- a/src/bacnet/create_object.c +++ b/src/bacnet/create_object.c @@ -351,6 +351,7 @@ int create_object_error_ack_encode( return len; } +#if !BACNET_SVC_SERVER /** * @brief Decode a CreateObject-Error ACK APDU * @@ -419,3 +420,4 @@ int create_object_error_ack_service_decode( return apdu_len; } +#endif diff --git a/src/bacnet/list_element.c b/src/bacnet/list_element.c index f23a3647..d8b20b17 100644 --- a/src/bacnet/list_element.c +++ b/src/bacnet/list_element.c @@ -273,6 +273,7 @@ int list_element_error_ack_encode( return apdu_len; } +#if !BACNET_SVC_SERVER /** * @brief Decoding for AddListElement or RemoveListElement Error Ack * AddListElement-Error ::= SEQUENCE { @@ -361,3 +362,4 @@ int list_element_error_ack_decode( return apdu_len; } +#endif diff --git a/src/bacnet/wpm.c b/src/bacnet/wpm.c index 2e157f46..5dbf75c3 100644 --- a/src/bacnet/wpm.c +++ b/src/bacnet/wpm.c @@ -437,6 +437,7 @@ int wpm_error_ack_encode_apdu( return len; } +#if !BACNET_SVC_SERVER /** Decoding for WritePropertyMultiple Error * @ingroup DSWPM * WritePropertyMultiple-Error ::= SEQUENCE { @@ -571,6 +572,7 @@ int wpm_error_ack_decode_apdu( return apdu_len; } +#endif /** * @brief Convert an array of BACnetWriteAccessData to linked list