Moved check for wild card Device Id to before call to rp_ack_encode_apdu_init so that the real Device ID is encoded in the response.

This commit is contained in:
petermcs
2011-12-31 07:58:13 +00:00
parent ad74c6d4ac
commit a5f6477364
+6 -5
View File
@@ -110,6 +110,12 @@ void handler_read_property(
#endif
goto RP_FAILURE;
}
/* Test for case of indefinite Device object instance */
if ((rpdata.object_type == OBJECT_DEVICE) &&
(rpdata.object_instance == BACNET_MAX_INSTANCE)) {
rpdata.object_instance = Device_Object_Instance_Number();
}
apdu_len =
rp_ack_encode_apdu_init(&Handler_Transmit_Buffer[npdu_len],
service_data->invoke_id, &rpdata);
@@ -117,11 +123,6 @@ void handler_read_property(
rpdata.application_data = &Handler_Transmit_Buffer[npdu_len + apdu_len];
rpdata.application_data_len =
sizeof(Handler_Transmit_Buffer) - (npdu_len + apdu_len);
/* Test for case of indefinite Device object instance */
if ((rpdata.object_type == OBJECT_DEVICE) &&
(rpdata.object_instance == BACNET_MAX_INSTANCE)) {
rpdata.object_instance = Device_Object_Instance_Number();
}
len = Device_Read_Property(&rpdata);
if (len >= 0) {
apdu_len += len;