Bugfix/device object protocol revision 14 property list (#82)

* Added property-list to device object for client applications

* Added property-list to some AVR ARM and RX62 ports

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
This commit is contained in:
Steve Karg
2020-05-02 14:01:09 -05:00
committed by GitHub
parent 05aaee7f6b
commit ec923e51a3
10 changed files with 101 additions and 5 deletions
+3
View File
@@ -1101,6 +1101,9 @@
<file>
<name>$PROJ_DIR$\..\..\src\bacnet\proplist.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\src\bacnet\proplist.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\src\bacnet\rd.c</name>
</file>
+19 -1
View File
@@ -37,6 +37,7 @@
#include "rs485.h"
#include "bacnet/version.h"
#include "bacnet/basic/services.h"
#include "bacnet/proplist.h"
/* objects */
#include "bacnet/basic/object/device.h"
#include "bacnet/basic/object/bo.h"
@@ -118,6 +119,9 @@ static int Read_Property_Common(
int apdu_len = BACNET_STATUS_ERROR;
BACNET_CHARACTER_STRING char_string;
uint8_t *apdu = NULL;
#if (BACNET_PROTOCOL_REVISION >= 14)
struct special_property_list_t property_list;
#endif
if ((rpdata->application_data == NULL) ||
(rpdata->application_data_len == 0)) {
@@ -168,6 +172,19 @@ static int Read_Property_Common(
&apdu[0], rpdata->object_type);
}
break;
#if (BACNET_PROTOCOL_REVISION >= 14)
case PROP_PROPERTY_LIST:
Device_Objects_Property_List(
rpdata->object_type,
rpdata->object_instance,
&property_list);
apdu_len = property_list_encode(
rpdata,
property_list.Required.pList,
property_list.Optional.pList,
property_list.Proprietary.pList);
break;
#endif
default:
if (pObject->Object_Read_Property) {
apdu_len = pObject->Object_Read_Property(rpdata);
@@ -319,7 +336,8 @@ bool Device_Set_Object_Name(BACNET_CHARACTER_STRING *object_name)
return status;
}
bool Device_Reinitialize(BACNET_REINITIALIZE_DEVICE_DATA *rd_data)
bool Device_Reinitialize(
BACNET_REINITIALIZE_DEVICE_DATA * rd_data)
{
bool status = false;