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

This commit is contained in:
petermcs
2011-12-31 08:05:29 +00:00
parent a5f6477364
commit 954d2b0079
+6 -5
View File
@@ -126,11 +126,6 @@ static int RPM_Encode_Property(
len = 0;
rpdata.error_class = ERROR_CLASS_OBJECT;
rpdata.error_code = ERROR_CODE_UNKNOWN_OBJECT;
/* Test for case of indefinite Device object instance */
if ((rpmdata->object_type == OBJECT_DEVICE) &&
(rpmdata->object_instance == BACNET_MAX_INSTANCE)) {
rpmdata->object_instance = Device_Object_Instance_Number();
}
rpdata.object_type = rpmdata->object_type;
rpdata.object_instance = rpmdata->object_instance;
rpdata.object_property = rpmdata->object_property;
@@ -245,6 +240,12 @@ void handler_read_property_multiple(
goto RPM_FAILURE;
}
/* Test for case of indefinite Device object instance */
if ((rpmdata.object_type == OBJECT_DEVICE) &&
(rpmdata.object_instance == BACNET_MAX_INSTANCE)) {
rpmdata.object_instance = Device_Object_Instance_Number();
}
/* Stick this object id into the reply - if it will fit */
len = rpm_ack_encode_apdu_object_begin(&Temp_Buf[0], &rpmdata);
copy_len =