Modules#

EmberGpAddress

EmberGpSinkAddress

EmberGpSinkGroup

EmberGpSinkListEntry

EmberGpProxyTableEntry

EmberGpSinkTableEntry

EmberCGpAddress

EmberGpProxyClusterAttributes

EmberGpTxQueueEntry

EmberGpApplicationInfo

EmberGpAttributeRecord

EmberGpDataPointDescriptor

EmberGpReportDescriptor

EmberGpSwitchInformation

EmberGpGenericSwitchData

EmberGpTranslationTableAdditionalInfoBlockOptionRecordField

Green Power Data Types#

This file defines data types relevant to the Green Power implementation.

See gp-types.h for source code.

GP Types#

enum
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
}

Options to use when sending a message.

enum
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
}

Options to use when sending a message.

enum
EMBER_GP_APPLICATION_SOURCE_ID = 0x00
EMBER_GP_APPLICATION_IEEE_ADDRESS = 0x02
}

Options to use when sending a message.

enum
EMBER_GP_PROXY_TABLE_ENTRY_STATUS_ACTIVE = 0x01
EMBER_GP_PROXY_TABLE_ENTRY_STATUS_UNUSED = 0xFF
}

GP proxy table entry status.

enum
EMBER_GP_SINK_TABLE_ENTRY_STATUS_ACTIVE = 0x01
EMBER_GP_SINK_TABLE_ENTRY_STATUS_UNUSED = 0xFF
}

GP sink table entry status.

enum
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 = 0xFF
}

Options to use when sending a message.

enum
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
}

GP sink table entry status.

enum
EMBER_CGP_ADDRESS_MODE_NONE = 0x00
EMBER_CGP_ADDRESS_MODE_RESERVED = 0x01
EMBER_CGP_ADDRESS_MODE_SHORT = 0x02
EMBER_CGP_ADDRESS_MODE_EXTENDED = 0x03
}

Addressing modes for sending and receiving a message.

enum
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
}

Options to use when sending a message.

typedef uint32_t
typedef uint32_t

Options to use when sending a message.

#define
EMBER_GP_APPLICATION_ID_MASK 0x03

Options to use when sending a message.

#define
GP_SINK_LIST_ENTRIES 2

Options to use when sending a message.

#define
GP_PARAMS undefined

Options to use when sending a message.

#define
GP_ARGS undefined

Options to use when sending a message.

#define
GP_UNUSED_ARGS undefined

Options to use when sending a message.

#define
GP_PROXY_TABLE_OPTIONS_IN_RANGE (BIT(10))

Options to use when sending a message.

#define
GP_COMMISSIONING_MAX_BYTES (55 - 3)

Options to use when sending a message.

#define
TT_NB_MAX_OPTION_RECORD (8)

Options to use when sending a message.

Functions#

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)
emberGpProxyTableGetEntry(uint8_t proxyIndex, EmberGpProxyTableEntry *entry)
emberGpSinkTableGetEntry(uint8_t sinkIndex, EmberGpSinkTableEntry *entry)
uint8_t
emberGpSinkTableLookup(EmberGpAddress *addr)
emberGpSinkTableSetEntry(uint8_t sinkTableIndex, EmberGpSinkTableEntry *entry)
uint8_t
void
void
emberGpSinkTableSetSecurityFrameCounter(uint8_t index, uint32_t sfc)
void
emberGpSetMaxTxQueueEntry(uint16_t maxEntries)
emberGpGetTxQueueEntryFromQueue(EmberGpTxQueueEntry *txQueue, uint8_t *data, uint16_t *dataLength, uint16_t allocatedDataLength)
emberGpAddGpTxQueueEntryWithPayload(EmberGpTxQueueEntry *txQueue, uint8_t *data, uint16_t dataLength)
bool
emberGpRemoveFromTxQueue(EmberGpTxQueueEntry *txQueue)

Macros#

#define
EMBER_GP_BIDIRECTION_INFO_RX_AFTER_TX_MASK 0x01
#define
EMBER_GP_BIDIRECTION_INFO_TX_QUEUE_AVAILABLE_MASK 0x02
#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

GP Types Documentation#

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


Definition at line 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

Definition at line 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.


Definition at line 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.


Definition at line 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.


Definition at line 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

Definition at line 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.


Definition at line 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.


Definition at line 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.


Definition at line 357 of file stack/include/gp-types.h

EmberGpSourceId#

typedef uint32_t EmberGpSourceId

32-bit source identifier.


Definition at line 41 of file stack/include/gp-types.h

EmberGpSecurityFrameCounter#

typedef uint32_t EmberGpSecurityFrameCounter

32-bit security frame counter


Definition at line 43 of file stack/include/gp-types.h

EmberGpMic#

typedef uint32_t EmberGpMic

Options to use when sending a message.


Definition at line 44 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)
Parameters
TypeDirectionArgument NameDescription
boolN/Aaction
boolN/AuseCca
EmberGpAddress *N/Aaddr
uint8_tN/AgpdCommandId
uint8_tN/AgpdAsduLength
uint8_t const *N/AgpdAsdu
uint8_tN/AgpepHandle
uint16_tN/AgpTxQueueEntryLifetimeMs

