Changed WhoHas and I-Have to use CharacterString instead of forcing ANSI X34 and C Strings. Affected all demos and ports object name, so I changed the object name function name to make sure it was noticed.

This commit is contained in:
skarg
2011-03-24 16:53:02 +00:00
parent 75d88abf77
commit deab12a5e1
74 changed files with 1566 additions and 850 deletions
+17 -14
View File
@@ -40,36 +40,39 @@
/** Local function which responds with either the requested object name
* or object ID, if the Device has a match.
* @param data [in] The decoded who-has payload from the request.
* @param data [in] The decoded who-has payload from the request.
*/
static void match_name_or_object(
BACNET_WHO_HAS_DATA * data)
{
char *object_name = NULL;
int object_type = 0;
uint32_t object_instance = 0;
bool found = false;
BACNET_CHARACTER_STRING object_name;
/* do we have such an object? If so, send an I-Have.
note: we should have only 1 of such an object */
if (data->object_name) {
if (data->is_object_name) {
/* valid name in my device? */
object_name = characterstring_value(&data->object.name);
found =
Device_Valid_Object_Name(object_name, &object_type,
Device_Valid_Object_Name(&data->object.name, &object_type,
&object_instance);
if (found)
if (found) {
Send_I_Have(Device_Object_Instance_Number(),
(BACNET_OBJECT_TYPE) object_type, object_instance,
object_name);
&data->object.name);
}
} else {
/* valid object in my device? */
object_name =
Device_Valid_Object_Id(data->object.identifier.type,
data->object.identifier.instance);
if (object_name)
/* valid object_name copy in my device? */
found = Device_Object_Name_Copy(
data->object.identifier.type,
data->object.identifier.instance,
&object_name);
if (found) {
Send_I_Have(Device_Object_Instance_Number(),
(BACNET_OBJECT_TYPE) data->object.identifier.type,
data->object.identifier.instance, object_name);
data->object.identifier.instance, &object_name);
}
}
}
@@ -108,7 +111,7 @@ void handler_who_has(
#ifdef BAC_ROUTING
/** Handler for Who-Has requests in the virtual routing setup,
/** Handler for Who-Has requests in the virtual routing setup,
* with broadcast I-Have response.
* Will respond if the device Object ID matches, and we have
* the Object or Object Name requested.