Price Common#
API and Callbacks for the Price Common Component.
This component provides common utility functions used by both the Price Server and Price Client components.
Modules#
sl_zigbee_af_price_common_info_t
sl_zigbee_af_scheduled_price_t
API#
Return the best matching or other index to use for inserting new data.
Sort price-related data structures.
Update durations to avoid overlapping the next event.
Determine the time until the next index becomes active.
Find valid entries in the sl_zigbee_af_price_common_info_t structure array.
Return the index of the active entry in the sl_zigbee_af_price_common_info_t array.
Return the index to the most recent entry that will become active in the future.
Macros#
API Documentation#
sl_zigbee_af_price_common_get_common_matching_or_unused_index#
uint8_t sl_zigbee_af_price_common_get_common_matching_or_unused_index (sl_zigbee_af_price_common_info_t * commonInfos, uint8_t numberOfEntries, uint32_t newIssuerEventId, uint32_t newStartTime, bool expireTimedOut)
Return the best matching or other index to use for inserting new data.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_zigbee_af_price_common_info_t * | N/A | commonInfos | An array of sl_zigbee_af_price_common_info_t structures whose data is used to find the best available index. |
uint8_t | N/A | numberOfEntries | The number of entries in the sl_zigbee_af_price_common_info_t array. |
uint32_t | N/A | newIssuerEventId | The issuerEventId of the new data. This is used to see if a match is present. |
uint32_t | N/A | newStartTime | The startTime of the new data. |
bool | N/A | expireTimedOut | Treats any timed-out entries as invalid if set to true. |
Returns
The best index - either a matching index, if found, or an invalid or timed out index.
sl_zigbee_af_price_common_sort#
void sl_zigbee_af_price_common_sort (sl_zigbee_af_price_common_info_t * commonInfos, uint8_t * dataArray, uint16_t dataArrayBlockSizeInByte, uint16_t dataArraySize)
Sort price-related data structures.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_zigbee_af_price_common_info_t * | N/A | commonInfos | The destination address to which the command should be sent. |
uint8_t * | N/A | dataArray | The source endpoint used in the transmission. |
uint16_t | N/A | dataArrayBlockSizeInByte | The source endpoint used in the transmission. |
uint16_t | N/A | dataArraySize | The source endpoint used in the transmission. |
This semi-generic sorting function can be used to sort all structures that utilizes the sl_zigbee_af_price_common_info_t data type.
sl_zigbee_af_price_common_update_duration_for_overlapping_events#
void sl_zigbee_af_price_common_update_duration_for_overlapping_events (sl_zigbee_af_price_common_info_t * commonInfos, uint8_t numberOfEntries)
Update durations to avoid overlapping the next event.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_zigbee_af_price_common_info_t * | N/A | commonInfos | An array of sl_zigbee_af_price_common_info_t structures that will be evaluated. |
uint8_t | N/A | numberOfEntries | The number of entries in the sl_zigbee_af_price_common_info_t array. |
sl_zigbee_af_price_common_seconds_until_second_index_active#
uint32_t sl_zigbee_af_price_common_seconds_until_second_index_active (sl_zigbee_af_price_common_info_t * commonInfos, uint8_t numberOfEntries)
Determine the time until the next index becomes active.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_zigbee_af_price_common_info_t * | N/A | commonInfos | An array of sl_zigbee_af_price_common_info_t structures that will be evaluated. |
uint8_t | N/A | numberOfEntries | The number of entries in the sl_zigbee_af_price_common_info_t array. |
This function assumes the commonInfos[] array is already sorted by startTime from earliest to latest.
sl_zigbee_af_price_common_find_valid_entries#
uint8_t sl_zigbee_af_price_common_find_valid_entries (uint8_t * validEntries, uint8_t numberOfEntries, sl_zigbee_af_price_common_info_t * commonInfos, uint32_t earliestStartTime, uint32_t minIssuerEventId, uint8_t numberOfCommands)
Find valid entries in the sl_zigbee_af_price_common_info_t structure array.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint8_t * | N/A | validEntries | An array of the same size as the sl_zigbee_af_price_common_info_t array that will store the valid flag for each entry (true or false). |
uint8_t | N/A | numberOfEntries | The number of entries in the validEntries array and the commonInfos array. |
sl_zigbee_af_price_common_info_t * | N/A | commonInfos | The sl_zigbee_af_price_common_info_t array that will be searched for valid entries. |
uint32_t | N/A | earliestStartTime | A minimum start time such that all valid entries have a start time greater than or equal to this value. @minIssuerEventId A minimum event ID such that all valid entries have an issuerEventId greater than or equal to this. @numberOfRequestedCommands The maximum number of valid entries to be returned. |
uint32_t | N/A | minIssuerEventId | |
uint8_t | N/A | numberOfCommands |
Returns
The number of valid commands found in the commonInfos array.
sl_zigbee_af_price_common_server_get_active_index#
uint8_t sl_zigbee_af_price_common_server_get_active_index (sl_zigbee_af_price_common_info_t * commonInfos, uint8_t numberOfEntries)
Return the index of the active entry in the sl_zigbee_af_price_common_info_t array.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_zigbee_af_price_common_info_t * | N/A | commonInfos | The sl_zigbee_af_price_common_info_t array that will be searched for an active entry. |
uint8_t | N/A | numberOfEntries | The number of entries in the commonInfo array. |
Search through array for the most recent active entry. "Issuer Event Id" has higher priority than "start time".
Returns
The index of the active entry, or 0xFF if an active entry is not found.
sl_zigbee_af_price_common_server_get_future_index#
uint8_t sl_zigbee_af_price_common_server_get_future_index (sl_zigbee_af_price_common_info_t * commonInfos, uint8_t numberOfEntries, uint32_t * secUntilFutureEvent)
Return the index to the most recent entry that will become active in the future.
Type | Direction | Argument Name | Description |
---|---|---|---|
sl_zigbee_af_price_common_info_t * | N/A | commonInfos | The sl_zigbee_af_price_common_info_t array that will be searched for the entry. @numberOfEntries The number of entries in the commonInfo array. @secUntilFutureEvent The output pointer to the number of seconds until the next active entry. |
uint8_t | N/A | numberOfEntries | |
uint32_t * | N/A | secUntilFutureEvent |
Returns
The index of the next-active entry, or 0xFF if an active entry is not found.