Modules#
EmberGpTranslationTableAdditionalInfoBlockOptionRecordField
Zigbee Green Power types and defines. See greenpower for documentation.
License#
Copyright 2018 Silicon Laboratories Inc. www.silabs.com
The licensor of this software is Silicon Laboratories Inc. Your use of this software is governed by the terms of Silicon Labs Master Software License Agreement (MSLA) available at www.silabs.com/about-us/legal/master-software-license-agreement. This software is distributed to you in Source Code format and is governed by the sections of the MSLA applicable to Source Code.
/***************************************************************************/
#ifndef SILABS_GP_TYPES_H
#define SILABS_GP_TYPES_H
// Mask used in the Gp Ep Incoming Message Hadler to pass bidirectional information
// Incoming GPDF has rxAfterTx bit set
#define EMBER_GP_BIDIRECTION_INFO_RX_AFTER_TX_MASK 0x01
// A tx queue is available at gp stub to hold an outgoing GPDF
#define EMBER_GP_BIDIRECTION_INFO_TX_QUEUE_AVAILABLE_MASK 0x02
typedef uint32_t EmberGpSourceId;
typedef uint32_t EmberGpSecurityFrameCounter;
typedef uint32_t EmberGpMic;
#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberGpSecurityLevel
#else
typedef uint8_t EmberGpSecurityLevel;
enum
#endif
{
EMBER_GP_SECURITY_LEVEL_NONE = 0x00,
EMBER_GP_SECURITY_LEVEL_RESERVED = 0x01,
EMBER_GP_SECURITY_LEVEL_FC_MIC = 0x02,
EMBER_GP_SECURITY_LEVEL_FC_MIC_ENCRYPTED = 0x03,
};
#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberGpKeyType
#else
typedef uint8_t EmberGpKeyType;
enum
#endif
{
EMBER_GP_SECURITY_KEY_NONE = 0x00,
EMBER_GP_SECURITY_KEY_NWK = 0x01,
EMBER_GP_SECURITY_KEY_GPD_GROUP = 0x02,
EMBER_GP_SECURITY_KEY_NWK_DERIVED = 0x03,
EMBER_GP_SECURITY_KEY_GPD_OOB = 0x04,
EMBER_GP_SECURITY_KEY_GPD_DERIVED = 0x07,
};
#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberGpApplicationId
#else
typedef uint8_t EmberGpApplicationId;
enum
#endif
{
EMBER_GP_APPLICATION_SOURCE_ID = 0x00,
EMBER_GP_APPLICATION_IEEE_ADDRESS = 0x02,
};
#define EMBER_GP_APPLICATION_ID_MASK 0x03
#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberGpProxyTableEntryStatus
#else
typedef uint8_t EmberGpProxyTableEntryStatus;
enum
#endif
{
EMBER_GP_PROXY_TABLE_ENTRY_STATUS_ACTIVE = 0x01,
EMBER_GP_PROXY_TABLE_ENTRY_STATUS_UNUSED = 0xFF,
};
#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberGpSinkTableEntryStatus
#else
typedef uint8_t EmberGpSinkTableEntryStatus;
enum
#endif
{
EMBER_GP_SINK_TABLE_ENTRY_STATUS_ACTIVE = 0x01,
EMBER_GP_SINK_TABLE_ENTRY_STATUS_UNUSED = 0xFF,
};
typedef struct {
union {
EmberEUI64 gpdIeeeAddress;
EmberGpSourceId sourceId;
} id;
EmberGpApplicationId applicationId;
uint8_t endpoint;
} EmberGpAddress;
typedef enum {
// Sink Type is Full Unicast
EMBER_GP_SINK_TYPE_FULL_UNICAST,
// Sink Type is Derived groupcast, the group Id is derived from the GpdId during commissioning.
// The sink is added to the APS group with that groupId.
EMBER_GP_SINK_TYPE_D_GROUPCAST,
// Sink type EMBER_GP_SINK_TYPE_GROUPCAST, the groupId can
// be obtained from the APS group table or from the sink table.
EMBER_GP_SINK_TYPE_GROUPCAST,
// Sink Type is Light Weight Unicast.
EMBER_GP_SINK_TYPE_LW_UNICAST,
EMBER_GP_SINK_TYPE_UNUSED = 0xFF
} EmberGpSinkType;
typedef struct {
EmberEUI64 sinkEUI;
EmberNodeId sinkNodeId;
} EmberGpSinkAddress;
typedef struct {
uint16_t groupID;
uint16_t alias;
} EmberGpSinkGroup;
typedef struct {
EmberGpSinkType type;
union {
EmberGpSinkAddress unicast;
EmberGpSinkGroup groupcast;
EmberGpSinkGroup groupList; // Entry for Sink Group List
} target;
} EmberGpSinkListEntry;
//minimum required by the spec is 2
#define GP_SINK_LIST_ENTRIES 2
typedef struct {
EmberGpProxyTableEntryStatus status;
uint32_t options;
EmberGpAddress gpd;
EmberNodeId assignedAlias;
uint8_t securityOptions;
EmberGpSecurityFrameCounter gpdSecurityFrameCounter;
EmberKeyData gpdKey;
EmberGpSinkListEntry sinkList[GP_SINK_LIST_ENTRIES];
uint8_t groupcastRadius;
uint8_t searchCounter;
} EmberGpProxyTableEntry;
typedef struct {
EmberGpSinkTableEntryStatus status;
uint16_t options;
EmberGpAddress gpd;
uint8_t deviceId;
EmberGpSinkListEntry sinkList[GP_SINK_LIST_ENTRIES];
EmberNodeId assignedAlias;
uint8_t groupcastRadius;
uint8_t securityOptions;
EmberGpSecurityFrameCounter gpdSecurityFrameCounter;
EmberKeyData gpdKey;
} EmberGpSinkTableEntry;
//typedef EmberGpProxyTableEntry EmberGpSinkTableEntry;
#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberCGpTxOption
#else
typedef uint8_t EmberCGpTxOption;
enum
#endif
{
EMBER_CGP_TX_OPTION_NONE = 0x00,
EMBER_CGP_TX_OPTION_USE_CSMA_CA = 0x01,
EMBER_CGP_TX_OPTION_USE_MAC_ACK = 0x02,
EMBER_CGP_TX_OPTION_RESERVED = 0xFC,
};
#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberCGpAddressMode
#else
typedef uint8_t EmberCGpAddressMode;
enum
#endif
{
EMBER_CGP_ADDRESS_MODE_NONE = 0x00,
EMBER_CGP_ADDRESS_MODE_RESERVED = 0x01,
EMBER_CGP_ADDRESS_MODE_SHORT = 0x02,
EMBER_CGP_ADDRESS_MODE_EXTENDED = 0x03,
};
typedef struct {
union {
EmberNodeId shortId;
EmberEUI64 extendedId;
} address;
EmberPanId panId;
EmberCGpAddressMode mode;
} EmberCGpAddress;
/*S @brief Options to use when sending a message. */
#ifdef DOXYGEN_SHOULD_SKIP_THIS
enum EmberDGpTxOption
#else
typedef uint8_t EmberDGpTxOption;
enum
#endif
{
EMBER_DGP_TX_OPTION_NONE = 0x00,
EMBER_DGP_TX_OPTION_USE_GP_TX_QUEUE = 0x01,
EMBER_DGP_TX_OPTION_USE_CSMA_CA = 0x02,
EMBER_DGP_TX_OPTION_USE_MAC_ACK = 0x04,
EMBER_DGP_TX_OPTION_FRAME_TYPE_DATA = 0x00,
EMBER_DGP_TX_OPTION_FRAME_TYPE_MAINTENANCE = 0x08,
EMBER_DGP_TX_OPTION_RESERVED = 0xE0,
};
typedef struct {
uint8_t foo;
} EmberGpProxyClusterAttributes;
typedef struct {
bool inUse;
bool useCca;
EmberGpAddress addr;
uint8_t gpdCommandId;
EmberMessageBuffer asdu;
uint8_t gpepHandle;
uint16_t queueEntryLifetimeMs;
} EmberGpTxQueueEntry;
//these defines are ugly, but there are a bunch of callbacks that take the same set of arguments
//while the design is still in flux, it makes sense to only have one place to change them
#define GP_PARAMS \
EmberStatus status, \
uint8_t gpdLink, \
uint8_t sequenceNumber, \
EmberGpAddress * addr, \
EmberGpSecurityLevel gpdfSecurityLevel, \
EmberGpKeyType gpdfSecurityKeyType, \
bool autoCommissioning, \
uint8_t bidirectionalInfo, \
uint32_t gpdSecurityFrameCounter, \
uint8_t gpdCommandId, \
uint32_t mic, \
uint8_t proxyTableIndex, \
uint8_t gpdCommandPayloadLength, \
uint8_t * gpdCommandPayload
#define GP_ARGS \
status, \
gpdLink, \
sequenceNumber, \
addr, \
gpdfSecurityLevel, \
gpdfSecurityKeyType, \
autoCommissioning, \
bidirectionalInfo, \
gpdSecurityFrameCounter, \
gpdCommandId, \
mic, \
proxyTableIndex, \
gpdCommandPayloadLength, \
gpdCommandPayload
#define GP_UNUSED_ARGS \
(void)status; \
(void)gpdLink; \
(void)sequenceNumber; \
(void)addr; \
(void)gpdfSecurityLevel; \
(void)gpdfSecurityKeyType; \
(void)autoCommissioning; \
(void)rxAfterTx; \
(void)gpdSecurityFrameCounter; \
(void)gpdCommandId; \
(void)mic; \
(void)proxyTableIndex; \
(void)gpdCommandPayloadLength; \
(void)gpdCommandPayload;
#define GP_PROXY_TABLE_OPTIONS_IN_RANGE (BIT(10))
//3 consumed by device id, options, and app info byte
#define GP_COMMISSIONING_MAX_BYTES (55 - 3)
typedef struct {
uint8_t deviceId;
uint8_t applInfoBitmap;
uint16_t manufacturerId;
uint16_t modelId;
uint8_t numberOfGpdCommands;
uint8_t gpdCommands[GP_COMMISSIONING_MAX_BYTES - 1];
uint8_t numberOfPairedEndpoints;
uint8_t pairedEndpoints[GP_COMMISSIONING_MAX_BYTES - 1];
uint8_t numberOfGpdClientCluster;
uint8_t numberOfGpdServerCluster;
uint16_t serverClusters[15];
uint16_t clientClusters[15];
} EmberGpApplicationInfo;
// GP types for the Multisensor Extn. and CAR
// Switch Information and Sensor type
typedef struct {
uint16_t attributeID;
uint8_t attributeDataType;
// careful it is "N-1", total number of octet -1 of following attrib record field
// thus is there is 0b0000 indicates that 1 octet will follows, this allow sink
// to skip octets base on AttributID
// after read AttributID the sink could go directly to next attribute if it doesn't support this one
uint8_t remainingAttributRecordLength; // on 4 bits
uint8_t reported;
uint8_t attrValuePresent;
uint8_t attrOffsetWithinReport; // demarre a 0
// TODO change "attrValue" from u32 to a pointer, as the data could be up to a string
// the field "attributeDataType" tell with format it is, among more than 55 possibilities)
// so a add a private field which just tell the length of attrValue to easier
// process it
uint32_t attrValue;
uint8_t attrValueSize;
} EmberGpAttributeRecord;
typedef struct {
// careful it is "N-1", if there is 2 attr record then nbAttrRecord=1 and not 2 !
uint8_t nbAttrRecord;
uint8_t clientServer;
uint8_t ManIdPresent;
uint8_t datapointOptions;
uint16_t clusterID;
uint16_t manufacturerID;
EmberGpAttributeRecord attrRecord;
} EmberGpDataPointDescriptor;
typedef struct {
uint8_t repId;
uint8_t reportOptions;
uint16_t timeoutPeriod;
uint8_t totalLength;
EmberGpDataPointDescriptor dataPoint;
} EmberGpReportDescriptor;
typedef struct {
uint8_t switchInfoLength;
uint8_t nbOfContacts;
uint8_t switchType;
uint8_t currentContact;
uint8_t savedContact;
}EmberGpSwitchInformation;
#define TT_NB_MAX_OPTION_RECORD (8)
typedef struct {
// button information of the Generic switch,
// tell the contact saved
uint8_t currentStatus;
// tell how to evaluate contact received, thus bitmask only depend of NbContact of this GPD
uint8_t contactBitmask;
} EmberGpGenericSwitchData;
typedef struct {
uint8_t totalLengthOfAddInfoBlock;
uint8_t optionSelector;
union {
struct {
uint8_t reportIdentifier;
uint8_t attrOffsetWithinReport;
uint16_t clusterID;
uint16_t attributeID;
uint8_t attributeDataType;
uint8_t attributeOptions; //clientServer bit0 manufacturerIdPresent bit1
uint16_t manufacturerID;
} compactAttr;
struct {
// button information of the Generic switch,
// tell the contact saved
uint8_t contactStatus;
// tell how to evaluate contact received, thus bitmask only depend of NbContact of this GPD
uint8_t contactBitmask;
} genericSwitch;
} optionData;//EmberGpTranslationTableAdditionalInfoBlockOptionRecordOptionDataField;
} EmberGpTranslationTableAdditionalInfoBlockOptionRecordField;
#define GP_GPD_SRC_ID_FOR_CAHNNEL_CONFIG 0x00000000
#define GP_GPD_SRC_ID_WILDCARD 0xFFFFFFFF
// GPD SrcID reserved values
#define GP_GPD_SRC_ID_RESERVED_0 0x00000000
#define GP_GPD_SRC_ID_RESERVED_FFFFFF9 0xFFFFFFF9
#define GP_GPD_SRC_ID_RESERVED_FFFFFFA 0xFFFFFFFA
#define GP_GPD_SRC_ID_RESERVED_FFFFFFB 0xFFFFFFFB
#define GP_GPD_SRC_ID_RESERVED_FFFFFFC 0xFFFFFFFC
#define GP_GPD_SRC_ID_RESERVED_FFFFFFD 0xFFFFFFFD
#define GP_GPD_SRC_ID_RESERVED_FFFFFFE 0xFFFFFFFE
#define GP_DERIVED_GROUP_ALIAS_NOT_USED 0xffff
#define GP_DMIN_B 32
#define GP_DMIN_U 5
#define GP_DMAX 100
EmberStatus emberDGpSend(bool action,
bool useCca,
EmberGpAddress *addr,
uint8_t gpdCommandId,
uint8_t gpdAsduLength,
uint8_t const *gpdAsdu,
uint8_t gpepHandle,
uint16_t gpTxQueueEntryLifetimeMs);
bool emberGpProxyTableProcessGpPairing(uint32_t options,
EmberGpAddress* addr,
uint8_t commMode,
uint16_t sinkNwkAddress,
uint16_t sinkGroupId,
uint16_t assignedAlias,
uint8_t* sinkIeeeAddress,
EmberKeyData *gpdKey,
uint32_t gpdSecurityFrameCounter,
uint8_t forwardingRadius);
uint8_t emberGpProxyTableLookup(EmberGpAddress *addr);
EmberStatus emberGpProxyTableGetEntry(uint8_t proxyIndex,
EmberGpProxyTableEntry *entry);
EmberStatus emberGpSinkTableGetEntry(uint8_t sinkIndex,
EmberGpSinkTableEntry *entry);
uint8_t emberGpSinkTableLookup(EmberGpAddress *addr);
void emberGpSinkTableClearAll(void);
EmberStatus emberGpSinkTableSetEntry(uint8_t sinkTableIndex,
EmberGpSinkTableEntry *entry);
uint8_t emberGpSinkTableFindOrAllocateEntry(EmberGpAddress *addr);
void emberGpSinkTableRemoveEntry(uint8_t index);
void emberGpSinkTableInit(void);
void emberGpSinkTableSetSecurityFrameCounter(uint8_t index,
uint32_t sfc);
// Tx Queue APIs
MessageBufferQueue * emberGpGetTxQueueHead(void);
void emberGpSetMaxTxQueueEntry(uint16_t maxEntries);
uint16_t emberGetGpMaxTxQListCount(void);
uint16_t emberGetGpTxQListCount(void);
EmberMessageBuffer emberGpGetTxQueueEntryFromQueue(EmberGpTxQueueEntry *txQueue,
uint8_t *data,
uint16_t *dataLength,
uint16_t allocatedDataLength);
EmberMessageBuffer emberGpAddGpTxQueueEntryWithPayload(EmberGpTxQueueEntry *txQueue,
uint8_t *data,
uint16_t dataLength);
bool emberGpRemoveFromTxQueue(EmberGpTxQueueEntry *txQueue);
void emberGpClearTxQueue(void);
#endif // SILABS_GP_TYPES_H
GP Types#
Options to use when sending a message.
Options to use when sending a message.
Options to use when sending a message.
Options to use when sending a message.
Options to use when sending a message.
Options to use when sending a message.
Options to use when sending a message.
Options to use when sending a message.
Options to use when sending a message.
Options to use when sending a message.
Options to use when sending a message.
GP proxy table entry status.
GP sink table entry status.
Options to use when sending a message.
GP sink table entry status.
Addressing modes for sending and receiving a message.
Options to use when sending a message.
Options to use when sending a message.
Macros#
Functions#
GP Types Documentation#
EMBER_GP_APPLICATION_ID_MASK#
#define EMBER_GP_APPLICATION_ID_MASKValue:
0x03
Options to use when sending a message.
96
of file stack/include/gp-types.h
GP_SINK_LIST_ENTRIES#
#define GP_SINK_LIST_ENTRIESValue:
2
Options to use when sending a message.
191
of file stack/include/gp-types.h
GP_PARAMS#
#define GP_PARAMSValue:
Options to use when sending a message.
391
of file stack/include/gp-types.h
GP_ARGS#
#define GP_ARGSValue:
Options to use when sending a message.
407
of file stack/include/gp-types.h
GP_UNUSED_ARGS#
#define GP_UNUSED_ARGSValue:
Options to use when sending a message.
423
of file stack/include/gp-types.h
GP_PROXY_TABLE_OPTIONS_IN_RANGE#
#define GP_PROXY_TABLE_OPTIONS_IN_RANGEValue:
(BIT(10))
Options to use when sending a message.
439
of file stack/include/gp-types.h
GP_COMMISSIONING_MAX_BYTES#
#define GP_COMMISSIONING_MAX_BYTESValue:
(55 - 3)
Options to use when sending a message.
442
of file stack/include/gp-types.h
TT_NB_MAX_OPTION_RECORD#
#define TT_NB_MAX_OPTION_RECORDValue:
(8)
Options to use when sending a message.
508
of file stack/include/gp-types.h
EmberGpSecurityLevel#
EmberGpSecurityLevel
Options to use when sending a message.
Enumerator | |
---|---|
EMBER_GP_SECURITY_LEVEL_NONE | None |
EMBER_GP_SECURITY_LEVEL_RESERVED | reserved |
EMBER_GP_SECURITY_LEVEL_FC_MIC | 4 Byte Frame Counter + 4 Byte MIC |
EMBER_GP_SECURITY_LEVEL_FC_MIC_ENCRYPTED | 4 Byte Frame Counter + 4 Byte MIC + encryption |
53
of file stack/include/gp-types.h
EmberGpKeyType#
EmberGpKeyType
Options to use when sending a message.
Enumerator | |
---|---|
EMBER_GP_SECURITY_KEY_NONE | None |
EMBER_GP_SECURITY_KEY_NWK | reserved |
EMBER_GP_SECURITY_KEY_GPD_GROUP | |
EMBER_GP_SECURITY_KEY_NWK_DERIVED | |
EMBER_GP_SECURITY_KEY_GPD_OOB | |
EMBER_GP_SECURITY_KEY_GPD_DERIVED |
71
of file stack/include/gp-types.h
EmberGpApplicationId#
EmberGpApplicationId
Options to use when sending a message.
Enumerator | |
---|---|
EMBER_GP_APPLICATION_SOURCE_ID | Source identifier. |
EMBER_GP_APPLICATION_IEEE_ADDRESS | IEEE address. |
89
of file stack/include/gp-types.h
EmberGpProxyTableEntryStatus#
EmberGpProxyTableEntryStatus
GP proxy table entry status.
Enumerator | |
---|---|
EMBER_GP_PROXY_TABLE_ENTRY_STATUS_ACTIVE | The GP table entry is in use for a Proxy Table Entry. |
EMBER_GP_PROXY_TABLE_ENTRY_STATUS_UNUSED | The proxy table entry is not in use. |
106
of file stack/include/gp-types.h
EmberGpSinkTableEntryStatus#
EmberGpSinkTableEntryStatus
GP sink table entry status.
Enumerator | |
---|---|
EMBER_GP_SINK_TABLE_ENTRY_STATUS_ACTIVE | The GP table entry is in use for a Sink Table Entry. |
EMBER_GP_SINK_TABLE_ENTRY_STATUS_UNUSED | The proxy table entry is not in use. |
126
of file stack/include/gp-types.h
EmberGpSinkType#
EmberGpSinkType
Options to use when sending a message.
Enumerator | |
---|---|
EMBER_GP_SINK_TYPE_FULL_UNICAST | |
EMBER_GP_SINK_TYPE_D_GROUPCAST | |
EMBER_GP_SINK_TYPE_GROUPCAST | |
EMBER_GP_SINK_TYPE_LW_UNICAST | |
EMBER_GP_SINK_TYPE_UNUSED |
155
of file stack/include/gp-types.h
EmberCGpTxOption#
EmberCGpTxOption
GP sink table entry status.
GP sink table entry status. TODO R E M O V EOptions to use when sending a message.
Enumerator | |
---|---|
EMBER_CGP_TX_OPTION_NONE | No options. |
EMBER_CGP_TX_OPTION_USE_CSMA_CA | Use CSMA/CA. |
EMBER_CGP_TX_OPTION_USE_MAC_ACK | Use MAC ACK. |
EMBER_CGP_TX_OPTION_RESERVED | Reserved. |
300
of file stack/include/gp-types.h
EmberCGpAddressMode#
EmberCGpAddressMode
Addressing modes for sending and receiving a message.
Enumerator | |
---|---|
EMBER_CGP_ADDRESS_MODE_NONE | No address (PAN identifier and address omitted). |
EMBER_CGP_ADDRESS_MODE_RESERVED | Reserved. |
EMBER_CGP_ADDRESS_MODE_SHORT | 16-bit short address. |
EMBER_CGP_ADDRESS_MODE_EXTENDED | 64-bit extended address. |
318
of file stack/include/gp-types.h
EmberDGpTxOption#
EmberDGpTxOption
Options to use when sending a message.
Enumerator | |
---|---|
EMBER_DGP_TX_OPTION_NONE | No options. |
EMBER_DGP_TX_OPTION_USE_GP_TX_QUEUE | Use gpTxQueue. |
EMBER_DGP_TX_OPTION_USE_CSMA_CA | Use CSMA/CA. |
EMBER_DGP_TX_OPTION_USE_MAC_ACK | Use MAC ACK. |
EMBER_DGP_TX_OPTION_FRAME_TYPE_DATA | Data frame. |
EMBER_DGP_TX_OPTION_FRAME_TYPE_MAINTENANCE | Maintenance frame. |
EMBER_DGP_TX_OPTION_RESERVED | Reserved. |
357
of file stack/include/gp-types.h
EmberGpSourceId#
typedef uint32_t EmberGpSourceId
32-bit source identifier.
41
of file stack/include/gp-types.h
EmberGpSecurityFrameCounter#
typedef uint32_t EmberGpSecurityFrameCounter
32-bit security frame counter
43
of file stack/include/gp-types.h
EmberGpMic#
typedef uint32_t EmberGpMic
Options to use when sending a message.
44
of file stack/include/gp-types.h
Macro Definition Documentation#
EMBER_GP_BIDIRECTION_INFO_RX_AFTER_TX_MASK#
#define EMBER_GP_BIDIRECTION_INFO_RX_AFTER_TX_MASKValue:
0x01
33
of file stack/include/gp-types.h
EMBER_GP_BIDIRECTION_INFO_TX_QUEUE_AVAILABLE_MASK#
#define EMBER_GP_BIDIRECTION_INFO_TX_QUEUE_AVAILABLE_MASKValue:
0x02
35
of file stack/include/gp-types.h
GP_GPD_SRC_ID_FOR_CAHNNEL_CONFIG#
#define GP_GPD_SRC_ID_FOR_CAHNNEL_CONFIGValue:
0x00000000
542
of file stack/include/gp-types.h
GP_GPD_SRC_ID_WILDCARD#
#define GP_GPD_SRC_ID_WILDCARDValue:
0xFFFFFFFF
543
of file stack/include/gp-types.h
GP_GPD_SRC_ID_RESERVED_0#
#define GP_GPD_SRC_ID_RESERVED_0Value:
0x00000000
546
of file stack/include/gp-types.h
GP_GPD_SRC_ID_RESERVED_FFFFFF9#
#define GP_GPD_SRC_ID_RESERVED_FFFFFF9Value:
0xFFFFFFF9
547
of file stack/include/gp-types.h
GP_GPD_SRC_ID_RESERVED_FFFFFFA#
#define GP_GPD_SRC_ID_RESERVED_FFFFFFAValue:
0xFFFFFFFA
548
of file stack/include/gp-types.h
GP_GPD_SRC_ID_RESERVED_FFFFFFB#
#define GP_GPD_SRC_ID_RESERVED_FFFFFFBValue:
0xFFFFFFFB
549
of file stack/include/gp-types.h
GP_GPD_SRC_ID_RESERVED_FFFFFFC#
#define GP_GPD_SRC_ID_RESERVED_FFFFFFCValue:
0xFFFFFFFC
550
of file stack/include/gp-types.h
GP_GPD_SRC_ID_RESERVED_FFFFFFD#
#define GP_GPD_SRC_ID_RESERVED_FFFFFFDValue:
0xFFFFFFFD
551
of file stack/include/gp-types.h
GP_GPD_SRC_ID_RESERVED_FFFFFFE#
#define GP_GPD_SRC_ID_RESERVED_FFFFFFEValue:
0xFFFFFFFE
552
of file stack/include/gp-types.h
GP_DERIVED_GROUP_ALIAS_NOT_USED#
#define GP_DERIVED_GROUP_ALIAS_NOT_USEDValue:
0xffff
554
of file stack/include/gp-types.h
Function Documentation#
emberDGpSend#
EmberStatus emberDGpSend (bool action, bool useCca, EmberGpAddress * addr, uint8_t gpdCommandId, uint8_t gpdAsduLength, uint8_t const * gpdAsdu, uint8_t gpepHandle, uint16_t gpTxQueueEntryLifetimeMs)
N/A | action | |
N/A | useCca | |
N/A | addr | |
N/A | gpdCommandId | |
N/A | gpdAsduLength | |
N/A | gpdAsdu | |
N/A | gpepHandle | |
N/A | gpTxQueueEntryLifetimeMs |
560
of file stack/include/gp-types.h
emberGpProxyTableProcessGpPairing#
bool emberGpProxyTableProcessGpPairing (uint32_t options, EmberGpAddress * addr, uint8_t commMode, uint16_t sinkNwkAddress, uint16_t sinkGroupId, uint16_t assignedAlias, uint8_t * sinkIeeeAddress, EmberKeyData * gpdKey, uint32_t gpdSecurityFrameCounter, uint8_t forwardingRadius)
N/A | options | |
N/A | addr | |
N/A | commMode | |
N/A | sinkNwkAddress | |
N/A | sinkGroupId | |
N/A | assignedAlias | |
N/A | sinkIeeeAddress | |
N/A | gpdKey | |
N/A | gpdSecurityFrameCounter | |
N/A | forwardingRadius |
569
of file stack/include/gp-types.h
emberGpProxyTableLookup#
uint8_t emberGpProxyTableLookup (EmberGpAddress * addr)
N/A | addr |
580
of file stack/include/gp-types.h
emberGpProxyTableGetEntry#
EmberStatus emberGpProxyTableGetEntry (uint8_t proxyIndex, EmberGpProxyTableEntry * entry)
N/A | proxyIndex | |
N/A | entry |
581
of file stack/include/gp-types.h
emberGpSinkTableGetEntry#
EmberStatus emberGpSinkTableGetEntry (uint8_t sinkIndex, EmberGpSinkTableEntry * entry)
N/A | sinkIndex | |
N/A | entry |
584
of file stack/include/gp-types.h
emberGpSinkTableLookup#
uint8_t emberGpSinkTableLookup (EmberGpAddress * addr)
N/A | addr |
586
of file stack/include/gp-types.h
emberGpSinkTableClearAll#
void emberGpSinkTableClearAll (void )
N/A |
587
of file stack/include/gp-types.h
emberGpSinkTableSetEntry#
EmberStatus emberGpSinkTableSetEntry (uint8_t sinkTableIndex, EmberGpSinkTableEntry * entry)
N/A | sinkTableIndex | |
N/A | entry |
589
of file stack/include/gp-types.h
emberGpSinkTableFindOrAllocateEntry#
uint8_t emberGpSinkTableFindOrAllocateEntry (EmberGpAddress * addr)
N/A | addr |
591
of file stack/include/gp-types.h
emberGpSinkTableRemoveEntry#
void emberGpSinkTableRemoveEntry (uint8_t index)
N/A | index |
592
of file stack/include/gp-types.h
emberGpSinkTableInit#
void emberGpSinkTableInit (void )
N/A |
593
of file stack/include/gp-types.h
emberGpSinkTableSetSecurityFrameCounter#
void emberGpSinkTableSetSecurityFrameCounter (uint8_t index, uint32_t sfc)
N/A | index | |
N/A | sfc |
594
of file stack/include/gp-types.h
emberGpGetTxQueueHead#
MessageBufferQueue* emberGpGetTxQueueHead (void )
N/A |
597
of file stack/include/gp-types.h
emberGpSetMaxTxQueueEntry#
void emberGpSetMaxTxQueueEntry (uint16_t maxEntries)
N/A | maxEntries |
598
of file stack/include/gp-types.h
emberGetGpMaxTxQListCount#
uint16_t emberGetGpMaxTxQListCount (void )
N/A |
599
of file stack/include/gp-types.h
emberGetGpTxQListCount#
uint16_t emberGetGpTxQListCount (void )
N/A |
600
of file stack/include/gp-types.h
emberGpGetTxQueueEntryFromQueue#
EmberMessageBuffer emberGpGetTxQueueEntryFromQueue (EmberGpTxQueueEntry * txQueue, uint8_t * data, uint16_t * dataLength, uint16_t allocatedDataLength)
N/A | txQueue | |
N/A | data | |
N/A | dataLength | |
N/A | allocatedDataLength |
601
of file stack/include/gp-types.h
emberGpAddGpTxQueueEntryWithPayload#
EmberMessageBuffer emberGpAddGpTxQueueEntryWithPayload (EmberGpTxQueueEntry * txQueue, uint8_t * data, uint16_t dataLength)
N/A | txQueue | |
N/A | data | |
N/A | dataLength |
605
of file stack/include/gp-types.h
emberGpRemoveFromTxQueue#
bool emberGpRemoveFromTxQueue (EmberGpTxQueueEntry * txQueue)
N/A | txQueue |
608
of file stack/include/gp-types.h
emberGpClearTxQueue#
void emberGpClearTxQueue (void )
N/A |
609
of file stack/include/gp-types.h