Added RP and RPM error code indications in callbacks (#756)

This commit is contained in:
Steve Karg
2024-08-29 14:09:22 -05:00
committed by GitHub
parent a2f1d6959d
commit 8ee583a10c
+8 -1
View File
@@ -210,6 +210,11 @@ static void bacnet_read_property_ack_process(
BACNET_ARRAY_INDEX array_index = 0; BACNET_ARRAY_INDEX array_index = 0;
if (rp_data) { if (rp_data) {
if (rp_data->error_code != ERROR_CODE_SUCCESS) {
if (bacnet_read_write_value_callback) {
bacnet_read_write_value_callback(device_id, rp_data, NULL);
}
}
apdu = rp_data->application_data; apdu = rp_data->application_data;
apdu_len = rp_data->application_data_len; apdu_len = rp_data->application_data_len;
while (apdu_len) { while (apdu_len) {
@@ -269,12 +274,13 @@ static void My_Read_Property_Ack_Handler(uint8_t *service_request,
BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data) BACNET_CONFIRMED_SERVICE_ACK_DATA *service_data)
{ {
int len = 0; int len = 0;
BACNET_READ_PROPERTY_DATA rp_data; BACNET_READ_PROPERTY_DATA rp_data = { 0 };
uint32_t device_id = 0; uint32_t device_id = 0;
if (address_match(&Target_Address, src) && if (address_match(&Target_Address, src) &&
(service_data->invoke_id == Request_Invoke_ID)) { (service_data->invoke_id == Request_Invoke_ID)) {
address_get_device_id(src, &device_id); address_get_device_id(src, &device_id);
rp_data.error_code = ERROR_CODE_SUCCESS;
len = rp_ack_decode_service_request( len = rp_ack_decode_service_request(
service_request, service_len, &rp_data); service_request, service_len, &rp_data);
if (len < 0) { if (len < 0) {
@@ -308,6 +314,7 @@ static void My_Read_Property_Multiple_Ack_Handler(uint8_t *apdu,
address_get_device_id(src, &device_id); address_get_device_id(src, &device_id);
if (address_match(&Target_Address, src) && if (address_match(&Target_Address, src) &&
(service_data->invoke_id == Request_Invoke_ID)) { (service_data->invoke_id == Request_Invoke_ID)) {
rp_data.error_code = ERROR_CODE_SUCCESS;
rpm_ack_object_property_process(apdu, apdu_len, rpm_ack_object_property_process(apdu, apdu_len,
device_id, &rp_data, device_id, &rp_data,
bacnet_read_property_ack_process); bacnet_read_property_ack_process);