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
// The size of the SinkList entries in sink table in format of octet string that has a format of {<1 byte length>, <n bytes for sink groups>}
#define GP_SIZE_OF_SINK_LIST_ENTRIES_OCTET_STRING (1 + (GP_SINK_LIST_ENTRIES * (sizeof(EmberGpSinkGroup))))
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.
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.
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.
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.
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.
Macros#
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_SIZE_OF_SINK_LIST_ENTRIES_OCTET_STRING#
#define GP_SIZE_OF_SINK_LIST_ENTRIES_OCTET_STRINGValue:
(1 + (GP_SINK_LIST_ENTRIES * (sizeof(EmberGpSinkGroup))))
Options to use when sending a message.
194
of file stack/include/gp-types.h
GP_PARAMS#
#define GP_PARAMSValue:
Options to use when sending a message.
394
of file stack/include/gp-types.h
GP_ARGS#
#define GP_ARGSValue:
Options to use when sending a message.
410
of file stack/include/gp-types.h
GP_UNUSED_ARGS#
#define GP_UNUSED_ARGSValue:
Options to use when sending a message.
426
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.
442
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.
445
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.
511
of file stack/include/gp-types.h
GP_GPD_SRC_ID_FOR_CAHNNEL_CONFIG#
#define GP_GPD_SRC_ID_FOR_CAHNNEL_CONFIGValue:
0x00000000
Options to use when sending a message.
545
of file stack/include/gp-types.h
GP_GPD_SRC_ID_WILDCARD#
#define GP_GPD_SRC_ID_WILDCARDValue:
0xFFFFFFFF
Options to use when sending a message.
546
of file stack/include/gp-types.h
GP_GPD_SRC_ID_RESERVED_0#
#define GP_GPD_SRC_ID_RESERVED_0Value:
0x00000000
Options to use when sending a message.
549
of file stack/include/gp-types.h
GP_GPD_SRC_ID_RESERVED_FFFFFF9#
#define GP_GPD_SRC_ID_RESERVED_FFFFFF9Value:
0xFFFFFFF9
Options to use when sending a message.
550
of file stack/include/gp-types.h
GP_GPD_SRC_ID_RESERVED_FFFFFFA#
#define GP_GPD_SRC_ID_RESERVED_FFFFFFAValue:
0xFFFFFFFA
Options to use when sending a message.
551
of file stack/include/gp-types.h
GP_GPD_SRC_ID_RESERVED_FFFFFFB#
#define GP_GPD_SRC_ID_RESERVED_FFFFFFBValue:
0xFFFFFFFB
Options to use when sending a message.
552
of file stack/include/gp-types.h
GP_GPD_SRC_ID_RESERVED_FFFFFFC#
#define GP_GPD_SRC_ID_RESERVED_FFFFFFCValue:
0xFFFFFFFC
Options to use when sending a message.
553
of file stack/include/gp-types.h
GP_GPD_SRC_ID_RESERVED_FFFFFFD#
#define GP_GPD_SRC_ID_RESERVED_FFFFFFDValue:
0xFFFFFFFD
Options to use when sending a message.
554
of file stack/include/gp-types.h
GP_GPD_SRC_ID_RESERVED_FFFFFFE#
#define GP_GPD_SRC_ID_RESERVED_FFFFFFEValue:
0xFFFFFFFE
Options to use when sending a message.
555
of file stack/include/gp-types.h
GP_DERIVED_GROUP_ALIAS_NOT_USED#
#define GP_DERIVED_GROUP_ALIAS_NOT_USEDValue:
0xffff
Options to use when sending a message.
557
of file stack/include/gp-types.h
GP_DMIN_B#
#define GP_DMIN_BValue:
32
Options to use when sending a message.
559
of file stack/include/gp-types.h
GP_DMIN_U#
#define GP_DMIN_UValue:
5
Options to use when sending a message.
560
of file stack/include/gp-types.h
GP_DMAX#
#define GP_DMAXValue:
100
Options to use when sending a message.
561
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 |
48
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 |
66
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. |
84
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. |
101
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. |
121
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 E
Options 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. |
298
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. |
316
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. |
355
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
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)
Options to use when sending a message.
N/A | action | |
N/A | useCca | |
N/A | addr | |
N/A | gpdCommandId | |
N/A | gpdAsduLength | |
N/A | gpdAsdu | |
N/A | gpepHandle | |
N/A | gpTxQueueEntryLifetimeMs |
563
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)
Options to use when sending a message.
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 |
572
of file stack/include/gp-types.h
emberGpProxyTableLookup#
uint8_t emberGpProxyTableLookup (EmberGpAddress * addr)
Options to use when sending a message.
N/A | addr |
583
of file stack/include/gp-types.h
emberGpProxyTableGetEntry#
EmberStatus emberGpProxyTableGetEntry (uint8_t proxyIndex, EmberGpProxyTableEntry * entry)
Options to use when sending a message.
N/A | proxyIndex | |
N/A | entry |
584
of file stack/include/gp-types.h
emberGpSinkTableGetEntry#
EmberStatus emberGpSinkTableGetEntry (uint8_t sinkIndex, EmberGpSinkTableEntry * entry)
Options to use when sending a message.
N/A | sinkIndex | |
N/A | entry |
587
of file stack/include/gp-types.h
emberGpSinkTableLookup#
uint8_t emberGpSinkTableLookup (EmberGpAddress * addr)
Options to use when sending a message.
N/A | addr |
589
of file stack/include/gp-types.h
emberGpSinkTableClearAll#
void emberGpSinkTableClearAll (void )
Options to use when sending a message.
N/A |
590
of file stack/include/gp-types.h
emberGpSinkTableSetEntry#
EmberStatus emberGpSinkTableSetEntry (uint8_t sinkTableIndex, EmberGpSinkTableEntry * entry)
Options to use when sending a message.
N/A | sinkTableIndex | |
N/A | entry |
592
of file stack/include/gp-types.h
emberGpSinkTableFindOrAllocateEntry#
uint8_t emberGpSinkTableFindOrAllocateEntry (EmberGpAddress * addr)
Options to use when sending a message.
N/A | addr |
594
of file stack/include/gp-types.h
emberGpSinkTableRemoveEntry#
void emberGpSinkTableRemoveEntry (uint8_t index)
Options to use when sending a message.
N/A | index |
595
of file stack/include/gp-types.h
emberGpSinkTableInit#
void emberGpSinkTableInit (void )
Options to use when sending a message.
N/A |
596
of file stack/include/gp-types.h
emberGpSinkTableSetSecurityFrameCounter#
void emberGpSinkTableSetSecurityFrameCounter (uint8_t index, uint32_t sfc)
Options to use when sending a message.
N/A | index | |
N/A | sfc |
597
of file stack/include/gp-types.h
emberGpGetTxQueueHead#
MessageBufferQueue * emberGpGetTxQueueHead (void )
Options to use when sending a message.
N/A |
600
of file stack/include/gp-types.h
emberGpSetMaxTxQueueEntry#
void emberGpSetMaxTxQueueEntry (uint16_t maxEntries)
Options to use when sending a message.
N/A | maxEntries |
601
of file stack/include/gp-types.h
emberGetGpMaxTxQListCount#
uint16_t emberGetGpMaxTxQListCount (void )
Options to use when sending a message.
N/A |
602
of file stack/include/gp-types.h
emberGetGpTxQListCount#
uint16_t emberGetGpTxQListCount (void )
Options to use when sending a message.
N/A |
603
of file stack/include/gp-types.h
emberGpGetTxQueueEntryFromQueue#
EmberMessageBuffer emberGpGetTxQueueEntryFromQueue (EmberGpTxQueueEntry * txQueue, uint8_t * data, uint16_t * dataLength, uint16_t allocatedDataLength)
Options to use when sending a message.
N/A | txQueue | |
N/A | data | |
N/A | dataLength | |
N/A | allocatedDataLength |
604
of file stack/include/gp-types.h
emberGpAddGpTxQueueEntryWithPayload#
EmberMessageBuffer emberGpAddGpTxQueueEntryWithPayload (EmberGpTxQueueEntry * txQueue, uint8_t * data, uint16_t dataLength)
Options to use when sending a message.
N/A | txQueue | |
N/A | data | |
N/A | dataLength |
608
of file stack/include/gp-types.h
emberGpRemoveFromTxQueue#
bool emberGpRemoveFromTxQueue (EmberGpTxQueueEntry * txQueue)
Options to use when sending a message.
N/A | txQueue |
611
of file stack/include/gp-types.h
emberGpClearTxQueue#
void emberGpClearTxQueue (void )
Options to use when sending a message.
N/A |
612
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