Allow processing of Who-Has when DCC initiation is disabled

This commit is contained in:
Steve Karg
2023-10-31 10:55:08 -05:00
parent 3f1d6fe3a9
commit 4991bb6156
3 changed files with 9 additions and 6 deletions
+1
View File
@@ -143,6 +143,7 @@ static bool apdu_unconfirmed_dcc_disabled(uint8_t service_choice)
/* WhoIs will be processed and I-Am initiated as response. */
switch (service_choice) {
case SERVICE_UNCONFIRMED_WHO_IS:
case SERVICE_UNCONFIRMED_WHO_HAS:
break;
default:
status = true;
+1
View File
@@ -143,6 +143,7 @@ static bool apdu_unconfirmed_dcc_disabled(uint8_t service_choice)
/* WhoIs will be processed and I-Am initiated as response. */
switch (service_choice) {
case SERVICE_UNCONFIRMED_WHO_IS:
case SERVICE_UNCONFIRMED_WHO_HAS:
break;
default:
status = true;
+7 -6
View File
@@ -92,7 +92,7 @@ static BACNET_SERVICES_SUPPORTED
SERVICE_SUPPORTED_UNCONFIRMED_PRIVATE_TRANSFER,
SERVICE_SUPPORTED_UNCONFIRMED_TEXT_MESSAGE,
SERVICE_SUPPORTED_TIME_SYNCHRONIZATION, SERVICE_SUPPORTED_WHO_HAS,
SERVICE_SUPPORTED_WHO_IS,
SERVICE_SUPPORTED_WHO_IS,
SERVICE_SUPPORTED_UTC_TIME_SYNCHRONIZATION,
SERVICE_SUPPORTED_WRITE_GROUP,
SERVICE_SUPPORTED_UNCONFIRMED_COV_NOTIFICATION_MULTIPLE,
@@ -251,7 +251,7 @@ static union {
confirmed_ack_function complex;
} Confirmed_ACK_Function[MAX_BACNET_CONFIRMED_SERVICE];
/**
/**
* @brief Determine if the BACnet service is a Simple Ack Service
* @param service_choice [in] BACnet confirmed service choice
*/
@@ -293,7 +293,7 @@ bool apdu_confirmed_simple_ack_service(
return status;
}
/**
/**
* @brief Set the the BACnet Simple Ack Service handler
* @param service_choice [in] BACnet confirmed service choice
* @param pFunction [in] handler for the service
@@ -307,7 +307,7 @@ void apdu_set_confirmed_simple_ack_handler(
}
}
/**
/**
* @brief Set the the BACnet Confirmed Ack Service handler
* @param service_choice [in] BACnet confirmed service choice
* @param pFunction [in] handler for the service
@@ -531,9 +531,10 @@ static bool apdu_unconfirmed_dcc_disabled(uint8_t service_choice)
can be processed in this state */
status = true;
} else if (dcc_communication_initiation_disabled()) {
/* WhoIs will be processed and I-Am initiated as response. */
/* WhoIs & WhoHas will be processed */
switch (service_choice) {
case SERVICE_UNCONFIRMED_WHO_IS:
case SERVICE_UNCONFIRMED_WHO_HAS:
break;
default:
status = true;
@@ -668,7 +669,7 @@ void apdu_handler(BACNET_ADDRESS *src,
we could check src to see if that matched the tsm */
tsm_free_invoke_id(invoke_id);
break;
case PDU_TYPE_ERROR:
case PDU_TYPE_ERROR:
if (apdu_len < 3) {
break;
}