Allow processing of Who-Has when DCC initiation is disabled
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user