Definition at line 557 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)
Parameters
TypeDirectionArgument NameDescription
uint32_tN/Aoptions
EmberGpAddress *N/Aaddr
uint8_tN/AcommMode
uint16_tN/AsinkNwkAddress
uint16_tN/AsinkGroupId
uint16_tN/AassignedAlias
uint8_t *N/AsinkIeeeAddress
EmberKeyData *N/AgpdKey
uint32_tN/AgpdSecurityFrameCounter
uint8_tN/AforwardingRadius

Definition at line 566 of file stack/include/gp-types.h

emberGpProxyTableLookup#

uint8_t emberGpProxyTableLookup (EmberGpAddress * addr)
Parameters
TypeDirectionArgument NameDescription
EmberGpAddress *N/Aaddr

Definition at line 577 of file stack/include/gp-types.h

emberGpProxyTableGetEntry#

EmberStatus emberGpProxyTableGetEntry (uint8_t proxyIndex, EmberGpProxyTableEntry * entry)
Parameters
TypeDirectionArgument NameDescription
uint8_tN/AproxyIndex
EmberGpProxyTableEntry *N/Aentry

Definition at line 578 of file stack/include/gp-types.h

emberGpSinkTableGetEntry#

EmberStatus emberGpSinkTableGetEntry (uint8_t sinkIndex, EmberGpSinkTableEntry * entry)
Parameters
TypeDirectionArgument NameDescription
uint8_tN/AsinkIndex
EmberGpSinkTableEntry *N/Aentry

Definition at line 581 of file stack/include/gp-types.h

emberGpSinkTableLookup#

uint8_t emberGpSinkTableLookup (EmberGpAddress * addr)
Parameters
TypeDirectionArgument NameDescription
EmberGpAddress *N/Aaddr

Definition at line 583 of file stack/include/gp-types.h

emberGpSinkTableClearAll#

void emberGpSinkTableClearAll (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

Definition at line 584 of file stack/include/gp-types.h

emberGpSinkTableSetEntry#

EmberStatus emberGpSinkTableSetEntry (uint8_t sinkTableIndex, EmberGpSinkTableEntry * entry)
Parameters
TypeDirectionArgument NameDescription
uint8_tN/AsinkTableIndex
EmberGpSinkTableEntry *N/Aentry

Definition at line 586 of file stack/include/gp-types.h

emberGpSinkTableFindOrAllocateEntry#

uint8_t emberGpSinkTableFindOrAllocateEntry (EmberGpAddress * addr)
Parameters
TypeDirectionArgument NameDescription
EmberGpAddress *N/Aaddr

Definition at line 588 of file stack/include/gp-types.h

emberGpSinkTableRemoveEntry#

void emberGpSinkTableRemoveEntry (uint8_t index)
Parameters
TypeDirectionArgument NameDescription
uint8_tN/Aindex

Definition at line 589 of file stack/include/gp-types.h

emberGpSinkTableInit#

void emberGpSinkTableInit (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

Definition at line 590 of file stack/include/gp-types.h

emberGpSinkTableSetSecurityFrameCounter#

void emberGpSinkTableSetSecurityFrameCounter (uint8_t index, uint32_t sfc)
Parameters
TypeDirectionArgument NameDescription
uint8_tN/Aindex
uint32_tN/Asfc

Definition at line 591 of file stack/include/gp-types.h

emberGpGetTxQueueHead#

MessageBufferQueue* emberGpGetTxQueueHead (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

Definition at line 594 of file stack/include/gp-types.h

emberGpSetMaxTxQueueEntry#

void emberGpSetMaxTxQueueEntry (uint16_t maxEntries)
Parameters
TypeDirectionArgument NameDescription
uint16_tN/AmaxEntries

Definition at line 595 of file stack/include/gp-types.h

emberGetGpMaxTxQListCount#

uint16_t emberGetGpMaxTxQListCount (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

Definition at line 596 of file stack/include/gp-types.h

emberGetGpTxQListCount#

uint16_t emberGetGpTxQListCount (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

Definition at line 597 of file stack/include/gp-types.h

emberGpGetTxQueueEntryFromQueue#

EmberMessageBuffer emberGpGetTxQueueEntryFromQueue (EmberGpTxQueueEntry * txQueue, uint8_t * data, uint16_t * dataLength, uint16_t allocatedDataLength)
Parameters
TypeDirectionArgument NameDescription
EmberGpTxQueueEntry *N/AtxQueue
uint8_t *N/Adata
uint16_t *N/AdataLength
uint16_tN/AallocatedDataLength

Definition at line 598 of file stack/include/gp-types.h

emberGpAddGpTxQueueEntryWithPayload#

EmberMessageBuffer emberGpAddGpTxQueueEntryWithPayload (EmberGpTxQueueEntry * txQueue, uint8_t * data, uint16_t dataLength)
Parameters
TypeDirectionArgument NameDescription
EmberGpTxQueueEntry *N/AtxQueue
uint8_t *N/Adata
uint16_tN/AdataLength

Definition at line 602 of file stack/include/gp-types.h

emberGpRemoveFromTxQueue#

bool emberGpRemoveFromTxQueue (EmberGpTxQueueEntry * txQueue)
Parameters
TypeDirectionArgument NameDescription
EmberGpTxQueueEntry *N/AtxQueue

Definition at line 605 of file stack/include/gp-types.h

emberGpClearTxQueue#

void emberGpClearTxQueue (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

Definition at line 606 of file stack/include/gp-types.h