Added a context variable in basic object data structure and API to get or set the context pointer. (#1111)

This commit is contained in:
Steve Karg
2025-09-26 13:19:58 -05:00
committed by GitHub
parent d91282be16
commit 2416157351
52 changed files with 997 additions and 8 deletions
+32
View File
@@ -1655,6 +1655,38 @@ int Analog_Input_Alarm_Summary(
}
#endif /* defined(INTRINSIC_REPORTING) */
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Analog_Input_Context_Get(uint32_t object_instance)
{
struct analog_input_descr *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Analog_Input_Context_Set(uint32_t object_instance, void *context)
{
struct analog_input_descr *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a Analog Input object
* @param object_instance - object-instance number of the object
+6
View File
@@ -34,6 +34,7 @@ typedef struct analog_input_descr {
bool Changed;
const char *Object_Name;
const char *Description;
void *Context;
#if defined(INTRINSIC_REPORTING)
uint32_t Time_Delay;
uint32_t Notification_Class;
@@ -205,6 +206,11 @@ int Analog_Input_Alarm_Summary(
unsigned index, BACNET_GET_ALARM_SUMMARY_DATA *getalarm_data);
#endif
BACNET_STACK_EXPORT
void *Analog_Input_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Analog_Input_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Analog_Input_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -46,6 +46,7 @@ struct object_data {
uint8_t Reliability;
const char *Object_Name;
const char *Description;
void *Context;
};
/* Key List for storing the object data sorted by instance number */
static OS_Keylist Object_List;
@@ -1257,6 +1258,38 @@ void Analog_Output_Write_Present_Value_Callback_Set(
Analog_Output_Write_Present_Value_Callback = cb;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Analog_Output_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Analog_Output_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a Analog Output object
* @param object_instance - object-instance number of the object
+5
View File
@@ -132,6 +132,11 @@ int Analog_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata);
BACNET_STACK_EXPORT
bool Analog_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data);
BACNET_STACK_EXPORT
void *Analog_Output_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Analog_Output_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Analog_Output_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -103,6 +103,7 @@ struct object_data {
int Record_Count_Total;
const char *Object_Name;
const char *Description;
void *Context;
};
/* Key List for storing the object data sorted by instance number */
static OS_Keylist Object_List;
@@ -1378,6 +1379,38 @@ int Audit_Log_Read_Range_By_Time(BACNET_READ_RANGE_DATA *pRequest)
return apdu_len;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Audit_Log_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Audit_Log_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a Audit Log object
* @param object_instance - object-instance number of the object
+6
View File
@@ -69,6 +69,12 @@ BACNET_STACK_EXPORT
int Audit_Log_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata);
BACNET_STACK_EXPORT
bool Audit_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data);
BACNET_STACK_EXPORT
void *Audit_Log_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Audit_Log_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Audit_Log_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+32
View File
@@ -1725,6 +1725,38 @@ int Analog_Value_Alarm_Summary(
}
#endif /* defined(INTRINSIC_REPORTING) */
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Analog_Value_Context_Get(uint32_t object_instance)
{
struct analog_value_descr *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Analog_Value_Context_Set(uint32_t object_instance, void *context)
{
struct analog_value_descr *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a Analog Value object
* @param object_instance - object-instance number of the object
+6
View File
@@ -36,6 +36,7 @@ typedef struct analog_value_descr {
const char *Object_Name;
const char *Description;
BACNET_RELIABILITY Reliability;
void *Context;
#if defined(INTRINSIC_REPORTING)
uint32_t Time_Delay;
uint32_t Notification_Class;
@@ -219,6 +220,11 @@ int Analog_Value_Alarm_Summary(
unsigned index, BACNET_GET_ALARM_SUMMARY_DATA *getalarm_data);
#endif
BACNET_STACK_EXPORT
void *Analog_Value_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Analog_Value_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Analog_Value_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -36,6 +36,7 @@ struct object_data {
char *Object_Name;
char *Pathname;
char *File_Type;
void *Context;
BACNET_DATE_TIME Modification_Date;
bool File_Access_Stream : 1;
bool Read_Only : 1;
@@ -1148,6 +1149,38 @@ bool bacfile_read_ack_record_data(
return found;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *bacfile_create_context_get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void bacfile_create_context_set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a File object
* @param object_instance - object-instance number of the object
+5
View File
@@ -134,6 +134,11 @@ void bacfile_file_size_callback_set(size_t (*callback)(const char *));
BACNET_STACK_EXPORT
void bacfile_file_size_set_callback_set(bool (*callback)(const char *, size_t));
BACNET_STACK_EXPORT
void *bacfile_context_get(uint32_t object_instance);
BACNET_STACK_EXPORT
void bacfile_context_set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t bacfile_create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -44,6 +44,7 @@ struct object_data {
const char *Active_Text;
const char *Inactive_Text;
const char *Description;
void *Context;
#if defined(INTRINSIC_REPORTING) && (BINARY_INPUT_INTRINSIC_REPORTING)
uint32_t Time_Delay;
uint32_t Notification_Class;
@@ -1285,6 +1286,38 @@ void Binary_Input_Write_Disable(uint32_t object_instance)
}
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Binary_Input_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Binary_Input_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* Creates a Binary Input object
* @param object_instance - object-instance number of the object
+5
View File
@@ -127,6 +127,11 @@ void Binary_Input_Write_Enable(uint32_t instance);
BACNET_STACK_EXPORT
void Binary_Input_Write_Disable(uint32_t instance);
BACNET_STACK_EXPORT
void *Binary_Input_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Binary_Input_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Binary_Input_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -33,6 +33,7 @@ struct object_data {
BACNET_RELIABILITY Reliability;
const char *Object_Name;
const char *Description;
void *Context;
};
/* Key List for storing the object data sorted by instance number */
static OS_Keylist Object_List;
@@ -789,6 +790,38 @@ void BitString_Value_Write_Disable(uint32_t object_instance)
}
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *BitString_Value_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void BitString_Value_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* Creates a BitString Value object
* @param object_instance - object-instance number of the object
@@ -107,6 +107,11 @@ void BitString_Value_Write_Enable(uint32_t instance);
BACNET_STACK_EXPORT
void BitString_Value_Write_Disable(uint32_t instance);
BACNET_STACK_EXPORT
void *BitString_Value_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void BitString_Value_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t BitString_Value_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -26,6 +26,7 @@
/* object property values */
struct object_data {
void *Context;
const char *Object_Name;
const char *Description;
BACNET_RELIABILITY Reliability;
@@ -1517,6 +1518,38 @@ void Binary_Lighting_Output_Blink_Warn_Callback_Set(
Binary_Lighting_Output_Blink_Warn_Callback = cb;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Binary_Lighting_Output_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Binary_Lighting_Output_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a Color object
* @param object_instance - object-instance number of the object
+6
View File
@@ -154,6 +154,12 @@ BACNET_STACK_EXPORT
void Binary_Lighting_Output_Blink_Warn_Callback_Set(
binary_lighting_output_blink_warn_callback cb);
BACNET_STACK_EXPORT
void *Binary_Lighting_Output_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Binary_Lighting_Output_Context_Set(
uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Binary_Lighting_Output_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -46,6 +46,7 @@ struct object_data {
const char *Active_Text;
const char *Inactive_Text;
const char *Description;
void *Context;
};
/* Key List for storing the object data sorted by instance number */
static OS_Keylist Object_List;
@@ -1242,6 +1243,38 @@ void Binary_Output_Write_Present_Value_Callback_Set(
Binary_Output_Write_Present_Value_Callback = cb;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Binary_Output_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Binary_Output_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a Binary Output object
* @param object_instance - object-instance number of the object
+5
View File
@@ -134,6 +134,11 @@ int Binary_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata);
BACNET_STACK_EXPORT
bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data);
BACNET_STACK_EXPORT
void *Binary_Output_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Binary_Output_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Binary_Output_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -43,6 +43,7 @@ struct object_data {
const char *Active_Text;
const char *Inactive_Text;
const char *Description;
void *Context;
#if defined(INTRINSIC_REPORTING) && (BINARY_VALUE_INTRINSIC_REPORTING)
uint32_t Time_Delay;
uint32_t Notification_Class;
@@ -1187,6 +1188,38 @@ void Binary_Value_Write_Disable(uint32_t object_instance)
}
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Binary_Value_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Binary_Value_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a Binary Value object
* @param object_instance - object-instance number of the object
+5
View File
@@ -120,6 +120,11 @@ const char *Binary_Value_Active_Text(uint32_t instance);
BACNET_STACK_EXPORT
bool Binary_Value_Active_Text_Set(uint32_t instance, const char *new_name);
BACNET_STACK_EXPORT
void *Binary_Value_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Binary_Value_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Binary_Value_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -40,6 +40,7 @@ struct object_data {
OS_Keylist Date_List;
const char *Object_Name;
const char *Description;
void *Context;
};
/* Key List for storing the object data sorted by instance number */
static OS_Keylist Object_List;
@@ -667,6 +668,38 @@ void Calendar_Write_Disable(uint32_t object_instance)
}
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Calendar_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Calendar_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* Creates a Calendar object
* @param object_instance - object-instance number of the object
+5
View File
@@ -89,6 +89,11 @@ void Calendar_Write_Enable(uint32_t instance);
BACNET_STACK_EXPORT
void Calendar_Write_Disable(uint32_t instance);
BACNET_STACK_EXPORT
void *Calendar_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Calendar_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Calendar_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -47,6 +47,7 @@ struct object_data {
uint32_t Control_Groups[CONTROL_GROUPS_MAX];
const char *Object_Name;
const char *Description;
void *Context;
};
/* Key List for storing the object data sorted by instance number */
@@ -1379,6 +1380,38 @@ void Channel_Write_Property_Internal_Callback_Set(write_property_function cb)
Write_Property_Internal_Callback = cb;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Channel_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Channel_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a new object
* @param object_instance - object-instance number of the object
+5
View File
@@ -103,6 +103,11 @@ bool Channel_Write_Member_Value(
BACNET_STACK_EXPORT
void Channel_Write_Property_Internal_Callback_Set(write_property_function cb);
BACNET_STACK_EXPORT
void *Channel_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Channel_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Channel_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -55,6 +55,7 @@ struct object_data {
BACNET_COLOR_TRANSITION Transition;
const char *Object_Name;
const char *Description;
void *Context;
};
/* Key List for storing the object data sorted by instance number */
static OS_Keylist Object_List;
@@ -1132,6 +1133,38 @@ void Color_Write_Disable(uint32_t object_instance)
}
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Color_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Color_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a Color object
* @param object_instance - object-instance number of the object
+5
View File
@@ -118,6 +118,11 @@ void Color_Write_Disable(uint32_t instance);
BACNET_STACK_EXPORT
void Color_Timer(uint32_t object_instance, uint16_t milliseconds);
BACNET_STACK_EXPORT
void *Color_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Color_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Color_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
@@ -48,6 +48,7 @@ struct object_data {
uint32_t Present_Value_Maximum;
const char *Object_Name;
const char *Description;
void *Context;
};
/* Key List for storing the object data sorted by instance number */
static OS_Keylist Object_List;
@@ -1575,6 +1576,38 @@ void Color_Temperature_Write_Disable(uint32_t object_instance)
}
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Color_Temperature_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Color_Temperature_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a Color Temperature object
* @param object_instance - object-instance number of the object
@@ -141,6 +141,11 @@ void Color_Temperature_Write_Disable(uint32_t instance);
BACNET_STACK_EXPORT
void Color_Temperature_Timer(uint32_t object_instance, uint16_t milliseconds);
BACNET_STACK_EXPORT
void *Color_Temperature_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Color_Temperature_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Color_Temperature_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -51,6 +51,7 @@ typedef struct characterstring_object {
BACNET_CHARACTER_STRING Present_Value;
const char *Object_Name;
const char *Description;
void *Context;
} CHARACTERSTRING_VALUE_DESCR;
/**
@@ -77,6 +78,38 @@ void CharacterString_Value_Property_Lists(
return;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *CharacterString_Value_Context_Get(uint32_t object_instance)
{
struct characterstring_object *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void CharacterString_Value_Context_Set(uint32_t object_instance, void *context)
{
struct characterstring_object *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a CharacterString Value object
* @param object_instance - object-instance number of the object
+12 -6
View File
@@ -24,12 +24,6 @@ BACNET_STACK_EXPORT
void CharacterString_Value_Property_Lists(
const int **pRequired, const int **pOptional, const int **pProprietary);
BACNET_STACK_EXPORT
uint32_t CharacterString_Value_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
bool CharacterString_Value_Delete(uint32_t object_instance);
BACNET_STACK_EXPORT
void CharacterString_Value_Cleanup(void);
BACNET_STACK_EXPORT
bool CharacterString_Value_Valid_Instance(uint32_t object_instance);
BACNET_STACK_EXPORT
@@ -85,6 +79,18 @@ BACNET_STACK_EXPORT
bool CharacterString_Value_Encode_Value_List(
uint32_t object_instance, BACNET_PROPERTY_VALUE *value_list);
BACNET_STACK_EXPORT
void *CharacterString_Value_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void CharacterString_Value_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t CharacterString_Value_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
bool CharacterString_Value_Delete(uint32_t object_instance);
BACNET_STACK_EXPORT
void CharacterString_Value_Cleanup(void);
BACNET_STACK_EXPORT
void CharacterString_Value_Init(void);
+33
View File
@@ -46,6 +46,7 @@ struct integer_object {
uint32_t Instance;
const char *Object_Name;
const char *Description;
void *Context;
} INTERGER_VALUE_DESCR;
/* These three arrays are used by the ReadPropertyMultiple handler */
@@ -719,6 +720,38 @@ void Integer_Value_COV_Increment_Set(uint32_t object_instance, uint32_t value)
}
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Integer_Value_Context_Get(uint32_t object_instance)
{
struct integer_object *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Integer_Value_Context_Set(uint32_t object_instance, void *context)
{
struct integer_object *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a Integer Value object
* @param object_instance - object-instance number of the object
+5 -2
View File
@@ -96,16 +96,19 @@ BACNET_STACK_EXPORT
void Integer_Value_Out_Of_Service_Set(uint32_t instance, bool oos_flag);
BACNET_STACK_EXPORT
void Integer_Value_Init(void);
void *Integer_Value_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Integer_Value_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Integer_Value_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
bool Integer_Value_Delete(uint32_t object_instance);
BACNET_STACK_EXPORT
void Integer_Value_Cleanup(void);
BACNET_STACK_EXPORT
void Integer_Value_Init(void);
#ifdef __cplusplus
}
+33
View File
@@ -33,6 +33,7 @@
#define LOAD_CONTROL_TASK_INTERVAL_MS 1000UL
struct object_data {
void *Context;
const char *Object_Name;
const char *Description;
/* indicates the current load shedding state of the object */
@@ -1664,6 +1665,38 @@ bool Load_Control_Shed_Level_Array(
return true;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Load_Control_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Load_Control_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a Load Control object
* @param object_instance - object-instance number of the object
+5
View File
@@ -110,6 +110,11 @@ bool Load_Control_Shed_Level_Array(
uint32_t array_entry,
struct shed_level_data *value);
BACNET_STACK_EXPORT
void *Load_Control_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Load_Control_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Load_Control_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -51,6 +51,7 @@ struct object_data {
BACNET_OBJECT_ID Override_Color_Reference;
const char *Object_Name;
const char *Description;
void *Context;
/* bits */
bool Blink_Warn_Enable : 1;
bool Egress_Active : 1;
@@ -3377,6 +3378,38 @@ void Lighting_Output_Write_Present_Value_Callback_Set(
Lighting_Command_Tracking_Value_Callback = cb;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Lighting_Output_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Lighting_Output_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a Color object
* @param object_instance - object-instance number of the object
+5
View File
@@ -221,6 +221,11 @@ BACNET_STACK_EXPORT
void Lighting_Output_Write_Present_Value_Callback_Set(
lighting_command_tracking_value_callback cb);
BACNET_STACK_EXPORT
void *Lighting_Output_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Lighting_Output_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Lighting_Output_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -30,6 +30,7 @@ struct object_data {
BACNET_LIFE_SAFETY_OPERATION Operation_Expected;
uint8_t Reliability;
const char *Object_Name;
void *Context;
};
/* Key List for storing the object data sorted by instance number */
static OS_Keylist Object_List;
@@ -667,6 +668,38 @@ bool Life_Safety_Point_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
return status;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Life_Safety_Point_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Life_Safety_Point_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates an object and initialize its properties to defaults
* @param object_instance - object-instance number of the object
+5
View File
@@ -81,6 +81,11 @@ int Life_Safety_Point_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata);
BACNET_STACK_EXPORT
bool Life_Safety_Point_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data);
BACNET_STACK_EXPORT
void *Life_Safety_Point_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Life_Safety_Point_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Life_Safety_Point_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -40,6 +40,7 @@ struct object_data {
uint8_t Reliability;
const char *Object_Name;
OS_Keylist Zone_Members;
void *Context;
};
/* Key List for storing the object data sorted by instance number */
static OS_Keylist Object_List;
@@ -844,6 +845,38 @@ bool Life_Safety_Zone_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
return status;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Life_Safety_Zone_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Life_Safety_Zone_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates an object and initialize its properties to defaults
* @param object_instance - object-instance number of the object
+5
View File
@@ -94,6 +94,11 @@ int Life_Safety_Zone_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata);
BACNET_STACK_EXPORT
bool Life_Safety_Zone_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data);
BACNET_STACK_EXPORT
void *Life_Safety_Zone_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Life_Safety_Zone_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Life_Safety_Zone_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -33,6 +33,7 @@ struct object_data {
/* The state text functions expect a list of C strings separated by '\0' */
const char *State_Text;
const char *Description;
void *Context;
};
/* Key List for storing the object data sorted by instance number */
static OS_Keylist Object_List;
@@ -951,6 +952,38 @@ void Multistate_Input_Write_Disable(uint32_t object_instance)
}
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Multistate_Input_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Multistate_Input_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a new object and adds it to the object list
* @param object_instance - object-instance number of the object
+5
View File
@@ -117,6 +117,11 @@ BACNET_STACK_EXPORT
const char *
Multistate_Input_State_Text(uint32_t object_instance, uint32_t state_index);
BACNET_STACK_EXPORT
void *Multistate_Input_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Multistate_Input_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Multistate_Input_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -42,6 +42,7 @@ struct object_data {
/* The state text functions expect a list of C strings separated by '\0' */
const char *State_Text;
const char *Description;
void *Context;
};
/* Key List for storing the object data sorted by instance number */
static OS_Keylist Object_List;
@@ -1245,6 +1246,38 @@ void Multistate_Output_Write_Present_Value_Callback_Set(
Multistate_Output_Write_Present_Value_Callback = cb;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Multistate_Output_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Multistate_Output_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a new object and adds it to the object list
* @param object_instance - object-instance number of the object
+5
View File
@@ -125,6 +125,11 @@ BACNET_STACK_EXPORT
bool Multistate_Output_Relinquish_Default_Set(
uint32_t object_instance, uint32_t value);
BACNET_STACK_EXPORT
void *Multistate_Output_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Multistate_Output_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Multistate_Output_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -33,6 +33,7 @@ struct object_data {
/* The state text functions expect a list of C strings separated by '\0' */
const char *State_Text;
const char *Description;
void *Context;
};
/* Key List for storing the object data sorted by instance number */
static OS_Keylist Object_List;
@@ -953,6 +954,38 @@ void Multistate_Value_Write_Disable(uint32_t object_instance)
}
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Multistate_Value_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Multistate_Value_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* @brief Creates a new object and adds it to the object list
* @param object_instance - object-instance number of the object
+5
View File
@@ -116,6 +116,11 @@ BACNET_STACK_EXPORT
bool Multistate_Value_Reliability_Set(
uint32_t object_instance, BACNET_RELIABILITY value);
BACNET_STACK_EXPORT
void *Multistate_Value_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Multistate_Value_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Multistate_Value_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -114,6 +114,7 @@ struct object_data {
float Link_Speed;
bacnet_network_port_activate_changes Activate_Changes;
bacnet_network_port_discard_changes Discard_Changes;
void *Context;
union {
struct bacnet_ipv4_port IPv4;
struct bacnet_ipv6_port IPv6;
@@ -4753,6 +4754,38 @@ void Network_Port_Cleanup(void)
#endif
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Network_Port_Context_Get(uint32_t object_instance)
{
unsigned index = 0;
index = Network_Port_Instance_To_Index(object_instance);
if (index < BACNET_NETWORK_PORTS_MAX) {
return Object_List[index].Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Network_Port_Context_Set(uint32_t object_instance, void *context)
{
unsigned index = 0;
index = Network_Port_Instance_To_Index(object_instance);
if (index < BACNET_NETWORK_PORTS_MAX) {
Object_List[index].Context = context;
}
}
/**
* Initializes the Network Port object data
*/
+5
View File
@@ -386,6 +386,11 @@ BACNET_STACK_EXPORT
bool Network_Port_Read_Range(
BACNET_READ_RANGE_DATA *pRequest, RR_PROP_INFO *pInfo);
BACNET_STACK_EXPORT
void *Network_Port_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Network_Port_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Network_Port_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -37,6 +37,7 @@ struct object_data {
const char *Description;
BACNET_NODE_TYPE Node_Type;
const char *Node_Subtype;
void *Context;
BACNET_SUBORDINATE_DATA *Subordinate_List;
BACNET_RELATIONSHIP Default_Subordinate_Relationship;
BACNET_DEVICE_OBJECT_REFERENCE Represents;
@@ -777,6 +778,38 @@ int Structured_View_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
return apdu_len;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Structured_View_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Structured_View_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* Creates a Structured View object
* @param object_instance - object-instance number of the object
@@ -113,6 +113,11 @@ BACNET_STACK_EXPORT
bool Structured_View_Represents_Set(
uint32_t object_instance, const BACNET_DEVICE_OBJECT_REFERENCE *represents);
BACNET_STACK_EXPORT
void *Structured_View_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Structured_View_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Structured_View_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
+33
View File
@@ -40,6 +40,7 @@ struct object_data {
BACNET_TIME Present_Value;
const char *Object_Name;
const char *Description;
void *Context;
};
/* Key List for storing the object data sorted by instance number */
@@ -763,6 +764,38 @@ void Time_Value_Write_Disable(uint32_t object_instance)
}
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void *Time_Value_Context_Get(uint32_t object_instance)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
return pObject->Context;
}
return NULL;
}
/**
* @brief Set the context used with a specific object instance
* @param object_instance [in] BACnet object instance number
* @param context [in] pointer to the context
*/
void Time_Value_Context_Set(uint32_t object_instance, void *context)
{
struct object_data *pObject;
pObject = Keylist_Data(Object_List, object_instance);
if (pObject) {
pObject->Context = context;
}
}
/**
* Creates a Time Value object
* @param object_instance - object-instance number of the object
+5
View File
@@ -93,6 +93,11 @@ bool Time_Value_Change_Of_Value(uint32_t instance);
BACNET_STACK_EXPORT
void Time_Value_Change_Of_Value_Clear(uint32_t instance);
BACNET_STACK_EXPORT
void *Time_Value_Context_Get(uint32_t object_instance);
BACNET_STACK_EXPORT
void Time_Value_Context_Set(uint32_t object_instance, void *context);
BACNET_STACK_EXPORT
uint32_t Time_Value_Create(uint32_t object_instance);
BACNET_STACK_EXPORT