Files
bacnet_stack/src/bacnet/basic/object/credential_data_input.h
T
Steve Karg 3a0878a254 Add API for writable object property lists (#1206)
Added a new API for writable property lists across all the basic example object types, preparing for the introduction of a Writable_Property_List property in every object in a future BACnet standard revision.

The lists can be used by backup and restore feature to automatically choose the object property values in the backup that can be restored via internal WriteProperty directly from BACnet CreateObject services with  List of Initial Values. 

Updated existing device object examples to include these writable property lists.
2026-01-21 10:02:21 -06:00

95 lines
2.8 KiB
C

/**
* @file
* @author Nikola Jelic <nikola.jelic@euroicc.com>
* @date 2015
* @brief Credential Data Input Objects - customize for your use
* @copyright SPDX-License-Identifier: MIT
*/
#ifndef BACNET_BASIC_OBJECT_CREDENTIAL_DATA_INPUT_H
#define BACNET_BASIC_OBJECT_CREDENTIAL_DATA_INPUT_H
#include <stdbool.h>
#include <stdint.h>
/* BACnet Stack defines - first */
#include "bacnet/bacdef.h"
/* BACnet Stack API */
#include "bacnet/bacerror.h"
#include "bacnet/timestamp.h"
#include "bacnet/bacdevobjpropref.h"
#include "bacnet/authentication_factor.h"
#include "bacnet/authentication_factor_format.h"
#include "bacnet/timestamp.h"
#include "bacnet/rp.h"
#include "bacnet/wp.h"
#ifndef MAX_CREDENTIAL_DATA_INPUTS
#define MAX_CREDENTIAL_DATA_INPUTS 4
#endif
#ifndef MAX_AUTHENTICATION_FACTOR_FORMAT_COUNT
#define MAX_AUTHENTICATION_FACTOR_FORMAT_COUNT 4
#endif
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef struct {
BACNET_AUTHENTICATION_FACTOR present_value;
BACNET_RELIABILITY reliability;
bool out_of_service;
uint32_t supported_formats_count;
BACNET_AUTHENTICATION_FACTOR_FORMAT
supported_formats[MAX_AUTHENTICATION_FACTOR_FORMAT_COUNT];
BACNET_TIMESTAMP timestamp;
} CREDENTIAL_DATA_INPUT_DESCR;
BACNET_STACK_EXPORT
void Credential_Data_Input_Property_Lists(
const int32_t **pRequired,
const int32_t **pOptional,
const int32_t **pProprietary);
BACNET_STACK_EXPORT
void Credential_Data_Input_Writable_Property_List(
uint32_t object_instance, const int32_t **properties);
BACNET_STACK_EXPORT
bool Credential_Data_Input_Valid_Instance(uint32_t object_instance);
BACNET_STACK_EXPORT
unsigned Credential_Data_Input_Count(void);
BACNET_STACK_EXPORT
uint32_t Credential_Data_Input_Index_To_Instance(unsigned index);
BACNET_STACK_EXPORT
unsigned Credential_Data_Input_Instance_To_Index(uint32_t instance);
BACNET_STACK_EXPORT
bool Credential_Data_Input_Object_Instance_Add(uint32_t instance);
BACNET_STACK_EXPORT
bool Credential_Data_Input_Object_Name(
uint32_t object_instance, BACNET_CHARACTER_STRING *object_name);
BACNET_STACK_EXPORT
bool Credential_Data_Input_Name_Set(uint32_t object_instance, char *new_name);
BACNET_STACK_EXPORT
bool Credential_Data_Input_Out_Of_Service(uint32_t instance);
BACNET_STACK_EXPORT
void Credential_Data_Input_Out_Of_Service_Set(uint32_t instance, bool oos_flag);
BACNET_STACK_EXPORT
int Credential_Data_Input_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata);
BACNET_STACK_EXPORT
bool Credential_Data_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data);
BACNET_STACK_EXPORT
uint32_t Credential_Data_Input_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
bool Credential_Data_Input_Delete(uint32_t object_instance);
BACNET_STACK_EXPORT
void Credential_Data_Input_Cleanup(void);
BACNET_STACK_EXPORT
void Credential_Data_Input_Init(void);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif