Added Audit Log and Time Value objects to basic device. (#1128)
* Added ListElement service callback for storing data. * Added Audit Log and Time Value objects to basic device. * Added Audit Log object to Makefile and CMake builds.
This commit is contained in:
@@ -653,14 +653,12 @@ int Audit_Log_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
|
||||
BACNET_CHARACTER_STRING char_string = { 0 };
|
||||
BACNET_BIT_STRING bit_string = { 0 };
|
||||
uint8_t *apdu = NULL;
|
||||
int apdu_max = 0;
|
||||
|
||||
if ((rpdata == NULL) || (rpdata->application_data == NULL) ||
|
||||
(rpdata->application_data_len == 0)) {
|
||||
return 0;
|
||||
}
|
||||
apdu = rpdata->application_data;
|
||||
apdu_max = rpdata->application_data_len;
|
||||
switch (rpdata->object_property) {
|
||||
case PROP_OBJECT_IDENTIFIER:
|
||||
apdu_len = encode_application_object_id(
|
||||
|
||||
@@ -666,6 +666,8 @@ static uint32_t Database_Revision = 0;
|
||||
static BACNET_REINITIALIZED_STATE Reinitialize_State = BACNET_REINIT_IDLE;
|
||||
static const char *Reinit_Password = "filister";
|
||||
static write_property_function Device_Write_Property_Store_Callback;
|
||||
static list_element_function Device_Add_List_Element_Callback;
|
||||
static list_element_function Device_Remove_List_Element_Callback;
|
||||
|
||||
#ifdef BAC_ROUTING
|
||||
static bool Device_Router_Mode = false;
|
||||
@@ -2150,6 +2152,15 @@ bool Device_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
|
||||
return (status);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Set the callback for a Add_List_Element successful operation
|
||||
* @param cb [in] The function to be called, or NULL to disable
|
||||
*/
|
||||
void Device_Add_List_Element_Callback_Set(list_element_function cb)
|
||||
{
|
||||
Device_Add_List_Element_Callback = cb;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief AddListElement from an object list property
|
||||
* @param list_element [in] Pointer to the BACnet_List_Element_Data structure,
|
||||
@@ -2168,6 +2179,9 @@ int Device_Add_List_Element(BACNET_LIST_ELEMENT_DATA *list_element)
|
||||
pObject->Object_Valid_Instance(list_element->object_instance)) {
|
||||
if (pObject->Object_Add_List_Element) {
|
||||
status = pObject->Object_Add_List_Element(list_element);
|
||||
if (status) {
|
||||
Device_Add_List_Element_Callback(list_element);
|
||||
}
|
||||
} else {
|
||||
list_element->error_class = ERROR_CLASS_PROPERTY;
|
||||
list_element->error_code = ERROR_CODE_WRITE_ACCESS_DENIED;
|
||||
@@ -2184,6 +2198,15 @@ int Device_Add_List_Element(BACNET_LIST_ELEMENT_DATA *list_element)
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Set the callback for a Remove_List_Element successful operation
|
||||
* @param cb [in] The function to be called, or NULL to disable
|
||||
*/
|
||||
void Device_Remove_List_Element_Callback_Set(list_element_function cb)
|
||||
{
|
||||
Device_Remove_List_Element_Callback = cb;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief RemoveListElement from an object list property
|
||||
* @param list_element [in] Pointer to the BACnet_List_Element_Data structure,
|
||||
@@ -2202,6 +2225,9 @@ int Device_Remove_List_Element(BACNET_LIST_ELEMENT_DATA *list_element)
|
||||
pObject->Object_Valid_Instance(list_element->object_instance)) {
|
||||
if (pObject->Object_Remove_List_Element) {
|
||||
status = pObject->Object_Remove_List_Element(list_element);
|
||||
if (status) {
|
||||
Device_Remove_List_Element_Callback(list_element);
|
||||
}
|
||||
} else {
|
||||
list_element->error_class = ERROR_CLASS_PROPERTY;
|
||||
list_element->error_code = ERROR_CODE_WRITE_ACCESS_DENIED;
|
||||
|
||||
@@ -394,9 +394,12 @@ int Device_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata);
|
||||
BACNET_STACK_EXPORT
|
||||
bool Device_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data);
|
||||
|
||||
BACNET_STACK_EXPORT
|
||||
void Device_Add_List_Element_Callback_Set(list_element_function cb);
|
||||
BACNET_STACK_EXPORT
|
||||
int Device_Add_List_Element(BACNET_LIST_ELEMENT_DATA *list_element);
|
||||
|
||||
BACNET_STACK_EXPORT
|
||||
void Device_Remove_List_Element_Callback_Set(list_element_function cb);
|
||||
BACNET_STACK_EXPORT
|
||||
int Device_Remove_List_Element(BACNET_LIST_ELEMENT_DATA *list_element);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user