Changed link-speed, network-number, network-number-quality, and apdu-length properties of the network port object to be optional when protocol-revision is 24 or greater. (#913)

This commit is contained in:
Steve Karg
2025-02-13 08:44:30 -06:00
committed by GitHub
parent 7b9d6d7dc5
commit f8e9ab8d86
7 changed files with 142 additions and 29 deletions
+14 -2
View File
@@ -58,11 +58,23 @@ static uint32_t Link_Speeds[] = {9600, 19200, 38400, 57600, 76800, 115200 };
static const int Network_Port_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, static const int Network_Port_Properties_Required[] = { PROP_OBJECT_IDENTIFIER,
PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_RELIABILITY, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_RELIABILITY,
PROP_OUT_OF_SERVICE, PROP_NETWORK_TYPE, PROP_PROTOCOL_LEVEL, PROP_OUT_OF_SERVICE, PROP_NETWORK_TYPE, PROP_PROTOCOL_LEVEL,
PROP_NETWORK_NUMBER, PROP_NETWORK_NUMBER_QUALITY, PROP_CHANGES_PENDING, PROP_CHANGES_PENDING,
PROP_APDU_LENGTH, PROP_LINK_SPEED, -1 }; #if (BACNET_PROTOCOL_REVISION < 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1 };
static const int Network_Port_Properties_Optional[] = { PROP_MAC_ADDRESS, static const int Network_Port_Properties_Optional[] = { PROP_MAC_ADDRESS,
PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, PROP_LINK_SPEEDS, PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, PROP_LINK_SPEEDS,
#if (BACNET_PROTOCOL_REVISION >= 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1 }; -1 };
static const int Network_Port_Properties_Proprietary[] = { -1 }; static const int Network_Port_Properties_Proprietary[] = { -1 };
+15 -2
View File
@@ -59,11 +59,24 @@ static uint32_t Link_Speeds[] = {9600, 19200, 38400, 57600, 76800, 115200 };
static const int Network_Port_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, static const int Network_Port_Properties_Required[] = { PROP_OBJECT_IDENTIFIER,
PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_RELIABILITY, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_RELIABILITY,
PROP_OUT_OF_SERVICE, PROP_NETWORK_TYPE, PROP_PROTOCOL_LEVEL, PROP_OUT_OF_SERVICE, PROP_NETWORK_TYPE, PROP_PROTOCOL_LEVEL,
PROP_NETWORK_NUMBER, PROP_NETWORK_NUMBER_QUALITY, PROP_CHANGES_PENDING, PROP_CHANGES_PENDING,
PROP_APDU_LENGTH, PROP_LINK_SPEED, -1 }; #if (BACNET_PROTOCOL_REVISION < 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1
};
static const int Network_Port_Properties_Optional[] = { PROP_MAC_ADDRESS, static const int Network_Port_Properties_Optional[] = { PROP_MAC_ADDRESS,
PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, PROP_LINK_SPEEDS, PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, PROP_LINK_SPEEDS,
#if (BACNET_PROTOCOL_REVISION >= 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1 }; -1 };
static const int Network_Port_Properties_Proprietary[] = { -1 }; static const int Network_Port_Properties_Proprietary[] = { -1 };
+14 -2
View File
@@ -58,11 +58,23 @@ static uint32_t Link_Speeds[] = {9600, 19200, 38400, 57600, 76800, 115200 };
static const int Network_Port_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, static const int Network_Port_Properties_Required[] = { PROP_OBJECT_IDENTIFIER,
PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_RELIABILITY, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_RELIABILITY,
PROP_OUT_OF_SERVICE, PROP_NETWORK_TYPE, PROP_PROTOCOL_LEVEL, PROP_OUT_OF_SERVICE, PROP_NETWORK_TYPE, PROP_PROTOCOL_LEVEL,
PROP_NETWORK_NUMBER, PROP_NETWORK_NUMBER_QUALITY, PROP_CHANGES_PENDING, PROP_CHANGES_PENDING,
PROP_APDU_LENGTH, PROP_LINK_SPEED, -1 }; #if (BACNET_PROTOCOL_REVISION < 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1 };
static const int Network_Port_Properties_Optional[] = { PROP_MAC_ADDRESS, static const int Network_Port_Properties_Optional[] = { PROP_MAC_ADDRESS,
PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, PROP_LINK_SPEEDS, PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, PROP_LINK_SPEEDS,
#if (BACNET_PROTOCOL_REVISION >= 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1 }; -1 };
static const int Network_Port_Properties_Proprietary[] = { -1 }; static const int Network_Port_Properties_Proprietary[] = { -1 };
+16 -3
View File
@@ -58,11 +58,24 @@ static uint32_t Link_Speeds[] = { 9600, 19200, 38400, 57600, 76800, 115200 };
static const int Network_Port_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, static const int Network_Port_Properties_Required[] = { PROP_OBJECT_IDENTIFIER,
PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_RELIABILITY, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_RELIABILITY,
PROP_OUT_OF_SERVICE, PROP_NETWORK_TYPE, PROP_PROTOCOL_LEVEL, PROP_OUT_OF_SERVICE, PROP_NETWORK_TYPE, PROP_PROTOCOL_LEVEL,
PROP_NETWORK_NUMBER, PROP_NETWORK_NUMBER_QUALITY, PROP_CHANGES_PENDING, PROP_CHANGES_PENDING,
PROP_APDU_LENGTH, PROP_LINK_SPEED, -1 }; #if (BACNET_PROTOCOL_REVISION < 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1 };
static const int Network_Port_Properties_Optional[] = { PROP_MAC_ADDRESS, static const int Network_Port_Properties_Optional[] = { PROP_MAC_ADDRESS,
PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, PROP_LINK_SPEEDS, -1 }; PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, PROP_LINK_SPEEDS,
#if (BACNET_PROTOCOL_REVISION >= 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1 };
static const int Network_Port_Properties_Proprietary[] = { -1 }; static const int Network_Port_Properties_Proprietary[] = { -1 };
+14 -2
View File
@@ -52,11 +52,23 @@ static uint32_t Link_Speeds[] = {9600, 19200, 38400, 57600, 76800, 115200 };
static const int Network_Port_Properties_Required[] = { PROP_OBJECT_IDENTIFIER, static const int Network_Port_Properties_Required[] = { PROP_OBJECT_IDENTIFIER,
PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_RELIABILITY, PROP_OBJECT_NAME, PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_RELIABILITY,
PROP_OUT_OF_SERVICE, PROP_NETWORK_TYPE, PROP_PROTOCOL_LEVEL, PROP_OUT_OF_SERVICE, PROP_NETWORK_TYPE, PROP_PROTOCOL_LEVEL,
PROP_NETWORK_NUMBER, PROP_NETWORK_NUMBER_QUALITY, PROP_CHANGES_PENDING, PROP_CHANGES_PENDING,
PROP_APDU_LENGTH, PROP_LINK_SPEED, -1 }; #if (BACNET_PROTOCOL_REVISION < 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1 };
static const int Network_Port_Properties_Optional[] = { PROP_MAC_ADDRESS, static const int Network_Port_Properties_Optional[] = { PROP_MAC_ADDRESS,
PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, PROP_LINK_SPEEDS, PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, PROP_LINK_SPEEDS,
#if (BACNET_PROTOCOL_REVISION >= 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1 }; -1 };
static const int Network_Port_Properties_Proprietary[] = { -1 }; static const int Network_Port_Properties_Proprietary[] = { -1 };
+47 -11
View File
@@ -130,23 +130,49 @@ static struct object_data Object_List[BACNET_NETWORK_PORTS_MAX];
/* These three arrays are used by the ReadPropertyMultiple handler */ /* These three arrays are used by the ReadPropertyMultiple handler */
static const int Network_Port_Properties_Required[] = { static const int Network_Port_Properties_Required[] = {
/* unordered list of required properties */ /* unordered list of required properties */
PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_IDENTIFIER,
PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_OBJECT_NAME,
PROP_RELIABILITY, PROP_OUT_OF_SERVICE, PROP_OBJECT_TYPE,
PROP_NETWORK_TYPE, PROP_PROTOCOL_LEVEL, PROP_STATUS_FLAGS,
PROP_NETWORK_NUMBER, PROP_NETWORK_NUMBER_QUALITY, PROP_RELIABILITY,
PROP_CHANGES_PENDING, PROP_APDU_LENGTH, PROP_OUT_OF_SERVICE,
PROP_LINK_SPEED, -1 PROP_NETWORK_TYPE,
PROP_PROTOCOL_LEVEL,
PROP_CHANGES_PENDING,
#if (BACNET_PROTOCOL_REVISION < 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1
}; };
static const int Ethernet_Port_Properties_Optional[] = { static const int Ethernet_Port_Properties_Optional[] = {
/* unordered list of optional properties */ /* unordered list of optional properties */
PROP_DESCRIPTION, PROP_MAC_ADDRESS, -1 PROP_DESCRIPTION,
PROP_MAC_ADDRESS,
#if (BACNET_PROTOCOL_REVISION >= 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1
}; };
static const int MSTP_Port_Properties_Optional[] = { static const int MSTP_Port_Properties_Optional[] = {
/* unordered list of optional properties */ /* unordered list of optional properties */
PROP_DESCRIPTION, PROP_MAC_ADDRESS, PROP_MAX_MASTER, PROP_MAX_INFO_FRAMES, PROP_DESCRIPTION,
PROP_MAC_ADDRESS,
PROP_MAX_MASTER,
PROP_MAX_INFO_FRAMES,
#if (BACNET_PROTOCOL_REVISION >= 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1 -1
}; };
@@ -171,6 +197,12 @@ static const int BIP_Port_Properties_Optional[] = {
#if defined(BACDL_BIP) && (BBMD_CLIENT_ENABLED) #if defined(BACDL_BIP) && (BBMD_CLIENT_ENABLED)
PROP_FD_BBMD_ADDRESS, PROP_FD_BBMD_ADDRESS,
PROP_FD_SUBSCRIPTION_LIFETIME, PROP_FD_SUBSCRIPTION_LIFETIME,
#endif
#if (BACNET_PROTOCOL_REVISION >= 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif #endif
-1 -1
}; };
@@ -199,6 +231,12 @@ static const int BIP6_Port_Properties_Optional[] = {
#if defined(BACDL_BIP6) && (BBMD_CLIENT_ENABLED) #if defined(BACDL_BIP6) && (BBMD_CLIENT_ENABLED)
PROP_FD_BBMD_ADDRESS, PROP_FD_BBMD_ADDRESS,
PROP_FD_SUBSCRIPTION_LIFETIME, PROP_FD_SUBSCRIPTION_LIFETIME,
#endif
#if (BACNET_PROTOCOL_REVISION >= 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif #endif
-1 -1
}; };
@@ -3957,7 +3995,6 @@ bool Network_Port_Read_Range(
bool status = false; bool status = false;
switch (pRequest->object_property) { switch (pRequest->object_property) {
/* required properties */
case PROP_OBJECT_IDENTIFIER: case PROP_OBJECT_IDENTIFIER:
case PROP_OBJECT_NAME: case PROP_OBJECT_NAME:
case PROP_OBJECT_TYPE: case PROP_OBJECT_TYPE:
@@ -3971,7 +4008,6 @@ bool Network_Port_Read_Range(
case PROP_CHANGES_PENDING: case PROP_CHANGES_PENDING:
case PROP_APDU_LENGTH: case PROP_APDU_LENGTH:
case PROP_LINK_SPEED: case PROP_LINK_SPEED:
/* optional properties */
case PROP_MAC_ADDRESS: case PROP_MAC_ADDRESS:
#if defined(BACDL_MSTP) #if defined(BACDL_MSTP)
case PROP_MAX_MASTER: case PROP_MAX_MASTER:
+22 -7
View File
@@ -2011,13 +2011,22 @@ static const int Multistate_Value_Properties_Optional[] = {
static const int Network_Port_Properties_Required[] = { static const int Network_Port_Properties_Required[] = {
/* unordered list of properties */ /* unordered list of properties */
PROP_OBJECT_IDENTIFIER, PROP_OBJECT_NAME, PROP_OBJECT_IDENTIFIER,
PROP_OBJECT_TYPE, PROP_STATUS_FLAGS, PROP_OBJECT_NAME,
PROP_RELIABILITY, PROP_OUT_OF_SERVICE, PROP_OBJECT_TYPE,
PROP_NETWORK_TYPE, PROP_PROTOCOL_LEVEL, PROP_STATUS_FLAGS,
PROP_NETWORK_NUMBER, PROP_NETWORK_NUMBER_QUALITY, PROP_RELIABILITY,
PROP_CHANGES_PENDING, PROP_APDU_LENGTH, PROP_OUT_OF_SERVICE,
PROP_LINK_SPEED, -1 PROP_NETWORK_TYPE,
PROP_PROTOCOL_LEVEL,
PROP_CHANGES_PENDING,
#if (BACNET_PROTOCOL_REVISION < 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1
}; };
static const int Network_Port_Properties_Optional[] = { static const int Network_Port_Properties_Optional[] = {
@@ -2082,6 +2091,12 @@ static const int Network_Port_Properties_Optional[] = {
PROP_TAGS, PROP_TAGS,
PROP_PROFILE_LOCATION, PROP_PROFILE_LOCATION,
PROP_PROFILE_NAME, PROP_PROFILE_NAME,
#if (BACNET_PROTOCOL_REVISION >= 24)
PROP_APDU_LENGTH,
PROP_NETWORK_NUMBER,
PROP_NETWORK_NUMBER_QUALITY,
PROP_LINK_SPEED,
#endif
-1 -1
}; };