From b1c9d013ef06021f420690d304920c787ccdea68 Mon Sep 17 00:00:00 2001 From: Steve Karg Date: Wed, 3 Dec 2025 08:58:36 -0600 Subject: [PATCH] Fixed compiler macro redefined warning when optional datatypes are defined globally. (#1172) --- CHANGELOG.md | 2 ++ src/bacnet/channel_value.h | 17 +++++++++++++ src/bacnet/config.h | 50 ++++++++++++++++++++++++++++++++++++++ src/bacnet/timer_value.h | 18 ++++++++++++++ 4 files changed, 87 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bee987d7..91221c16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,8 @@ The git repositories are hosted at the following sites: ### Fixed +* Fixed compiler macro redefined warning when optional datatypes are defined + globally. (#1172) * Fixed copy and compare API of BACnetObjectPropertyReference structure. (#1171) * Fixed array-bounds on BACnetObjectPropertyReference parsing. (#1167) * Fixed the missing BACnetObjectPropertyReference, diff --git a/src/bacnet/channel_value.h b/src/bacnet/channel_value.h index 0324a132..c166bfab 100644 --- a/src/bacnet/channel_value.h +++ b/src/bacnet/channel_value.h @@ -31,25 +31,42 @@ defined(CHANNEL_COLOR_COMMAND) || defined(CHANNEL_VALUE_ALL)) #define CHANNEL_NUMERIC #elif defined(CHANNEL_VALUE_ALL) +#undef CHANNEL_NUMERIC #define CHANNEL_NUMERIC +#undef CHANNEL_OCTET_STRING #define CHANNEL_OCTET_STRING +#undef CHANNEL_CHARACTER_STRING #define CHANNEL_CHARACTER_STRING +#undef CHANNEL_BIT_STRING #define CHANNEL_BIT_STRING +#undef CHANNEL_DATE #define CHANNEL_DATE +#undef CHANNEL_TIME #define CHANNEL_TIME +#undef CHANNEL_OBJECT_ID #define CHANNEL_OBJECT_ID #endif #if defined(CHANNEL_NUMERIC) +#undef CHANNEL_NULL #define CHANNEL_NULL +#undef CHANNEL_BOOLEAN #define CHANNEL_BOOLEAN +#undef CHANNEL_UNSIGNED #define CHANNEL_UNSIGNED +#undef CHANNEL_SIGNED #define CHANNEL_SIGNED +#undef CHANNEL_REAL #define CHANNEL_REAL +#undef CHANNEL_DOUBLE #define CHANNEL_DOUBLE +#undef CHANNEL_ENUMERATED #define CHANNEL_ENUMERATED +#undef CHANNEL_LIGHTING_COMMAND #define CHANNEL_LIGHTING_COMMAND +#undef CHANNEL_COLOR_COMMAND #define CHANNEL_COLOR_COMMAND +#undef CHANNEL_XY_COLOR #define CHANNEL_XY_COLOR #endif diff --git a/src/bacnet/config.h b/src/bacnet/config.h index 995c3fc6..8fbc82da 100644 --- a/src/bacnet/config.h +++ b/src/bacnet/config.h @@ -26,12 +26,19 @@ /* For backward compatibility for old BACDL_ALL */ #if defined(BACDL_ALL) +#undef BACDL_ETHERNET #define BACDL_ETHERNET +#undef BACDL_ARCNET #define BACDL_ARCNET +#undef BACDL_MSTP #define BACDL_MSTP +#undef BACDL_BIP #define BACDL_BIP +#undef BACDL_BIP6 #define BACDL_BIP6 +#undef BACDL_BSC #define BACDL_BSC +#undef BACDL_ZIGBEE #define BACDL_ZIGBEE #endif @@ -237,53 +244,95 @@ /* clang-format on */ #if defined(BACAPP_ALL) +#undef BACAPP_MINIMAL #define BACAPP_MINIMAL +#undef BACAPP_TYPES_EXTRA #define BACAPP_TYPES_EXTRA #endif #if defined(BACAPP_MINIMAL) +#undef BACAPP_NULL #define BACAPP_NULL +#undef BACAPP_BOOLEAN #define BACAPP_BOOLEAN +#undef BACAPP_UNSIGNED #define BACAPP_UNSIGNED +#undef BACAPP_SIGNED #define BACAPP_SIGNED +#undef BACAPP_REAL #define BACAPP_REAL +#undef BACAPP_CHARACTER_STRING #define BACAPP_CHARACTER_STRING +#undef BACAPP_OCTET_STRING #define BACAPP_OCTET_STRING +#undef BACAPP_BIT_STRING #define BACAPP_BIT_STRING +#undef BACAPP_ENUMERATED #define BACAPP_ENUMERATED +#undef BACAPP_DATE #define BACAPP_DATE +#undef BACAPP_TIME #define BACAPP_TIME +#undef BACAPP_OBJECT_ID #define BACAPP_OBJECT_ID #endif #if defined(BACAPP_TYPES_EXTRA) +#undef BACAPP_DOUBLE #define BACAPP_DOUBLE +#undef BACAPP_TIMESTAMP #define BACAPP_TIMESTAMP +#undef BACAPP_DATETIME #define BACAPP_DATETIME +#undef BACAPP_DATERANGE #define BACAPP_DATERANGE +#undef BACAPP_LIGHTING_COMMAND #define BACAPP_LIGHTING_COMMAND +#undef BACAPP_XY_COLOR #define BACAPP_XY_COLOR +#undef BACAPP_COLOR_COMMAND #define BACAPP_COLOR_COMMAND +#undef BACAPP_WEEKLY_SCHEDULE #define BACAPP_WEEKLY_SCHEDULE +#undef BACAPP_CALENDAR_ENTRY #define BACAPP_CALENDAR_ENTRY +#undef BACAPP_SPECIAL_EVENT #define BACAPP_SPECIAL_EVENT +#undef BACAPP_HOST_N_PORT #define BACAPP_HOST_N_PORT +#undef BACAPP_DEVICE_OBJECT_PROPERTY_REFERENCE #define BACAPP_DEVICE_OBJECT_PROPERTY_REFERENCE +#undef BACAPP_DEVICE_OBJECT_REFERENCE #define BACAPP_DEVICE_OBJECT_REFERENCE +#undef BACAPP_OBJECT_PROPERTY_REFERENCE #define BACAPP_OBJECT_PROPERTY_REFERENCE +#undef BACAPP_DESTINATION #define BACAPP_DESTINATION +#undef BACAPP_BDT_ENTRY #define BACAPP_BDT_ENTRY +#undef BACAPP_FDT_ENTRY #define BACAPP_FDT_ENTRY +#undef BACAPP_ACTION_COMMAND #define BACAPP_ACTION_COMMAND +#undef BACAPP_SCALE #define BACAPP_SCALE +#undef BACAPP_SHED_LEVEL #define BACAPP_SHED_LEVEL +#undef BACAPP_ACCESS_RULE #define BACAPP_ACCESS_RULE +#undef BACAPP_CHANNEL_VALUE #define BACAPP_CHANNEL_VALUE +#undef BACAPP_TIMER_VALUE #define BACAPP_TIMER_VALUE +#undef BACAPP_RECIPIENT #define BACAPP_RECIPIENT +#undef BACAPP_ADDRESS_BINDING #define BACAPP_ADDRESS_BINDING +#undef BACAPP_NO_VALUE #define BACAPP_NO_VALUE +#undef BACAPP_LOG_RECORD #define BACAPP_LOG_RECORD +#undef BACAPP_SECURE_CONNECT #define BACAPP_SECURE_CONNECT #endif @@ -315,6 +364,7 @@ defined(BACAPP_ADDRESS_BINDING) || \ defined(BACAPP_NO_VALUE) || \ defined(BACAPP_LOG_RECORD) +#undef BACAPP_COMPLEX_TYPES #define BACAPP_COMPLEX_TYPES #endif /* clang-format on */ diff --git a/src/bacnet/timer_value.h b/src/bacnet/timer_value.h index 14a8b8e1..a7cffb7d 100644 --- a/src/bacnet/timer_value.h +++ b/src/bacnet/timer_value.h @@ -41,26 +41,44 @@ defined(BACNET_TIMER_VALUE_LIGHTING_COMMAND)) #define BACNET_TIMER_VALUE_NUMERIC #elif defined(BACNET_TIMER_VALUE_ALL) +#undef BACNET_TIMER_VALUE_NUMERIC #define BACNET_TIMER_VALUE_NUMERIC +#undef BACNET_TIMER_VALUE_OCTET_STRING #define BACNET_TIMER_VALUE_OCTET_STRING +#undef BACNET_TIMER_VALUE_CHARACTER_STRING #define BACNET_TIMER_VALUE_CHARACTER_STRING +#undef BACNET_TIMER_VALUE_BIT_STRING #define BACNET_TIMER_VALUE_BIT_STRING +#undef BACNET_TIMER_VALUE_DATE #define BACNET_TIMER_VALUE_DATE +#undef BACNET_TIMER_VALUE_TIME #define BACNET_TIMER_VALUE_TIME +#undef BACNET_TIMER_VALUE_OBJECT_ID #define BACNET_TIMER_VALUE_OBJECT_ID +#undef BACNET_TIMER_VALUE_DATETIME #define BACNET_TIMER_VALUE_DATETIME +#undef BACNET_TIMER_VALUE_CONSTRUCTED_VALUE #define BACNET_TIMER_VALUE_CONSTRUCTED_VALUE +#undef BACNET_TIMER_VALUE_LIGHTING_COMMAND #define BACNET_TIMER_VALUE_LIGHTING_COMMAND #endif #if defined(BACNET_TIMER_VALUE_NUMERIC) +#undef BACNET_TIMER_VALUE_NULL #define BACNET_TIMER_VALUE_NULL +#undef BACNET_TIMER_VALUE_BOOLEAN #define BACNET_TIMER_VALUE_BOOLEAN +#undef BACNET_TIMER_VALUE_UNSIGNED #define BACNET_TIMER_VALUE_UNSIGNED +#undef BACNET_TIMER_VALUE_SIGNED #define BACNET_TIMER_VALUE_SIGNED +#undef BACNET_TIMER_VALUE_REAL #define BACNET_TIMER_VALUE_REAL +#undef BACNET_TIMER_VALUE_DOUBLE #define BACNET_TIMER_VALUE_DOUBLE +#undef BACNET_TIMER_VALUE_ENUMERATED #define BACNET_TIMER_VALUE_ENUMERATED +#undef BACNET_TIMER_VALUE_NO_VALUE #define BACNET_TIMER_VALUE_NO_VALUE #endif