Utilities
General Utilities.
Modules |
|
AES crypto routines | |
Device Types | |
Device Types.
|
Data Structures |
|
struct | EmberEui64 |
EUI 64-bit ID (an IEEE address).
|
|
struct | EmberIpv6Prefix |
An IPv6 Prefix structure.
|
|
struct | EmberIpv6Address |
An IPv6 Address structure.
|
|
struct | EmberKeyData |
This data structure contains the key data that is passed into various other functions.
|
|
struct | EmberVersion |
For use when declaring data that holds the Ember software version type.
|
|
struct | Ipv6Header |
A structure that holds an IPv6 header. All values are in their local byte order (as opposed to network byte order, which might be different).
|
|
struct | TlsSessionState |
Defines a TLS session state.
|
|
struct | Bytes8 |
Defines a data type of size 8 bytes.
|
|
struct | Bytes16 |
Defines a data type of size 16 bytes.
|
|
struct | CertificateAuthority |
Defines a certificate authority structure.
|
|
struct | DeviceCertificate |
Defines a device certificate structure.
|
|
struct | EventActions_s |
The static part of an event. Each event can be used with only one event queue.
|
|
struct | Event_s |
struct | EventQueue_s |
An event queue is currently a list of events ordered by execution time.
|
|
struct | EmberEventControl |
Control structure for events.
|
|
struct | EmberTaskControl |
Control structure for tasks.
|
Macros |
|
#define | EMBER_VERSION_NAME "Thread" |
If the application defined a configuration file, include it.
|
|
#define | EMBER_HEAP_SIZE 6000 |
The minimum heap size allocated for an application.
|
|
#define | EMBER_MALLOC_HEAP_SIZE_BYTES 32768 |
The default amount of heap allocated for the mbedtls malloc library, if in use.
|
|
#define | EMBER_ASSERT_SERIAL_PORT 1 |
Settings to control if and where assert information will be printed.
|
|
#define | EMBER_INDIRECT_TRANSMISSION_TIMEOUT 30 |
The maximum amount of time (in quarter seconds) that the MAC will hold a message for indirect transmission to a child.
|
|
#define | EMBER_CHILD_TABLE_SIZE 16 |
The size of the child table. This include sleepy and powered end device children, as well as router eligible end devices.
|
|
#define | EMBER_RETRY_QUEUE_SIZE 8 |
#define | EMBER_SECURITY_LEVEL 5 |
The security level used for security at the MAC and network layers. The supported values are 0 (no security) and 5 (payload is encrypted and a four-byte MIC is used for authentication).
|
|
#define | EMBER_SECURITY_TO_HOST false |
#define | EMBER_TASK_COUNT (3) |
The number of event tasks that can be tracked for the purpose of processor idling. The Thread stack requires 1, an application and associated libraries may use additional tasks, though typically no more than 3 are needed for most applications.
|
|
#define | EMBER_SLEEPY_CHILD_POLL_TIMEOUT 240 |
The number of seconds after which the parent will time an
EMBER_SLEEPY_END_DEVICE
out of its table if it has not heard a data poll from it.
|
|
#define | EMBER_END_DEVICE_POLL_TIMEOUT 240 |
The maximum amount of time that an
EMBER_END_DEVICE
can wait between polls.
|
|
#define | EMBER_MFG_RX_NCP_TO_HOST_INTERVAL 50 |
The number of packets received by an NCP before it decides to send aggregated packet information to the host when running an mfg send test.
|
|
#define | EMBER_USE_DIRECT_IP_CALLBACK false |
#define | RIP_MAX_LURKERS 0 |
#define | INT16U_MAX ((uint16_t)(~(uint16_t)0)) |
Defines the maximum value of an unsigned short data type.
|
|
#define | DEFAULT_SCAN_DURATION 5 |
Default scan duration for an energy or active scan.
|
|
#define | EMBER_COUNTER_STRINGS |
Defines the CLI enumerations for the
EmberCounterType
enum.
|
Typedefs |
|
typedef uint8_t | EmberTaskId |
typedef const struct EventActions_s | EventActions |
The static part of an event. Each event can be used with only one event queue.
|
|
typedef struct Event_s | Event |
typedef struct EventQueue_s | EventQueue |
An event queue is currently a list of events ordered by execution time.
|
|
struct { | |
EmberEventControl * control | |
void(* handler )(void) | |
} | EmberEventData |
Complete events with a control and a handler procedure.
|
Functions |
|
EmberStatus | emberSetRadioChannel (uint8_t channel) |
This function sets the channel for sending and receiving messages. For a list of available radio channels, see the technical specification for the RF communication module in your Developer Kit.
|
|
uint8_t | emberGetRadioChannel (void) |
This function gets the radio channel to which a node is set. The possible return values depend on the radio in use. For a list of available radio channels, see the technical specification for the RF communication module in your Developer Kit.
|
Miscellaneous Ember Types |
|
enum |
EmberVersionType
{
EMBER_VERSION_TYPE_INTERNAL = 0, EMBER_VERSION_TYPE_ALPHA = 1, EMBER_VERSION_TYPE_BETA = 2, EMBER_VERSION_TYPE_GA = 3, EMBER_VERSION_TYPE_SPECIAL = 4, EMBER_VERSION_TYPE_LEGACY = 5 } |
Type of Ember software version.
|
|
enum |
EmberIcmpType
{
ICMP_DESTINATION_UNREACHABLE = 1, ICMP_PACKET_TOO_BIG = 2, ICMP_TIME_EXCEEDED = 3, ICMP_PARAMETER_PROBLEM = 4, ICMP_PRIVATE_EXPERIMENTATION_0 = 100, ICMP_ECHO_REQUEST = 128, ICMP_ECHO_REPLY = 129, ICMP_ROUTER_SOLICITATION = 133, ICMP_ROUTER_ADVERTISEMENT = 134, ICMP_NEIGHBOR_SOLICITATION = 135, ICMP_NEIGHBOR_ADVERTISEMENT = 136, ICMP_RPL = 155, ICMP_DUPLICATE_ADDRESS_REQUEST = 157, ICMP_DUPLICATE_ADDRESS_CONFIRM = 158 } |
Definitions for ICMP message types.
|
|
enum |
EmberIcmpCode
{
ICMP_CODE_NO_ROUTE_TO_DESTINATION = 0, ICMP_CODE_ERROR_IN_SOURCE_ROUTING_HEADER = 7 } |
Definitions for ICMP message codes.
|
|
enum |
EmberIpv6NextHeader
{
IPV6_NEXT_HEADER_ICMP = 1, IPV6_NEXT_HEADER_TCP = 6, IPV6_NEXT_HEADER_UDP = 17, IPV6_NEXT_HEADER_IPV6 = 41, IPV6_NEXT_HEADER_ICMPV6 = 58, IPV6_NEXT_HEADER_NO_NEXT = 59, IPV6_NEXT_HEADER_MOBILITY = 137, IPV6_NEXT_HEADER_HOP_BY_HOP = 0, IPV6_NEXT_HEADER_DESTINATION = 60, IPV6_NEXT_HEADER_ROUTING = 43, IPV6_NEXT_HEADER_FRAGMENT = 44, IPV6_NEXT_HEADER_UNKNOWN = 0xFF } |
Structure to hold an IPv6 "Next Header" See
http://www.iana.org/assignments/protocol-numbers
.
|
|
typedef uint8_t | EmberStatus |
Size of EUI64 (an IEEE address) in bytes (8).
|
|
typedef uint8_t | EmberEUI64 [ EUI64_SIZE ] |
Obsolete version of EUI64 structure used by some platform-dependent applications. Use
EmberEui64
.
|
|
typedef uint16_t | EmberNodeId |
16-bit 802.15.4 network address.
|
|
typedef uint16_t | EmberPanId |
802.15.4 PAN ID.
|
|
typedef uint16_t | Buffer |
For use when declaring a Buffer.
|
|
typedef uint16_t | EmberMessageBuffer |
For use when declaring a buffer to hold a message.
|
|
typedef Buffer | PacketHeader |
For use when declaring a buffer to hold a packet header.
|
|
typedef uint16_t | ChildStatusFlags |
For use when declaring data that holds child status flags.
|
|
#define | EUI64_SIZE 8 |
Size of EUI64 (an IEEE address) in bytes (8).
|
|
#define | EMBER_ENCRYPTION_KEY_SIZE 16 |
Size of an encryption key in bytes (16).
|
|
#define | EXTENDED_PAN_ID_SIZE 8 |
Size of an extended PAN identifier in bytes (8).
|
|
#define | LEADER_SIZE EUI64_SIZE |
Size of a leader EUI64 in bytes (8).
|
|
#define | EMBER_NETWORK_ID_SIZE 16 |
Size of a network ID in bytes (16).
|
|
#define | EMBER_JOIN_KEY_MAX_SIZE 32 |
Maximum size of a device join key (PSKd) in bytes (32).
|
|
#define | __EMBERSTATUS_TYPE__ |
Return type for Ember functions.
|
|
#define | EMBER_MAX_802_15_4_CHANNEL_NUMBER 26 |
The maximum 802.15.4 channel number is 26.
|
|
#define | EMBER_MIN_802_15_4_CHANNEL_NUMBER 11 |
The minimum 802.15.4 channel number is 11.
|
|
#define | EMBER_NUM_802_15_4_CHANNELS ( EMBER_MAX_802_15_4_CHANNEL_NUMBER - EMBER_MIN_802_15_4_CHANNEL_NUMBER + 1) |
There are sixteen 802.15.4 channels.
|
|
#define | EMBER_ALL_802_15_4_CHANNELS_MASK 0x07FFF800UL |
Bitmask to scan all 802.15.4 channels.
|
|
#define | EMBER_ZIGBEE_COORDINATOR_ADDRESS 0x0000 |
The network ID of the coordinator in a ZigBee network is 0x0000.
|
|
#define | EMBER_NULL_NODE_ID 0xFFFF |
A distinguished network ID that will never be assigned to any node. Used to indicate the absence of a node ID.
|
|
#define | EMBER_VERSION_TYPE_MAX EMBER_VERSION_TYPE_LEGACY |
Size of EUI64 (an IEEE address) in bytes (8).
|
|
#define | EMBER_VERSION_TYPE_NAMES |
Size of EUI64 (an IEEE address) in bytes (8).
|
|
#define | NULL_BUFFER 0x0000 |
Denotes a null buffer.
|
|
#define | TLS_SESSION_ID_SIZE 32 |
Size of EUI64 (an IEEE address) in bytes (8).
|
|
#define | TLS_MASTER_SECRET_SIZE 48 |
Size of EUI64 (an IEEE address) in bytes (8).
|
Broadcast Addresses |
|
Broadcasts are normally sent only to routers. Broadcasts can also be forwarded to end devices, either all of them or only those that do not sleep. Broadcasting to end devices is both significantly more resource-intensive and significantly less reliable than broadcasting to routers. |
|
#define | EMBER_BROADCAST_ADDRESS 0xFFFC |
#define | EMBER_RX_ON_WHEN_IDLE_BROADCAST_ADDRESS 0xFFFD |
#define | EMBER_SLEEPY_BROADCAST_ADDRESS 0xFFFF |
txPowerModes for emberSetTxPowerMode and mfglibSetPower |
|
#define | EMBER_TX_POWER_MODE_DEFAULT 0x0000 |
The application should call
emberSetTxPowerMode()
with the txPowerMode parameter set to this value to disable all power mode options resulting in normal power mode and bi-directional RF transmitter output.
|
|
#define | EMBER_TX_POWER_MODE_BOOST 0x0001 |
The application should call
emberSetTxPowerMode()
with the txPowerMode parameter set to this value to enable boost power mode.
|
|
#define | EMBER_TX_POWER_MODE_ALTERNATE 0x0002 |
The application should call
emberSetTxPowerMode()
with the txPowerMode parameter set to this value to enable the alternate transmitter output.
|
|
#define | EMBER_TX_POWER_MODE_BOOST_AND_ALTERNATE |
The application should call
emberSetTxPowerMode()
with the txPowerMode parameter set to this value to enable both boost mode and the alternate transmitter output.
|
Generic Messages |
|
#define | EMBER_SUCCESS (x00) |
The generic "no error" message.
|
|
#define | EMBER_ERR_FATAL (x01) |
The generic "fatal error" message.
|
|
#define | EMBER_BAD_ARGUMENT (x02) |
An invalid value was passed as an argument to a function.
|
|
#define | EMBER_EEPROM_MFG_STACK_VERSION_MISMATCH (x04) |
The manufacturing and stack token format in non-volatile memory is different than what the stack expects (returned at initialization).
|
|
#define | EMBER_INCOMPATIBLE_STATIC_MEMORY_DEFINITIONS (x05) |
The static memory definitions in ember-static-memory.h are incompatible with this stack version.
|
|
#define | EMBER_EEPROM_MFG_VERSION_MISMATCH (x06) |
The manufacturing token format in non-volatile memory is different than what the stack expects (returned at initialization).
|
|
#define | EMBER_EEPROM_STACK_VERSION_MISMATCH (x07) |
The stack token format in non-volatile memory is different than what the stack expects (returned at initialization).
|
Packet Buffer Module Errors |
|
#define | EMBER_NO_BUFFERS (x18) |
There are no more buffers.
|
Serial Manager Errors |
|
#define | EMBER_SERIAL_INVALID_BAUD_RATE (x20) |
Specified an invalid baud rate.
|
|
#define | EMBER_SERIAL_INVALID_PORT (x21) |
Specified an invalid serial port.
|
|
#define | EMBER_SERIAL_TX_OVERFLOW (x22) |
Tried to send too much data.
|
|
#define | EMBER_SERIAL_RX_OVERFLOW (x23) |
There was not enough space to store a received character and the character was dropped.
|
|
#define | EMBER_SERIAL_RX_FRAME_ERROR (x24) |
Detected a UART framing error.
|
|
#define | EMBER_SERIAL_RX_PARITY_ERROR (x25) |
Detected a UART parity error.
|
|
#define | EMBER_SERIAL_RX_EMPTY (x26) |
There is no received data to process.
|
|
#define | EMBER_SERIAL_RX_OVERRUN_ERROR (x27) |
The receive interrupt was not handled in time, and a character was dropped.
|
MAC Errors |
|
#define | EMBER_MAC_TRANSMIT_QUEUE_FULL (x39) |
The MAC transmit queue is full.
|
|
#define | EMBER_MAC_UNKNOWN_HEADER_TYPE (x3A) |
MAC header FCF error on receive.
|
|
#define | EMBER_MAC_ACK_HEADER_TYPE (x3B) |
MAC ACK header received.
|
|
#define | EMBER_MAC_SCANNING (x3D) |
The MAC can't complete this task because it is scanning.
|
|
#define | EMBER_MAC_NO_DATA (x31) |
No pending data exists for device doing a data poll.
|
|
#define | EMBER_MAC_JOINED_NETWORK (x32) |
Attempt to scan when we are joined to a network.
|
|
#define | EMBER_MAC_BAD_SCAN_DURATION (x33) |
Scan duration must be 0 to 14 inclusive. Attempt was made to scan with an incorrect duration value.
|
|
#define | EMBER_MAC_INCORRECT_SCAN_TYPE (x34) |
emberStartScan was called with an incorrect scan type.
|
|
#define | EMBER_MAC_INVALID_CHANNEL_MASK (x35) |
emberStartScan was called with an invalid channel mask.
|
|
#define | EMBER_MAC_COMMAND_TRANSMIT_FAILURE (x36) |
Failed to scan current channel because we were unable to transmit the relevent MAC command.
|
|
#define | EMBER_MAC_NO_ACK_RECEIVED (x40) |
We expected to receive an ACK following the transmission, but the MAC level ACK was never received.
|
|
#define | EMBER_MAC_INDIRECT_TIMEOUT (x42) |
Indirect data message timed out before polled.
|
Simulated EEPROM Errors |
|
#define | EMBER_SIM_EEPROM_ERASE_PAGE_GREEN (x43) |
The Simulated EEPROM is telling the application that there is at least one flash page to be erased. The GREEN status means the current page has not filled above the ::ERASE_CRITICAL_THRESHOLD.
|
|
#define | EMBER_SIM_EEPROM_ERASE_PAGE_RED (x44) |
The Simulated EEPROM is telling the application that there is at least one flash page to be erased. The RED status means the current page has filled above the ::ERASE_CRITICAL_THRESHOLD.
|
|
#define | EMBER_SIM_EEPROM_FULL (x45) |
The Simulated EEPROM has run out of room to write any new data and the data trying to be set has been lost. This error code is the result of ignoring the ::SIM_EEPROM_ERASE_PAGE_RED error code.
|
|
#define | EMBER_SIM_EEPROM_INIT_1_FAILED (x48) |
Attempt 1 to initialize the Simulated EEPROM has failed.
|
|
#define | EMBER_SIM_EEPROM_INIT_2_FAILED (x49) |
Attempt 2 to initialize the Simulated EEPROM has failed.
|
|
#define | EMBER_SIM_EEPROM_INIT_3_FAILED (x4A) |
Attempt 3 to initialize the Simulated EEPROM has failed.
|
|
#define | EMBER_SIM_EEPROM_REPAIRING (x4D) |
The Simulated EEPROM is repairing itself.
|
Flash Errors |
|
#define | EMBER_ERR_FLASH_WRITE_INHIBITED (x46) |
A fatal error has occurred while trying to write data to the Flash. The target memory attempting to be programmed is already programmed. The flash write routines were asked to flip a bit from a 0 to 1, which is physically impossible and the write was therefore inhibited. The data in the flash cannot be trusted after this error.
|
|
#define | EMBER_ERR_FLASH_VERIFY_FAILED (x47) |
A fatal error has occurred while trying to write data to the Flash and the write verification has failed. The data in the flash cannot be trusted after this error, and it is possible this error is the result of exceeding the life cycles of the flash.
|
|
#define | EMBER_ERR_FLASH_PROG_FAIL (x4B) |
#define | EMBER_ERR_FLASH_ERASE_FAIL (x4C) |
Bootloader Errors |
|
#define | EMBER_ERR_BOOTLOADER_TRAP_TABLE_BAD (x58) |
The bootloader received an invalid message (failed attempt to go into bootloader).
|
|
#define | EMBER_ERR_BOOTLOADER_TRAP_UNKNOWN (x59) |
Bootloader received an invalid message (failed attempt to go into bootloader).
|
|
#define | EMBER_ERR_BOOTLOADER_NO_IMAGE (x05A) |
The bootloader cannot complete the bootload operation because either an image was not found or the image exceeded memory bounds.
|
Transport Errors |
|
#define | EMBER_DELIVERY_FAILED (x66) |
The APS layer attempted to send or deliver a message, but it failed.
|
|
#define | EMBER_BINDING_INDEX_OUT_OF_RANGE (x69) |
This binding index is out of range for the current binding table.
|
|
#define | EMBER_ADDRESS_TABLE_INDEX_OUT_OF_RANGE (x6A) |
This address table index is out of range for the current address table.
|
|
#define | EMBER_INVALID_BINDING_INDEX (x6C) |
An invalid binding table index was given to a function.
|
|
#define | EMBER_INVALID_CALL (x70) |
The API call is not allowed given the current state of the stack.
|
|
#define | EMBER_COST_NOT_KNOWN (x71) |
The link cost to a node is not known.
|
|
#define | EMBER_MAX_MESSAGE_LIMIT_REACHED (x72) |
The maximum number of in-flight messages (i.e. ::EMBER_APS_UNICAST_MESSAGE_COUNT) has been reached.
|
|
#define | EMBER_MESSAGE_TOO_LONG (x74) |
The message to be transmitted is too big to fit into a single over-the-air packet.
|
|
#define | EMBER_BINDING_IS_ACTIVE (x75) |
The application is trying to delete or overwrite a binding that is in use.
|
|
#define | EMBER_ADDRESS_TABLE_ENTRY_IS_ACTIVE (x76) |
The application is trying to overwrite an address table entry that is in use.
|
HAL Module Errors |
|
#define | EMBER_ADC_CONVERSION_DONE (x80) |
Conversion is complete.
|
|
#define | EMBER_ADC_CONVERSION_BUSY (x81) |
Conversion cannot be done because a request is being processed.
|
|
#define | EMBER_ADC_CONVERSION_DEFERRED (x82) |
Conversion is deferred until the current request has been processed.
|
|
#define | EMBER_ADC_NO_CONVERSION_PENDING (x84) |
No results are pending.
|
|
#define | EMBER_SLEEP_INTERRUPTED (x85) |
Sleeping (for a duration) has been abnormally interrupted and exited prematurely.
|
PHY Errors |
|
#define | EMBER_PHY_TX_UNDERFLOW (x88) |
The transmit hardware buffer underflowed.
|
|
#define | EMBER_PHY_TX_INCOMPLETE (x89) |
The transmit hardware did not finish transmitting a packet.
|
|
#define | EMBER_PHY_INVALID_CHANNEL (x8A) |
An unsupported channel setting was specified.
|
|
#define | EMBER_PHY_INVALID_POWER (x8B) |
An unsupported power setting was specified.
|
|
#define | EMBER_PHY_TX_BUSY (x8C) |
The requested operation cannot be completed because the radio is currently busy, either transmitting a packet or performing calibration.
|
|
#define | EMBER_PHY_TX_CCA_FAIL (x8D) |
The transmit attempt failed because all CCA attempts indicated that the channel was busy.
|
|
#define | EMBER_PHY_OSCILLATOR_CHECK_FAILED (x8E) |
The software installed on the hardware doesn't recognize the hardware radio type.
|
|
#define | EMBER_PHY_ACK_RECEIVED (x8F) |
The expected ACK was received after the last transmission.
|
Return Codes Passed to emberStackStatusHandler() |
|
#define | EMBER_NETWORK_UP (x90) |
The stack software has completed initialization and is ready to send and receive packets over the air.
|
|
#define | EMBER_NETWORK_DOWN (x91) |
The network is not operating.
|
|
#define | EMBER_JOIN_FAILED (x94) |
An attempt to join a network failed.
|
|
#define | EMBER_MOVE_FAILED (x96) |
After moving, a mobile node's attempt to re-establish contact with the network failed.
|
|
#define | EMBER_CANNOT_JOIN_AS_ROUTER (x98) |
An attempt to join as a router failed due to a ZigBee versus ZigBee Pro incompatibility. ZigBee devices joining ZigBee Pro networks (or vice versa) must join as End Devices, not Routers.
|
|
#define | EMBER_NODE_ID_CHANGED (x99) |
The local node ID has changed. The application can obtain the new node ID by calling ::emberGetNodeId().
|
|
#define | EMBER_PAN_ID_CHANGED (x9A) |
The local PAN ID has changed. The application can obtain the new PAN ID by calling
emberGetPanId()
.
|
|
#define | EMBER_CHANNEL_CHANGED (x9B) |
The channel has changed.
|
|
#define | EMBER_NO_BEACONS (xAB) |
An attempt to join or rejoin the network failed because no router beacons could be heard by the joining node.
|
|
#define | EMBER_RECEIVED_KEY_IN_THE_CLEAR (xAC) |
An attempt was made to join a Secured Network using a pre-configured key, but the Trust Center sent back a Network Key in-the-clear when an encrypted Network Key was required. (::EMBER_REQUIRE_ENCRYPTED_KEY).
|
|
#define | EMBER_NO_NETWORK_KEY_RECEIVED (xAD) |
An attempt was made to join a Secured Network, but the device did not receive a Network Key.
|
|
#define | EMBER_NO_LINK_KEY_RECEIVED (xAE) |
After a device joined a Secured Network, a Link Key was requested (::EMBER_GET_LINK_KEY_WHEN_JOINING) but no response was ever received.
|
|
#define | EMBER_PRECONFIGURED_KEY_REQUIRED (xAF) |
An attempt was made to join a Secured Network without a pre-configured key, but the Trust Center sent encrypted data using a pre-configured key.
|
Security Errors |
|
#define | EMBER_KEY_INVALID (xB2) |
The passed key data is not valid. A key of all zeros or all F's are reserved values and cannot be used.
|
|
#define | EMBER_INVALID_SECURITY_LEVEL (x95) |
The chosen security level (the value of
EMBER_SECURITY_LEVEL
) is not supported by the stack.
|
|
#define | EMBER_APS_ENCRYPTION_ERROR (xA6) |
There was an error in trying to encrypt at the APS Level.
|
|
#define | EMBER_TRUST_CENTER_MASTER_KEY_NOT_SET (xA7) |
There was an attempt to form a network using High security without setting the Trust Center master key first.
|
|
#define | EMBER_SECURITY_STATE_NOT_SET (xA8) |
There was an attempt to form or join a network with security without calling ::emberSetInitialSecurityState() first.
|
|
#define | EMBER_KEY_TABLE_INVALID_ADDRESS (xB3) |
There was an attempt to set an entry in the key table using an invalid long address. An entry cannot be set using either the local device's or Trust Center's IEEE address. Or an entry already exists in the table with the same IEEE address. An Address of all zeros or all F's are not valid addresses in 802.15.4.
|
|
#define | EMBER_SECURITY_CONFIGURATION_INVALID (xB7) |
There was an attempt to set a security configuration that is not valid given the other security settings.
|
|
#define | EMBER_TOO_SOON_FOR_SWITCH_KEY (xB8) |
There was an attempt to broadcast a key switch too quickly after broadcasting the next network key. The Trust Center must wait at least a period equal to the broadcast timeout so that all routers have a chance to receive the broadcast of the new network key.
|
|
#define | EMBER_SIGNATURE_VERIFY_FAILURE (xB9) |
The received signature corresponding to the message that was passed to the CBKE Library failed verification, it is not valid.
|
|
#define | EMBER_KEY_NOT_AUTHORIZED (xBB) |
The message could not be sent because the link key corresponding to the destination is not authorized for use in APS data messages. APS Commands (sent by the stack) are allowed. To use it for encryption of APS data messages it must be authorized using a key agreement protocol (such as CBKE).
|
|
#define | EMBER_MAC_COUNTER_ERROR (xDB) |
MAC encryption failed.
|
|
#define | EMBER_SECURITY_DATA_INVALID (xBD) |
The security data provided was not valid, or an integrity check failed.
|
Miscellaneous Network Errors |
|
#define | EMBER_NOT_JOINED (x93) |
The node has not joined a network.
|
|
#define | EMBER_NETWORK_BUSY (xA1) |
A message cannot be sent because the network is currently overloaded.
|
|
#define | EMBER_INVALID_ENDPOINT (xA3) |
The application tried to send a message using an endpoint that it has not defined.
|
|
#define | EMBER_BINDING_HAS_CHANGED (xA4) |
The application tried to use a binding that has been remotely modified and the change has not yet been reported to the application.
|
|
#define | EMBER_INSUFFICIENT_RANDOM_DATA (xA5) |
An attempt to generate random bytes failed because of insufficient random data from the radio.
|
|
#define | EMBER_ROUTE_FAILURE (xA9) |
A route could not be found.
|
|
#define | EMBER_MANY_TO_ONE_ROUTE_FAILURE (xAA) |
Miscellaneous Utility Errors |
|
#define | EMBER_STACK_AND_HARDWARE_MISMATCH (xB0) |
A critical and fatal error indicating that the version of the stack trying to run does not match with the chip it is running on. The software (stack) on the chip must be replaced with software that is compatible with the chip.
|
|
#define | EMBER_INDEX_OUT_OF_RANGE (xB1) |
An index was passed into the function that was larger than the valid range.
|
|
#define | EMBER_TABLE_FULL (xB4) |
There are no empty entries left in the table.
|
|
#define | EMBER_TABLE_ENTRY_ERASED (xB6) |
The requested table entry has been erased and contains no valid data.
|
|
#define | EMBER_LIBRARY_NOT_PRESENT (xB5) |
The requested function cannot be executed because the library that contains the necessary functionality is not present.
|
|
#define | EMBER_OPERATION_IN_PROGRESS (xBA) |
The stack accepted the command and is currently processing the request. The results will be returned via an appropriate handler.
|
|
#define | EMBER_TRUST_CENTER_EUI_HAS_CHANGED (xBC) |
The EUI of the Trust center has changed due to a successful rejoin. The device may need to perform other authentication to verify the new TC is authorized to take over.
|
Application Errors |
|
#define | EMBER_APPLICATION_ERROR_0 (xF0) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_1 (xF1) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_2 (xF2) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_3 (xF3) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_4 (xF4) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_5 (xF5) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_6 (xF6) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_7 (xF7) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_8 (xF8) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_9 (xF9) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_10 (xFA) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_11 (xFB) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_12 (xFC) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_13 (xFD) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_14 (xFE) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
|
#define | EMBER_APPLICATION_ERROR_15 (xFF) |
This error is reserved for customer application use. This will never be returned from any portion of the network stack or HAL.
|
Radio-specific Functions |
|
void | emberRadioNeedsCalibratingHandler (void) |
This function enables boost power mode and/or the alternate transmit path.
|
|
void | emberCalibrateCurrentChannel (void) |
This function calibrates the current channel. The stack will notify the application of the need for channel calibration via the
emberRadioNeedsCalibratingHandler()
callback function during
emberTick()
. This function should only be called from within the context of the
emberRadioNeedsCalibratingHandler()
callback function. Calibration can take up to 150 ms. Note, if this function is called when the radio is off, it will turn the radio on and leave it on.
|
Detailed Description
All configurations have defaults, therefore many applications may not need to do anything special. However, you can override these defaults by creating a CONFIGURATION_HEADER and within this header, defining the appropriate macro to a different size. For example, to increase the child table size from 16 (the default) to 32:
The convenience stubs provided in
hal/ember-configuration.c
can be overridden by defining the appropriate macro and providing the corresponding callback function. For example, an application with custom debug channel input must implement
emberDebugHandler()
to process it. Along with the function definition, the application should provide the following line in its CONFIGURATION_HEADER:
See
ember-configuration-defaults.h
for source code.
See
ember-types.h
for source code.
Many Thread API functions return an EmberStatus value to indicate the success or failure of the call. Return codes are one byte long. This page documents the possible status codes and their meanings.
See
error-def.h
for source code.
See also error.h for information on how the values for the return codes are built up from these definitions. The file
error-def.h
is separated from error.h because utilities will use this file to parse the return codes.
- Note
-
Do not include
error-def.h
directly. It is included by error.h inside an enum typedef, which is in turn included by ember.h.
See
stack-info.h
for source code.
Macro Definition Documentation
#define __EMBERSTATUS_TYPE__ |
#define DEFAULT_SCAN_DURATION 5 |
The value is the exponent of the number of scan periods, where a scan period is 960 symbols and a symbol is 16 microseconds. The scan lasts for ((2^duration) + 1) scan periods. The value of this duration must be less than 15. The time corresponding to the first few values is as follows: 0 = 31 msec, 1 = 46 msec, 2 = 77 msec, 3 = 138 msec, 4 = 261 msec, 5 = 507 msec, 6 = 998 msec.
#define EMBER_ADC_CONVERSION_BUSY | ( |
x81
|
) |
#define EMBER_ADC_CONVERSION_DEFERRED | ( |
x82
|
) |
#define EMBER_ADC_CONVERSION_DONE | ( |
x80
|
) |
#define EMBER_ADC_NO_CONVERSION_PENDING | ( |
x84
|
) |
#define EMBER_ADDRESS_TABLE_ENTRY_IS_ACTIVE | ( |
x76
|
) |
#define EMBER_ADDRESS_TABLE_INDEX_OUT_OF_RANGE | ( |
x6A
|
) |
#define EMBER_ALL_802_15_4_CHANNELS_MASK 0x07FFF800UL |
#define EMBER_APPLICATION_ERROR_0 | ( |
xF0
|
) |
#define EMBER_APPLICATION_ERROR_1 | ( |
xF1
|
) |
#define EMBER_APPLICATION_ERROR_10 | ( |
xFA
|
) |
#define EMBER_APPLICATION_ERROR_11 | ( |
xFB
|
) |
#define EMBER_APPLICATION_ERROR_12 | ( |
xFC
|
) |
#define EMBER_APPLICATION_ERROR_13 | ( |
xFD
|
) |
#define EMBER_APPLICATION_ERROR_14 | ( |
xFE
|
) |
#define EMBER_APPLICATION_ERROR_15 | ( |
xFF
|
) |
#define EMBER_APPLICATION_ERROR_2 | ( |
xF2
|
) |
#define EMBER_APPLICATION_ERROR_3 | ( |
xF3
|
) |
#define EMBER_APPLICATION_ERROR_4 | ( |
xF4
|
) |
#define EMBER_APPLICATION_ERROR_5 | ( |
xF5
|
) |
#define EMBER_APPLICATION_ERROR_6 | ( |
xF6
|
) |
#define EMBER_APPLICATION_ERROR_7 | ( |
xF7
|
) |
#define EMBER_APPLICATION_ERROR_8 | ( |
xF8
|
) |
#define EMBER_APPLICATION_ERROR_9 | ( |
xF9
|
) |
#define EMBER_APS_ENCRYPTION_ERROR | ( |
xA6
|
) |
This could result from either an inability to determine the long address of the recipient from the short address (no entry in the binding table) or there is no link key entry in the table associated with the destination, or there was a failure to load the correct key into the encryption core.
#define EMBER_ASSERT_SERIAL_PORT 1 |
The output can be suppressed by defining
EMBER_ASSERT_OUTPUT_DISABLED
. The serial port to which the output is sent can be changed by defining
EMBER_ASSERT_SERIAL_PORT
as the desired port.
The default is to have assert output on and sent to serial port 1.
#define EMBER_BAD_ARGUMENT | ( |
x02
|
) |
#define EMBER_BINDING_HAS_CHANGED | ( |
xA4
|
) |
#define EMBER_BINDING_INDEX_OUT_OF_RANGE | ( |
x69
|
) |
#define EMBER_BINDING_IS_ACTIVE | ( |
x75
|
) |
#define EMBER_BROADCAST_ADDRESS 0xFFFC |
Broadcast to all routers.
#define EMBER_CANNOT_JOIN_AS_ROUTER | ( |
x98
|
) |
#define EMBER_CHANNEL_CHANGED | ( |
x9B
|
) |
#define EMBER_CHILD_TABLE_SIZE 16 |
Note: We do not support greater than 32 children, so the maximum value for this configuration setting is 32.
#define EMBER_COST_NOT_KNOWN | ( |
x71
|
) |
#define EMBER_COUNTER_STRINGS |
#define EMBER_DELIVERY_FAILED | ( |
x66
|
) |
#define EMBER_EEPROM_MFG_STACK_VERSION_MISMATCH | ( |
x04
|
) |
#define EMBER_EEPROM_MFG_VERSION_MISMATCH | ( |
x06
|
) |
#define EMBER_EEPROM_STACK_VERSION_MISMATCH | ( |
x07
|
) |
#define EMBER_ENCRYPTION_KEY_SIZE 16 |
#define EMBER_END_DEVICE_POLL_TIMEOUT 240 |
The default is 240 seconds.
If no poll is heard within this time, then the parent removes the EMBER_END_DEVICE from its tables.
#define EMBER_ERR_BOOTLOADER_NO_IMAGE | ( |
x05A
|
) |
#define EMBER_ERR_BOOTLOADER_TRAP_TABLE_BAD | ( |
x58
|
) |
#define EMBER_ERR_BOOTLOADER_TRAP_UNKNOWN | ( |
x59
|
) |
#define EMBER_ERR_FATAL | ( |
x01
|
) |
#define EMBER_ERR_FLASH_ERASE_FAIL | ( |
x4C
|
) |
A fatal error has occurred while trying to erase flash, possibly due to write protection. The data in the flash cannot be trusted after this error, and it is possible this error is the result of exceeding the life cycles of the flash.
#define EMBER_ERR_FLASH_PROG_FAIL | ( |
x4B
|
) |
A fatal error has occurred while trying to write data to the flash, possibly due to write protection or an invalid address. The data in the flash cannot be trusted after this error, and it is possible this error is the result of exceeding the life cycles of the flash.
#define EMBER_ERR_FLASH_VERIFY_FAILED | ( |
x47
|
) |
Referenced by halSimEepromCallback() .
#define EMBER_ERR_FLASH_WRITE_INHIBITED | ( |
x46
|
) |
Referenced by halSimEepromCallback() .
#define EMBER_HEAP_SIZE 6000 |
#define EMBER_INCOMPATIBLE_STATIC_MEMORY_DEFINITIONS | ( |
x05
|
) |
#define EMBER_INDEX_OUT_OF_RANGE | ( |
xB1
|
) |
#define EMBER_INDIRECT_TRANSMISSION_TIMEOUT 30 |
The default is 30 quarter seconds (7.5 seconds). The maximum value is 30000 quarter seconds (125 minutes). Larger values will cause rollover confusion.
#define EMBER_INSUFFICIENT_RANDOM_DATA | ( |
xA5
|
) |
#define EMBER_INVALID_BINDING_INDEX | ( |
x6C
|
) |
#define EMBER_INVALID_CALL | ( |
x70
|
) |
#define EMBER_INVALID_ENDPOINT | ( |
xA3
|
) |
#define EMBER_INVALID_SECURITY_LEVEL | ( |
x95
|
) |
#define EMBER_JOIN_FAILED | ( |
x94
|
) |
#define EMBER_JOIN_KEY_MAX_SIZE 32 |
#define EMBER_KEY_INVALID | ( |
xB2
|
) |
#define EMBER_KEY_NOT_AUTHORIZED | ( |
xBB
|
) |
#define EMBER_KEY_TABLE_INVALID_ADDRESS | ( |
xB3
|
) |
#define EMBER_LIBRARY_NOT_PRESENT | ( |
xB5
|
) |
#define EMBER_MAC_ACK_HEADER_TYPE | ( |
x3B
|
) |
#define EMBER_MAC_BAD_SCAN_DURATION | ( |
x33
|
) |
#define EMBER_MAC_COMMAND_TRANSMIT_FAILURE | ( |
x36
|
) |
#define EMBER_MAC_COUNTER_ERROR | ( |
xDB
|
) |
#define EMBER_MAC_INCORRECT_SCAN_TYPE | ( |
x34
|
) |
#define EMBER_MAC_INDIRECT_TIMEOUT | ( |
x42
|
) |
#define EMBER_MAC_INVALID_CHANNEL_MASK | ( |
x35
|
) |
#define EMBER_MAC_JOINED_NETWORK | ( |
x32
|
) |
#define EMBER_MAC_NO_ACK_RECEIVED | ( |
x40
|
) |
#define EMBER_MAC_NO_DATA | ( |
x31
|
) |
#define EMBER_MAC_SCANNING | ( |
x3D
|
) |
#define EMBER_MAC_TRANSMIT_QUEUE_FULL | ( |
x39
|
) |
#define EMBER_MAC_UNKNOWN_HEADER_TYPE | ( |
x3A
|
) |
#define EMBER_MALLOC_HEAP_SIZE_BYTES 32768 |
#define EMBER_MANY_TO_ONE_ROUTE_FAILURE | ( |
xAA
|
) |
A ZigBee route error command frame was received indicating that a message sent to this node along a many-to-one route failed en route. The route error frame was delivered by an ad-hoc search for a functioning route.
#define EMBER_MAX_802_15_4_CHANNEL_NUMBER 26 |
#define EMBER_MAX_MESSAGE_LIMIT_REACHED | ( |
x72
|
) |
#define EMBER_MESSAGE_TOO_LONG | ( |
x74
|
) |
#define EMBER_MFG_RX_NCP_TO_HOST_INTERVAL 50 |
The default value is 50 packets.
#define EMBER_MIN_802_15_4_CHANNEL_NUMBER 11 |
#define EMBER_MOVE_FAILED | ( |
x96
|
) |
#define EMBER_NETWORK_BUSY | ( |
xA1
|
) |
#define EMBER_NETWORK_DOWN | ( |
x91
|
) |
#define EMBER_NETWORK_ID_SIZE 16 |
#define EMBER_NETWORK_UP | ( |
x90
|
) |
#define EMBER_NO_BEACONS | ( |
xAB
|
) |
#define EMBER_NO_BUFFERS | ( |
x18
|
) |
#define EMBER_NO_LINK_KEY_RECEIVED | ( |
xAE
|
) |
#define EMBER_NO_NETWORK_KEY_RECEIVED | ( |
xAD
|
) |
#define EMBER_NODE_ID_CHANGED | ( |
x99
|
) |
#define EMBER_NOT_JOINED | ( |
x93
|
) |
#define EMBER_NULL_NODE_ID 0xFFFF |
#define EMBER_NUM_802_15_4_CHANNELS ( EMBER_MAX_802_15_4_CHANNEL_NUMBER - EMBER_MIN_802_15_4_CHANNEL_NUMBER + 1) |
#define EMBER_OPERATION_IN_PROGRESS | ( |
xBA
|
) |
#define EMBER_PAN_ID_CHANGED | ( |
x9A
|
) |
#define EMBER_PHY_ACK_RECEIVED | ( |
x8F
|
) |
#define EMBER_PHY_INVALID_CHANNEL | ( |
x8A
|
) |
#define EMBER_PHY_INVALID_POWER | ( |
x8B
|
) |
#define EMBER_PHY_OSCILLATOR_CHECK_FAILED | ( |
x8E
|
) |
#define EMBER_PHY_TX_BUSY | ( |
x8C
|
) |
#define EMBER_PHY_TX_CCA_FAIL | ( |
x8D
|
) |
#define EMBER_PHY_TX_INCOMPLETE | ( |
x89
|
) |
#define EMBER_PHY_TX_UNDERFLOW | ( |
x88
|
) |
#define EMBER_PRECONFIGURED_KEY_REQUIRED | ( |
xAF
|
) |
#define EMBER_RECEIVED_KEY_IN_THE_CLEAR | ( |
xAC
|
) |
#define EMBER_RETRY_QUEUE_SIZE 8 |
#define EMBER_ROUTE_FAILURE | ( |
xA9
|
) |
#define EMBER_RX_ON_WHEN_IDLE_BROADCAST_ADDRESS 0xFFFD |
Broadcast to all non-sleepy devices.
#define EMBER_SECURITY_CONFIGURATION_INVALID | ( |
xB7
|
) |
#define EMBER_SECURITY_DATA_INVALID | ( |
xBD
|
) |
#define EMBER_SECURITY_LEVEL 5 |
#define EMBER_SECURITY_STATE_NOT_SET | ( |
xA8
|
) |
#define EMBER_SECURITY_TO_HOST false |
#define EMBER_SERIAL_INVALID_BAUD_RATE | ( |
x20
|
) |
#define EMBER_SERIAL_INVALID_PORT | ( |
x21
|
) |
#define EMBER_SERIAL_RX_EMPTY | ( |
x26
|
) |
#define EMBER_SERIAL_RX_FRAME_ERROR | ( |
x24
|
) |
#define EMBER_SERIAL_RX_OVERFLOW | ( |
x23
|
) |
#define EMBER_SERIAL_RX_OVERRUN_ERROR | ( |
x27
|
) |
#define EMBER_SERIAL_RX_PARITY_ERROR | ( |
x25
|
) |
#define EMBER_SERIAL_TX_OVERFLOW | ( |
x22
|
) |
#define EMBER_SIGNATURE_VERIFY_FAILURE | ( |
xB9
|
) |
#define EMBER_SIM_EEPROM_ERASE_PAGE_GREEN | ( |
x43
|
) |
The application should call the function halSimEepromErasePage() when it can to erase a page.
Referenced by halSimEepromCallback() .
#define EMBER_SIM_EEPROM_ERASE_PAGE_RED | ( |
x44
|
) |
Due to the shrinking availability of write space, there is a danger of data loss. The application must call the function halSimEepromErasePage() as soon as possible to erase a page.
Referenced by halSimEepromCallback() .
#define EMBER_SIM_EEPROM_FULL | ( |
x45
|
) |
The application must call the function halSimEepromErasePage() to make room for any further calls to set a token.
Referenced by halSimEepromCallback() .
#define EMBER_SIM_EEPROM_INIT_1_FAILED | ( |
x48
|
) |
This failure means the information already stored in Flash (or a lack thereof), is fatally incompatible with the token information compiled into the code image being run.
#define EMBER_SIM_EEPROM_INIT_2_FAILED | ( |
x49
|
) |
This failure means Attempt 1 failed, and the token system failed to properly reload default tokens and reset the Simulated EEPROM.
#define EMBER_SIM_EEPROM_INIT_3_FAILED | ( |
x4A
|
) |
This failure means one or both of the tokens ::TOKEN_MFG_NVDATA_VERSION or ::TOKEN_STACK_NVDATA_VERSION were incorrect and the token system failed to properly reload default tokens and reset the Simulated EEPROM.
#define EMBER_SIM_EEPROM_REPAIRING | ( |
x4D
|
) |
While there's nothing for an app to do when the SimEE is going to repair itself (SimEE has to be fully functional for the rest of the system to work), alert the application to the fact that repairing is occurring. There are debugging scenarios where an app might want to know that repairing is happening; such as monitoring frequency.
- Note
- Common situations will trigger an expected repair, such as using an erased chip or changing token definitions.
Referenced by halSimEepromCallback() .
#define EMBER_SLEEP_INTERRUPTED | ( |
x85
|
) |
#define EMBER_SLEEPY_BROADCAST_ADDRESS 0xFFFF |
Broadcast to all devices, including sleepy end devices.
#define EMBER_SLEEPY_CHILD_POLL_TIMEOUT 240 |
The default is 240 seconds. The maximum value is 2^32 - 1 (136 years).
This value is determined by the child and communicated to the parent via the MLE protocol.
#define EMBER_STACK_AND_HARDWARE_MISMATCH | ( |
xB0
|
) |
#define EMBER_SUCCESS | ( |
x00
|
) |
#define EMBER_TABLE_ENTRY_ERASED | ( |
xB6
|
) |
#define EMBER_TABLE_FULL | ( |
xB4
|
) |
#define EMBER_TASK_COUNT (3) |
#define EMBER_TOO_SOON_FOR_SWITCH_KEY | ( |
xB8
|
) |
#define EMBER_TRUST_CENTER_EUI_HAS_CHANGED | ( |
xBC
|
) |
#define EMBER_TRUST_CENTER_MASTER_KEY_NOT_SET | ( |
xA7
|
) |
#define EMBER_TX_POWER_MODE_ALTERNATE 0x0002 |
#define EMBER_TX_POWER_MODE_BOOST 0x0001 |
#define EMBER_TX_POWER_MODE_BOOST_AND_ALTERNATE |
#define EMBER_TX_POWER_MODE_DEFAULT 0x0000 |
#define EMBER_USE_DIRECT_IP_CALLBACK false |
#define EMBER_VERSION_NAME "Thread" |
The default version name for an application.
#define EMBER_VERSION_TYPE_MAX EMBER_VERSION_TYPE_LEGACY |
#define EMBER_VERSION_TYPE_NAMES |
#define EMBER_ZIGBEE_COORDINATOR_ADDRESS 0x0000 |
#define EUI64_SIZE 8 |
#define EXTENDED_PAN_ID_SIZE 8 |
#define INT16U_MAX ((uint16_t)(~(uint16_t)0)) |
#define LEADER_SIZE EUI64_SIZE |
#define NULL_BUFFER 0x0000 |
#define RIP_MAX_LURKERS 0 |
#define TLS_MASTER_SECRET_SIZE 48 |
#define TLS_SESSION_ID_SIZE 32 |
Typedef Documentation
typedef uint16_t Buffer |
typedef uint16_t ChildStatusFlags |
typedef uint8_t EmberEUI64[ EUI64_SIZE ] |
typedef { ... } EmberEventData |
An application typically creates an array of events along with their handlers. The main loop passes the array to ::emberRunEvents() to call the handlers of any events whose time has arrived.
typedef uint16_t EmberMessageBuffer |
typedef uint16_t EmberNodeId |
typedef uint16_t EmberPanId |
typedef uint8_t EmberStatus |
typedef uint8_t EmberTaskId |
brief An identifier for a task
typedef const struct EventActions_s EventActions |
typedef struct EventQueue_s EventQueue |
typedef Buffer PacketHeader |
Enumeration Type Documentation
enum EmberCounterType |
enum EmberEventUnits |
enum EmberIcmpCode |
enum EmberIcmpType |
enum EmberIpv6NextHeader |
This information is passed up to the application via the emberNetworkStatusHandler callback.
Enumerator | |
---|---|
EMBER_JOIN_FAILURE_REASON_NONE |
No failure. This indicates that the network status change occurred as part of regular network operation. |
EMBER_JOIN_FAILURE_REASON_FORM_SCAN |
The operation emberFormNetwork failed while performing an energy scan on a channel. |
EMBER_JOIN_FAILURE_REASON_ACTIVE_SCAN |
emberJoinNetwork or emberJoinCommissioned failed while performing an active scan on a channel. This indicates that discovery failed due to no network matching the network parameters being filtered on. |
EMBER_JOIN_FAILURE_REASON_COMMISSIONING |
emberJoinNetwork failed during commissioning. This usually indicates that either the commissioning step timed out or a mismatch occurred with one of the parameters passed into emberJoinNetwork . |
EMBER_JOIN_FAILURE_REASON_SECURITY |
emberJoinNetwork failed during the DTLS handshake to establish a shared key. This usually indicates that either the join key (EMBER_JOIN_KEY_OPTION) passed in this call is incorrect or some other fatal error occurred, such as a timeout. |
enum EmberNetworkScanType |
enum EmberNetworkStatus |
enum EmberVersionType |
Function Documentation
void emberCalibrateCurrentChannel | ( | void |
|
) |
Referenced by emberRadioNeedsCalibratingHandler() .
uint8_t emberGetRadioChannel | ( | void |
|
) |
- Returns
- A current radio channel.
void emberRadioNeedsCalibratingHandler | ( | void |
|
) |
Boost power mode is a high-performance radio mode which offers increased transmit power and receive sensitivity at the cost of an increase in power consumption. The alternate transmit output path allows for simplified connection to an external power amplifier via the RF_TX_ALT_P and RF_TX_ALT_N pins on the em250. emberInit() calls this function using the power mode and transmitter output settings as specified in the MFG_PHY_CONFIG token (with each bit inverted so that the default token value of 0xffff corresponds to normal power mode and bi-directional RF transmitter output). The application only needs to call emberSetTxPowerMode() to use a power mode or transmitter output setting different from that specified in the MFG_PHY_CONFIG token. After this initial call to emberSetTxPowerMode() , the stack will automatically maintain the specified power mode configuration across sleep/wake cycles.
- Note
- This function does not alter the MFG_PHY_CONFIG token. The MFG_PHY_CONFIG token must be properly configured to ensure optimal radio performance when the standalone bootloader runs in recovery mode. The MFG_PHY_CONFIG can only be set using external tools. IF YOUR PRODUCT USES BOOST MODE OR THE ALTERNATE TRANSMITTER OUTPUT AND THE STANDALONE BOOTLOADER YOU MUST SET THE PHY_CONFIG TOKEN INSTEAD OF USING THIS FUNCTION. Contact suppo for instructions to set the MFG_PHY_CONFIG token appropriately. rt@e mber. com
- Parameters
-
txPowerMode
Specifies which of the transmit power mode options are to be activated. This parameter should be set to one of the literal values described in stack/include/ember-types.h
. Any power option not specified in the txPowerMode parameter will be deactivated.
- Returns
- EMBER_SUCCESS if successful; an error code otherwise.This function returns the current configuration of boost power mode and alternate transmitter output.
- The current tx power mode.The radio calibration callback function.
The Voltage Controlled Oscillator (VCO) can drift with temperature changes. During every call to emberTick() , the stack will check to see if the VCO has drifted. If the VCO has drifted, the stack will call emberRadioNeedsCalibratingHandler() to inform the application that it should perform calibration of the current channel as soon as possible. Calibration can take up to 150 ms. The default callback function implementation provided here performs the calibration immediately. If the application wishes, it can define its own callback by defining ::EMBER_APPLICATION_HAS_CUSTOM_RADIO_CALIBRATION_CALLBACK in its CONFIGURATION_HEADER. It can then failsafe any critical processes or peripherals before calling emberCalibrateCurrentChannel() . The application must call emberCalibrateCurrentChannel() in response to this callback to maintain an expected radio performance.
This function enables boost power mode and/or the alternate transmit path.
The Voltage Controlled Oscillator (VCO) can drift with temperature changes. During every call to emberTick() , the stack will check to see if the VCO has drifted. If the VCO has drifted, the stack will call emberRadioNeedsCalibratingHandler() to inform the application that it should perform calibration of the current channel as soon as possible. Calibration can take up to 150ms. The default callback function implementation provided here performs calibration immediately. If the application wishes, it can define its own callback by defining ::EMBER_APPLICATION_HAS_CUSTOM_RADIO_CALIBRATION_CALLBACK in its CONFIGURATION_HEADER. It can then failsafe any critical processes or peripherals before calling emberCalibrateCurrentChannel() . The application must call emberCalibrateCurrentChannel() in response to this callback to maintain expected radio performance.
References emberCalibrateCurrentChannel() .
EmberStatus emberSetRadioChannel | ( | uint8_t |
channel
|
) |
Note: Care should be taken when using this API, as all devices on a network must use the same channel.
- Parameters
-
channel
A desired radio channel.
- Returns
- An EmberStatus value indicating the success or failure of the command.
Variable Documentation
EventActions * Event_s::actions |
uint16_t EmberVersion::build |
bool EmberTaskControl::busy |
uint8_t EmberEui64::bytes[ EUI64_SIZE ] |
uint8_t EmberIpv6Prefix::bytes[8] |
uint8_t EmberIpv6Address::bytes[16] |
const uint8_t* DeviceCertificate::certificate |
const uint16_t DeviceCertificate::certificateSize |
uint32_t EmberVersion::change |
uint8_t EmberKeyData::contents[ EMBER_ENCRYPTION_KEY_SIZE ] |
This is the key byte data.
uint8_t Bytes8::contents[8] |
uint8_t Bytes16::contents[16] |
EmberEventControl * control |
The control structure for the event.
EmberEventControl* { ... } control |
The control structure for the event.
uint8_t Ipv6Header::destination[16] |
uint16_t Ipv6Header::destinationPort |
Event * EventQueue_s::events |
EmberEventData * EmberTaskControl::events |
uint32_t Ipv6Header::flowLabel |
void(* EventActions_s::handler) (struct Event_s *) |
void(* { ... } handler) (void) |
The procedure to call when the event fires.
void(* handler) (void) |
The procedure to call when the event fires.
uint8_t Ipv6Header::hopLimit |
uint8_t Ipv6Header::icmpCode |
uint8_t Ipv6Header::icmpType |
uint16_t TlsSessionState::id[( TLS_SESSION_ID_SIZE +1)/2] |
uint8_t TlsSessionState::idLength |
uint8_t* Ipv6Header::ipPayload |
uint16_t Ipv6Header::ipPayloadLength |
Event * EventQueue_s::isrEvents |
uint8_t EmberVersion::major |
void(* EventActions_s::marker) (struct Event_s *) |
uint8_t TlsSessionState::master[ TLS_MASTER_SECRET_SIZE ] |
uint8_t CertificateAuthority::maxPathLength |
uint8_t EmberVersion::minor |
const uint8_t* CertificateAuthority::name |
const char* EventActions_s::name |
uint16_t CertificateAuthority::nameLength |
struct Event_s * Event_s::next |
uint32_t EmberTaskControl::nextEventTime |
uint8_t Ipv6Header::nextHeader |
uint8_t EmberVersion::patch |
const uint8_t* DeviceCertificate::privateKey |
uint8_t* CertificateAuthority::publicKey |
struct EventQueue_s * EventActions_s::queue |
bool EventQueue_s::running |
uint32_t EventQueue_s::runTime |
uint8_t Ipv6Header::source[16] |
uint16_t Ipv6Header::sourcePort |
EmberEventUnits EmberEventControl::status |
The event's status, either inactive or the units for timeToExecute.
EmberTaskId EmberEventControl::taskid |
The ID of the task this event belongs to.
uint32_t Event_s::timeToExecute |
uint32_t EmberEventControl::timeToExecute |
How long before the event fires. Units are always in milliseconds.
uint8_t Ipv6Header::trafficClass |
uint8_t* Ipv6Header::transportHeader |
uint16_t Ipv6Header::transportHeaderLength |
uint8_t* Ipv6Header::transportPayload |
uint16_t Ipv6Header::transportPayloadLength |
uint8_t Ipv6Header::transportProtocol |
EmberVersionType EmberVersion::type |