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.
N/A | commonInfos | An array of sl_zigbee_af_price_common_info_t structures whose data is used to find the best available index. |
N/A | numberOfEntries | The number of entries in the sl_zigbee_af_price_common_info_t array. |
N/A | newIssuerEventId | The issuerEventId of the new data. This is used to see if a match is present. |
N/A | newStartTime | The startTime of the new data. |
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.
113
of file app/framework/plugin/price-common/price-common.h
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.
N/A | commonInfos | The destination address to which the command should be sent. |
N/A | dataArray | The source endpoint used in the transmission. |
N/A | dataArrayBlockSizeInByte | The source endpoint used in the transmission. |
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.
131
of file app/framework/plugin/price-common/price-common.h
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.
N/A | commonInfos | An array of sl_zigbee_af_price_common_info_t structures that will be evaluated. |
N/A | numberOfEntries | The number of entries in the sl_zigbee_af_price_common_info_t array. |
143
of file app/framework/plugin/price-common/price-common.h
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.
N/A | commonInfos | An array of sl_zigbee_af_price_common_info_t structures that will be evaluated. |
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.
155
of file app/framework/plugin/price-common/price-common.h
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.
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). |
N/A | numberOfEntries | The number of entries in the validEntries array and the commonInfos array. |
N/A | commonInfos | The sl_zigbee_af_price_common_info_t array that will be searched for valid entries. |
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. |
N/A | minIssuerEventId | |
N/A | numberOfCommands |
Returns
The number of valid commands found in the commonInfos array.
173
of file app/framework/plugin/price-common/price-common.h
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.
N/A | commonInfos | The sl_zigbee_af_price_common_info_t array that will be searched for an active entry. |
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.
191
of file app/framework/plugin/price-common/price-common.h
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.
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. |
N/A | numberOfEntries | |
N/A | secUntilFutureEvent |
Returns
The index of the next-active entry, or 0xFF if an active entry is not found.
205
of file app/framework/plugin/price-common/price-common.h
Macro Definition Documentation#
SL_ZIGBEE_ZCL_PRICE_CLUSTER_SERVER_ENDPOINT_COUNT#
#define SL_ZIGBEE_ZCL_PRICE_CLUSTER_SERVER_ENDPOINT_COUNTValue:
(1)
39
of file app/framework/plugin/price-common/price-common.h
EVENT_ID_UNSPECIFIED#
#define EVENT_ID_UNSPECIFIEDValue:
(0xFFFFFFFFUL)
42
of file app/framework/plugin/price-common/price-common.h
TARIFF_TYPE_UNSPECIFIED#
#define TARIFF_TYPE_UNSPECIFIEDValue:
(0xFFu)
43
of file app/framework/plugin/price-common/price-common.h
ZCL_PRICE_CLUSTER_PRICE_ACKNOWLEDGEMENT_MASK#
#define ZCL_PRICE_CLUSTER_PRICE_ACKNOWLEDGEMENT_MASKValue:
(0x01u)
44
of file app/framework/plugin/price-common/price-common.h
ZCL_PRICE_CLUSTER_RESERVED_MASK#
#define ZCL_PRICE_CLUSTER_RESERVED_MASKValue:
(0xFEu)
45
of file app/framework/plugin/price-common/price-common.h
ZCL_PRICE_CLUSTER_DURATION16_UNTIL_CHANGED#
#define ZCL_PRICE_CLUSTER_DURATION16_UNTIL_CHANGEDValue:
(0xFFFFu)
46
of file app/framework/plugin/price-common/price-common.h
ZCL_PRICE_CLUSTER_DURATION_SEC_UNTIL_CHANGED#
#define ZCL_PRICE_CLUSTER_DURATION_SEC_UNTIL_CHANGEDValue:
(0xFFFFFFFFUL)
47
of file app/framework/plugin/price-common/price-common.h
ZCL_PRICE_CLUSTER_END_TIME_NEVER#
#define ZCL_PRICE_CLUSTER_END_TIME_NEVERValue:
(0xFFFFFFFFUL)
48
of file app/framework/plugin/price-common/price-common.h
ZCL_PRICE_CLUSTER_NUMBER_OF_EVENTS_ALL#
#define ZCL_PRICE_CLUSTER_NUMBER_OF_EVENTS_ALLValue:
(0x00u)
49
of file app/framework/plugin/price-common/price-common.h
ZCL_PRICE_CLUSTER_START_TIME_NOW#
#define ZCL_PRICE_CLUSTER_START_TIME_NOWValue:
(0x00000000UL)
50
of file app/framework/plugin/price-common/price-common.h
ZCL_PRICE_CLUSTER_WILDCARD_ISSUER_ID#
#define ZCL_PRICE_CLUSTER_WILDCARD_ISSUER_IDValue:
(0xFFFFFFFFUL)
51
of file app/framework/plugin/price-common/price-common.h
ZCL_PRICE_INVALID_ENDPOINT_INDEX#
#define ZCL_PRICE_INVALID_ENDPOINT_INDEXValue:
(0xFFu)
52
of file app/framework/plugin/price-common/price-common.h
ZCL_PRICE_INVALID_INDEX#
#define ZCL_PRICE_INVALID_INDEXValue:
(0xFFu)
53
of file app/framework/plugin/price-common/price-common.h
ZCL_PRICE_CLUSTER_DURATION_UNTIL_CHANGED#
#define ZCL_PRICE_CLUSTER_DURATION_UNTIL_CHANGEDValue:
(0xFFFFu)
54
of file app/framework/plugin/price-common/price-common.h