Secure ReadProperty decoding and BACnetActionCommand (#702)
* Refactored and secured BACnetActionCommand codec into bacaction.c module for command object and added to bacapp module encode/decode with define for enabling and pseudo application tag for internal use. * Simplified bacapp_data_len() and moved into bacdcode module as bacnet_enclosed_data_len() function. * Secured ReadProperty-REQUEST and -ACK decoding. * Removed deprecated Keylist_Key() functions from usage. * Removed pseudo application datatypes from bacapp_data_decode() which only uses primitive application tag encoded values. * Defined INT_MAX when it is not already defined by compiler or libc. * Deprecated bacapp_decode_application_data_len() and bacapp_decode_context_data_len() as they are no longer used in any code in the library. * Added BACnetScale to bacapp module. Improved complex property value decoding. Refactored bacapp_decode_known_property() function. * Refactored and improved the bacapp_snprintf() function for printing EPICS. * Fixed Lighting Output WriteProperty to handle known property decoding.
This commit is contained in:
@@ -116,17 +116,18 @@ unsigned BitString_Value_Count(void)
|
||||
}
|
||||
|
||||
/**
|
||||
* We simply have 0-n object instances. Yours might be
|
||||
* more complex, and then you need to return the index
|
||||
* that correlates to the correct instance number
|
||||
*
|
||||
* @param index Object index
|
||||
*
|
||||
* @return Index in the object table.
|
||||
* @brief Determines the object instance-number for a given 0..N index
|
||||
* of objects where N is the count.
|
||||
* @param index - 0..N value
|
||||
* @return object instance-number for a valid given index, or UINT32_MAX
|
||||
*/
|
||||
uint32_t BitString_Value_Index_To_Instance(unsigned index)
|
||||
{
|
||||
return Keylist_Key(Object_List, index);
|
||||
uint32_t instance = UINT32_MAX;
|
||||
|
||||
(void)Keylist_Index_Key(Object_List, index, &instance);
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user