UNPKG

zigbee-herdsman

Version:

An open source ZigBee gateway solution with node.js.

1,088 lines (1,060 loc) 42.9 kB
/** EZSP Frame IDs */ export enum EzspFrameID { // Configuration Frames VERSION = 0x0000, GET_CONFIGURATION_VALUE = 0x0052, SET_CONFIGURATION_VALUE = 0x0053, READ_ATTRIBUTE = 0x0108, WRITE_ATTRIBUTE = 0x0109, ADD_ENDPOINT = 0x0002, SET_POLICY = 0x0055, GET_POLICY = 0x0056, SEND_PAN_ID_UPDATE = 0x0057, GET_VALUE = 0x00aa, GET_EXTENDED_VALUE = 0x0003, SET_VALUE = 0x00ab, SET_PASSIVE_ACK_CONFIG = 0x0105, /** v14+ */ SET_PENDING_NETWORK_UPDATE_PAN_ID = 0x011e, /** v14+ */ GET_ENDPOINT = 0x012e, /** v14+ */ GET_ENDPOINT_COUNT = 0x012f, /** v14+ */ GET_ENDPOINT_DESCRIPTION = 0x0130, /** v14+ */ GET_ENDPOINT_CLUSTER = 0x0131, // Utilities Frames NOP = 0x0005, ECHO = 0x0081, INVALID_COMMAND = 0x0058, CALLBACK = 0x0006, NO_CALLBACKS = 0x0007, SET_TOKEN = 0x0009, GET_TOKEN = 0x000a, GET_MFG_TOKEN = 0x000b, SET_MFG_TOKEN = 0x000c, STACK_TOKEN_CHANGED_HANDLER = 0x000d, GET_RANDOM_NUMBER = 0x0049, SET_TIMER = 0x000e, GET_TIMER = 0x004e, TIMER_HANDLER = 0x000f, DEBUG_WRITE = 0x0012, READ_AND_CLEAR_COUNTERS = 0x0065, READ_COUNTERS = 0x00f1, COUNTER_ROLLOVER_HANDLER = 0x00f2, DELAY_TEST = 0x009d, GET_LIBRARY_STATUS = 0x0001, GET_XNCP_INFO = 0x0013, CUSTOM_FRAME = 0x0047, CUSTOM_FRAME_HANDLER = 0x0054, GET_EUI64 = 0x0026, GET_NODE_ID = 0x0027, GET_PHY_INTERFACE_COUNT = 0x00fc, GET_TRUE_RANDOM_ENTROPY_SOURCE = 0x004f, /** v14+ */ SETUP_DELAYED_JOIN = 0x003a, /** v14+ */ RADIO_GET_SCHEDULER_PRIORITIES = 0x012a, /** v14+ */ RADIO_SET_SCHEDULER_PRIORITIES = 0x012b, /** v14+ */ RADIO_GET_SCHEDULER_SLIPTIME = 0x012c, /** v14+ */ RADIO_SET_SCHEDULER_SLIPTIME = 0x012d, /** v14+ */ COUNTER_REQUIRES_PHY_INDEX = 0x0132, /** v14+ */ COUNTER_REQUIRES_DESTINATION_NODE_ID = 0x0133, // Networking Frames SET_MANUFACTURER_CODE = 0x0015, /** v14+ */ GET_MANUFACTURER_CODE = 0x00ca, SET_POWER_DESCRIPTOR = 0x0016, NETWORK_INIT = 0x0017, NETWORK_STATE = 0x0018, STACK_STATUS_HANDLER = 0x0019, START_SCAN = 0x001a, ENERGY_SCAN_RESULT_HANDLER = 0x0048, NETWORK_FOUND_HANDLER = 0x001b, SCAN_COMPLETE_HANDLER = 0x001c, UNUSED_PAN_ID_FOUND_HANDLER = 0x00d2, FIND_UNUSED_PAN_ID = 0x00d3, STOP_SCAN = 0x001d, FORM_NETWORK = 0x001e, JOIN_NETWORK = 0x001f, JOIN_NETWORK_DIRECTLY = 0x003b, LEAVE_NETWORK = 0x0020, FIND_AND_REJOIN_NETWORK = 0x0021, PERMIT_JOINING = 0x0022, CHILD_JOIN_HANDLER = 0x0023, ENERGY_SCAN_REQUEST = 0x009c, GET_NETWORK_PARAMETERS = 0x0028, GET_RADIO_PARAMETERS = 0x00fd, GET_PARENT_CHILD_PARAMETERS = 0x0029, /** v14+ */ ROUTER_CHILD_COUNT = 0x013b, /** v14+ */ MAX_CHILD_COUNT = 0x013c, /** v14+ */ MAX_ROUTER_CHILD_COUNT = 0x013d, /** v14+ */ GET_PARENT_INCOMING_NWK_FRAME_COUNTER = 0x013e, /** v14+ */ SET_PARENT_INCOMING_NWK_FRAME_COUNTER = 0x013f, /** v14+ */ CURRENT_STACK_TASKS = 0x0145, /** v14+ */ OK_TO_NAP = 0x0146, /** v14+ */ PARENT_TOKEN_SET = 0x0140, /** v14+ */ OK_TO_HIBERNATE = 0x0141, /** v14+ */ OK_TO_LONG_POLL = 0x0142, /** v14+ */ STACK_POWER_DOWN = 0x0143, /** v14+ */ STACK_POWER_UP = 0x0144, GET_CHILD_DATA = 0x004a, SET_CHILD_DATA = 0x00ac, CHILD_ID = 0x0106, /** v14+ */ CHILD_POWER = 0x0134, /** v14+ */ SET_CHILD_POWER = 0x0135, CHILD_INDEX = 0x0107, GET_SOURCE_ROUTE_TABLE_TOTAL_SIZE = 0x00c3, GET_SOURCE_ROUTE_TABLE_FILLED_SIZE = 0x00c2, GET_SOURCE_ROUTE_TABLE_ENTRY = 0x00c1, GET_NEIGHBOR = 0x0079, GET_NEIGHBOR_FRAME_COUNTER = 0x003e, SET_NEIGHBOR_FRAME_COUNTER = 0x00ad, SET_ROUTING_SHORTCUT_THRESHOLD = 0x00d0, GET_ROUTING_SHORTCUT_THRESHOLD = 0x00d1, NEIGHBOR_COUNT = 0x007a, GET_ROUTE_TABLE_ENTRY = 0x007b, SET_RADIO_POWER = 0x0099, SET_RADIO_CHANNEL = 0x009a, GET_RADIO_CHANNEL = 0x00ff, SET_RADIO_IEEE802154_CCA_MODE = 0x0095, SET_CONCENTRATOR = 0x0010, /** v14+ */ CONCENTRATOR_START_DISCOVERY = 0x014f, /** v14+ */ CONCENTRATOR_STOP_DISCOVERY = 0x0150, /** v14+ */ CONCENTRATOR_NOTE_ROUTE_ERROR = 0x0151, SET_BROKEN_ROUTE_ERROR_CODE = 0x0011, MULTI_PHY_START = 0x00f8, MULTI_PHY_STOP = 0x00f9, MULTI_PHY_SET_RADIO_POWER = 0x00fa, SEND_LINK_POWER_DELTA_REQUEST = 0x00f7, MULTI_PHY_SET_RADIO_CHANNEL = 0x00fb, GET_DUTY_CYCLE_STATE = 0x0035, SET_DUTY_CYCLE_LIMITS_IN_STACK = 0x0040, GET_DUTY_CYCLE_LIMITS = 0x004b, GET_CURRENT_DUTY_CYCLE = 0x004c, DUTY_CYCLE_HANDLER = 0x004d, // GET_FIRST_BEACON = 0x003D,// v13-, unused SET_NUM_BEACONS_TO_STORE = 0x0037, // GET_NEXT_BEACON = 0x0004,// v13-, unused GET_STORED_BEACON = 0x0004, GET_NUM_STORED_BEACONS = 0x0008, CLEAR_STORED_BEACONS = 0x003c, SET_LOGICAL_AND_RADIO_CHANNEL = 0x00b9, /** v14+ */ SLEEPY_TO_SLEEPY_NETWORK_START = 0x0119, /** v14+ */ SEND_ZIGBEE_LEAVE = 0x011a, /** v14+ */ GET_PERMIT_JOINING = 0x011f, /** v14+ */ GET_EXTENDED_PAN_ID = 0x0127, /** v14+ */ GET_CURRENT_NETWORK = 0x014e, /** v14+ */ SET_INITIAL_NEIGHBOR_OUTGOING_COST = 0x0122, /** v14+ */ GET_INITIAL_NEIGHBOR_OUTGOING_COST = 0x0123, /** v14+ */ RESET_REJOINING_NEIGHBORS_FRAME_COUNTER = 0x0124, /** v14+ */ IS_RESET_REJOINING_NEIGHBORS_FRAME_COUNTER_ENABLED = 0x0125, // Binding Frames CLEAR_BINDING_TABLE = 0x002a, SET_BINDING = 0x002b, GET_BINDING = 0x002c, DELETE_BINDING = 0x002d, BINDING_IS_ACTIVE = 0x002e, GET_BINDING_REMOTE_NODE_ID = 0x002f, SET_BINDING_REMOTE_NODE_ID = 0x0030, REMOTE_SET_BINDING_HANDLER = 0x0031, REMOTE_DELETE_BINDING_HANDLER = 0x0032, // Messaging Frames MAXIMUM_PAYLOAD_LENGTH = 0x0033, SEND_UNICAST = 0x0034, SEND_BROADCAST = 0x0036, // PROXY_BROADCAST = 0x0037,// v13-, unused PROXY_NEXT_BROADCAST_FROM_LONG = 0x0066, SEND_MULTICAST = 0x0038, // SEND_MULTICAST_WITH_ALIAS = 0x003A,// v13-, unused SEND_REPLY = 0x0039, MESSAGE_SENT_HANDLER = 0x003f, SEND_MANY_TO_ONE_ROUTE_REQUEST = 0x0041, POLL_FOR_DATA = 0x0042, POLL_COMPLETE_HANDLER = 0x0043, /** v14+ */ SET_MESSAGE_FLAG = 0x0136, /** v14+ */ CLEAR_MESSAGE_FLAG = 0x0137, POLL_HANDLER = 0x0044, /** v14+ */ ADD_CHILD = 0x0138, /** v14+ */ REMOVE_CHILD = 0x0139, /** v14+ */ REMOVE_NEIGHBOR = 0x013a, // INCOMING_SENDER_EUI64_HANDLER = 0x0062,// v13-, unused INCOMING_MESSAGE_HANDLER = 0x0045, SET_SOURCE_ROUTE_DISCOVERY_MODE = 0x005a, INCOMING_MANY_TO_ONE_ROUTE_REQUEST_HANDLER = 0x007d, INCOMING_ROUTE_ERROR_HANDLER = 0x0080, INCOMING_NETWORK_STATUS_HANDLER = 0x00c4, INCOMING_ROUTE_RECORD_HANDLER = 0x0059, // SET_SOURCE_ROUTE = 0x00AE,// v9-, no-op since UNICAST_CURRENT_NETWORK_KEY = 0x0050, ADDRESS_TABLE_ENTRY_IS_ACTIVE = 0x005b, /** v14+ */ SET_ADDRESS_TABLE_INFO = 0x005c, /** v14+ */ GET_ADDRESS_TABLE_INFO = 0x005e, // SET_ADDRESS_TABLE_REMOTE_EUI64 = 0x005C,// v13-, unused // SET_ADDRESS_TABLE_REMOTE_NODE_ID = 0x005D,// v13-, unused // GET_ADDRESS_TABLE_REMOTE_EUI64 = 0x005E,// v13-, unused // GET_ADDRESS_TABLE_REMOTE_NODE_ID = 0x005F,// v13-, unused SET_EXTENDED_TIMEOUT = 0x007e, GET_EXTENDED_TIMEOUT = 0x007f, REPLACE_ADDRESS_TABLE_ENTRY = 0x0082, LOOKUP_NODE_ID_BY_EUI64 = 0x0060, LOOKUP_EUI64_BY_NODE_ID = 0x0061, GET_MULTICAST_TABLE_ENTRY = 0x0063, SET_MULTICAST_TABLE_ENTRY = 0x0064, ID_CONFLICT_HANDLER = 0x007c, WRITE_NODE_DATA = 0x00fe, // SEND_RAW_MESSAGE = 0x0096,// v13-, unused SEND_RAW_MESSAGE = 0x0051, MAC_PASSTHROUGH_MESSAGE_HANDLER = 0x0097, MAC_FILTER_MATCH_MESSAGE_HANDLER = 0x0046, RAW_TRANSMIT_COMPLETE_HANDLER = 0x0098, SET_MAC_POLL_FAILURE_WAIT_TIME = 0x00f4, /** v14+ */ GET_MAX_MAC_RETRIES = 0x006a, SET_BEACON_CLASSIFICATION_PARAMS = 0x00ef, GET_BEACON_CLASSIFICATION_PARAMS = 0x00f3, /** v14+ */ PENDING_ACKED_MESSAGES = 0x0121, /** v14+ */ RESCHEDULE_LINK_STATUS_MSG = 0x011b, /** v14+ */ SET_NWK_UPDATE_ID = 0x011d, // Security Frames SET_INITIAL_SECURITY_STATE = 0x0068, GET_CURRENT_SECURITY_STATE = 0x0069, EXPORT_KEY = 0x0114, IMPORT_KEY = 0x0115, SWITCH_NETWORK_KEY_HANDLER = 0x006e, FIND_KEY_TABLE_ENTRY = 0x0075, SEND_TRUST_CENTER_LINK_KEY = 0x0067, ERASE_KEY_TABLE_ENTRY = 0x0076, CLEAR_KEY_TABLE = 0x00b1, REQUEST_LINK_KEY = 0x0014, UPDATE_TC_LINK_KEY = 0x006c, ZIGBEE_KEY_ESTABLISHMENT_HANDLER = 0x009b, CLEAR_TRANSIENT_LINK_KEYS = 0x006b, GET_NETWORK_KEY_INFO = 0x0116, GET_APS_KEY_INFO = 0x010c, IMPORT_LINK_KEY = 0x010e, EXPORT_LINK_KEY_BY_INDEX = 0x010f, EXPORT_LINK_KEY_BY_EUI = 0x010d, CHECK_KEY_CONTEXT = 0x0110, IMPORT_TRANSIENT_KEY = 0x0111, EXPORT_TRANSIENT_KEY_BY_INDEX = 0x0112, EXPORT_TRANSIENT_KEY_BY_EUI = 0x0113, /** v14+ */ SET_INCOMING_TC_LINK_KEY_FRAME_COUNTER = 0x0128, /** v14+ */ APS_CRYPT_MESSAGE = 0x0129, // Trust Center Frames TRUST_CENTER_JOIN_HANDLER = 0x0024, BROADCAST_NEXT_NETWORK_KEY = 0x0073, BROADCAST_NETWORK_KEY_SWITCH = 0x0074, AES_MMO_HASH = 0x006f, REMOVE_DEVICE = 0x00a8, UNICAST_NWK_KEY_UPDATE = 0x00a9, // Certificate Based Key Exchange (CBKE) Frames GENERATE_CBKE_KEYS = 0x00a4, GENERATE_CBKE_KEYS_HANDLER = 0x009e, CALCULATE_SMACS = 0x009f, CALCULATE_SMACS_HANDLER = 0x00a0, GENERATE_CBKE_KEYS283K1 = 0x00e8, GENERATE_CBKE_KEYS_HANDLER283K1 = 0x00e9, CALCULATE_SMACS283K1 = 0x00ea, CALCULATE_SMACS_HANDLER283K1 = 0x00eb, CLEAR_TEMPORARY_DATA_MAYBE_STORE_LINK_KEY = 0x00a1, CLEAR_TEMPORARY_DATA_MAYBE_STORE_LINK_KEY283K1 = 0x00ee, GET_CERTIFICATE = 0x00a5, GET_CERTIFICATE283K1 = 0x00ec, // DSA_SIGN = 0x00A6,// use EmberApsOption.DSA_SIGN instead DSA_SIGN_HANDLER = 0x00a7, DSA_VERIFY = 0x00a3, DSA_VERIFY_HANDLER = 0x0078, DSA_VERIFY283K1 = 0x00b0, SET_PREINSTALLED_CBKE_DATA = 0x00a2, SAVE_PREINSTALLED_CBKE_DATA283K1 = 0x00ed, // Mfglib Frames MFGLIB_INTERNAL_START = 0x0083, MFGLIB_INTERNAL_END = 0x0084, MFGLIB_INTERNAL_START_TONE = 0x0085, MFGLIB_INTERNAL_STOP_TONE = 0x0086, MFGLIB_INTERNAL_START_STREAM = 0x0087, MFGLIB_INTERNAL_STOP_STREAM = 0x0088, MFGLIB_INTERNAL_SEND_PACKET = 0x0089, MFGLIB_INTERNAL_SET_CHANNEL = 0x008a, MFGLIB_INTERNAL_GET_CHANNEL = 0x008b, MFGLIB_INTERNAL_SET_POWER = 0x008c, MFGLIB_INTERNAL_GET_POWER = 0x008d, MFGLIB_RX_HANDLER = 0x008e, // Bootloader Frames LAUNCH_STANDALONE_BOOTLOADER = 0x008f, SEND_BOOTLOAD_MESSAGE = 0x0090, GET_STANDALONE_BOOTLOADER_VERSION_PLAT_MICRO_PHY = 0x0091, INCOMING_BOOTLOAD_MESSAGE_HANDLER = 0x0092, BOOTLOAD_TRANSMIT_COMPLETE_HANDLER = 0x0093, AES_ENCRYPT = 0x0094, /** v14+ */ INCOMING_MFG_TEST_MESSAGE_HANDLER = 0x0147, /** v14+ */ MFG_TEST_SET_PACKET_MODE = 0x0148, /** v14+ */ MFG_TEST_SEND_REBOOT_COMMAND = 0x0149, /** v14+ */ MFG_TEST_SEND_EUI64 = 0x014a, /** v14+ */ MFG_TEST_SEND_MANUFACTURING_STRING = 0x014b, /** v14+ */ MFG_TEST_SEND_RADIO_PARAMETERS = 0x014c, /** v14+ */ MFG_TEST_SEND_COMMAND = 0x014d, // ZLL Frames ZLL_NETWORK_OPS = 0x00b2, ZLL_SET_INITIAL_SECURITY_STATE = 0x00b3, ZLL_SET_SECURITY_STATE_WITHOUT_KEY = 0x00cf, ZLL_START_SCAN = 0x00b4, ZLL_SET_RX_ON_WHEN_IDLE = 0x00b5, ZLL_NETWORK_FOUND_HANDLER = 0x00b6, ZLL_SCAN_COMPLETE_HANDLER = 0x00b7, ZLL_ADDRESS_ASSIGNMENT_HANDLER = 0x00b8, ZLL_TOUCH_LINK_TARGET_HANDLER = 0x00bb, ZLL_GET_TOKENS = 0x00bc, ZLL_SET_DATA_TOKEN = 0x00bd, ZLL_SET_NON_ZLL_NETWORK = 0x00bf, IS_ZLL_NETWORK = 0x00be, ZLL_SET_RADIO_IDLE_MODE = 0x00d4, ZLL_GET_RADIO_IDLE_MODE = 0x00ba, SET_ZLL_NODE_TYPE = 0x00d5, SET_ZLL_ADDITIONAL_STATE = 0x00d6, ZLL_OPERATION_IN_PROGRESS = 0x00d7, ZLL_RX_ON_WHEN_IDLE_GET_ACTIVE = 0x00d8, ZLL_SCANNING_COMPLETE = 0x00f6, GET_ZLL_PRIMARY_CHANNEL_MASK = 0x00d9, GET_ZLL_SECONDARY_CHANNEL_MASK = 0x00da, SET_ZLL_PRIMARY_CHANNEL_MASK = 0x00db, SET_ZLL_SECONDARY_CHANNEL_MASK = 0x00dc, ZLL_CLEAR_TOKENS = 0x0025, // WWAH Frames // SET_PARENT_CLASSIFICATION_ENABLED = 0x00E7,// v13-, unused // GET_PARENT_CLASSIFICATION_ENABLED = 0x00F0,// v13-, unused // SET_LONG_UP_TIME = 0x00E3,// v13-, unused // SET_HUB_CONNECTIVITY = 0x00E4,// v13-, unused // IS_UP_TIME_LONG = 0x00E5,// v13-, unused // IS_HUB_CONNECTED = 0x00E6,// v13-, unused // Green Power Frames GP_PROXY_TABLE_PROCESS_GP_PAIRING = 0x00c9, D_GP_SEND = 0x00c6, D_GP_SENT_HANDLER = 0x00c7, GPEP_INCOMING_MESSAGE_HANDLER = 0x00c5, GP_PROXY_TABLE_GET_ENTRY = 0x00c8, GP_PROXY_TABLE_LOOKUP = 0x00c0, GP_SINK_TABLE_GET_ENTRY = 0x00dd, GP_SINK_TABLE_LOOKUP = 0x00de, GP_SINK_TABLE_SET_ENTRY = 0x00df, GP_SINK_TABLE_REMOVE_ENTRY = 0x00e0, GP_SINK_TABLE_FIND_OR_ALLOCATE_ENTRY = 0x00e1, GP_SINK_TABLE_CLEAR_ALL = 0x00e2, GP_SINK_TABLE_INIT = 0x0070, GP_SINK_TABLE_SET_SECURITY_FRAME_COUNTER = 0x00f5, GP_SINK_COMMISSION = 0x010a, GP_TRANSLATION_TABLE_CLEAR = 0x010b, GP_SINK_TABLE_GET_NUMBER_OF_ACTIVE_ENTRIES = 0x0118, // Token Interface Frames GET_TOKEN_COUNT = 0x0100, GET_TOKEN_INFO = 0x0101, GET_TOKEN_DATA = 0x0102, SET_TOKEN_DATA = 0x0103, RESET_NODE = 0x0104, GP_SECURITY_TEST_VECTORS = 0x0117, TOKEN_FACTORY_RESET = 0x0077, } /** Identifies a configuration value. uint8_t */ export enum EzspConfigId { // 0x00? /** * The NCP no longer supports configuration of packet buffer heap at runtime using this parameter. * Packet buffers heap space must be configured using the EMBER_PACKET_BUFFER_COUNT macro when building the NCP project. */ PACKET_BUFFER_HEAP_SIZE = 0x01, /** * The maximum number of router neighbors the stack can keep track of. A * neighbor is a node within radio range. */ NEIGHBOR_TABLE_SIZE = 0x02, /** * The maximum number of APS retried messages the stack can be transmitting at * any time. */ APS_UNICAST_MESSAGE_COUNT = 0x03, /** * The maximum number of non-volatile bindings supported by the stack. */ BINDING_TABLE_SIZE = 0x04, /** * The maximum number of EUI64 to network address associations that the stack * can maintain for the application. (Note, the total number of such address * associations maintained by the NCP is the sum of the value of this setting * and the value of ::TRUST_CENTER_ADDRESS_CACHE_SIZE. */ ADDRESS_TABLE_SIZE = 0x05, /** * The maximum number of multicast groups that the device may be a member of. */ MULTICAST_TABLE_SIZE = 0x06, /** * The maximum number of destinations to which a node can route messages. This * includes both messages originating at this node and those relayed for * others. */ ROUTE_TABLE_SIZE = 0x07, /** * The number of simultaneous route discoveries that a node will support. */ DISCOVERY_TABLE_SIZE = 0x08, // 0x0A? // 0x0B? /** * Specifies the stack profile. */ STACK_PROFILE = 0x0c, /** * 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). */ SECURITY_LEVEL = 0x0d, // 0x0E? // 0x0F? /** * The maximum number of hops for a message. */ MAX_HOPS = 0x10, /** * The maximum number of end device children that a router will support. */ MAX_END_DEVICE_CHILDREN = 0x11, /** * The maximum amount of time that the MAC will hold a message for indirect * transmission to a child. */ INDIRECT_TRANSMISSION_TIMEOUT = 0x12, /** * The maximum amount of time that an end device child can wait between polls. * If no poll is heard within this timeout, then the parent removes the end * device from its tables. Value range 0-14. The timeout corresponding to a * value of zero is 10 seconds. The timeout corresponding to a nonzero value N * is 2^N minutes, ranging from 2^1 = 2 minutes to 2^14 = 16384 minutes. */ END_DEVICE_POLL_TIMEOUT = 0x13, // 0x14? // 0x15? // 0x16? /** * Enables boost power mode and/or the alternate transmitter output. */ TX_POWER_MODE = 0x17, /** * 0: Allow this node to relay messages. 1: Prevent this node from relaying * messages. */ DISABLE_RELAY = 0x18, /** * The maximum number of EUI64 to network address associations that the Trust * Center can maintain. These address cache entries are reserved for and * reused by the Trust Center when processing device join/rejoin * authentications. This cache size limits the number of overlapping joins the * Trust Center can process within a narrow time window (e.g. two seconds), * and thus should be set to the maximum number of near simultaneous joins the * Trust Center is expected to accommodate. (Note, the total number of such * address associations maintained by the NCP is the sum of the value of this * setting and the value of ::ADDRESS_TABLE_SIZE.) */ TRUST_CENTER_ADDRESS_CACHE_SIZE = 0x19, /** * The size of the source route table. */ SOURCE_ROUTE_TABLE_SIZE = 0x1a, // 0x1B? /** The number of blocks of a fragmented message that can be sent in a single window. */ FRAGMENT_WINDOW_SIZE = 0x1c, /** The time the stack will wait (in milliseconds) between sending blocks of a fragmented message. */ FRAGMENT_DELAY_MS = 0x1d, /** * The size of the Key Table used for storing individual link keys (if the * device is a Trust Center) or Application Link Keys (if the device is a normal node). */ KEY_TABLE_SIZE = 0x1e, /** The APS ACK timeout value. The stack waits this amount of time between resends of APS retried messages. */ APS_ACK_TIMEOUT = 0x1f, /** * The duration of a beacon jitter, in the units used by the 15.4 scan * parameter (((1 << duration) + 1) * 15ms), when responding to a beacon request. */ BEACON_JITTER_DURATION = 0x20, // 0x21? /** The number of PAN id conflict reports that must be received by the network manager within one minute to trigger a PAN id change. */ PAN_ID_CONFLICT_REPORT_THRESHOLD = 0x22, /** * The timeout value in minutes for how long the Trust Center or a normal node * waits for the ZigBee Request Key to complete. On the Trust Center this * controls whether or not the device buffers the request, waiting for a * matching pair of ZigBee Request Key. If the value is non-zero, the Trust * Center buffers and waits for that amount of time. If the value is zero, the * Trust Center does not buffer the request and immediately responds to the * request. Zero is the most compliant behavior. */ REQUEST_KEY_TIMEOUT = 0x24, // 0x25? // 0x26? // 0x27? // 0x28? /** * This value indicates the size of the runtime modifiable certificate table. * Normally certificates are stored in MFG tokens but this table can be used * to field upgrade devices with new Smart Energy certificates. This value * cannot be set, it can only be queried. */ CERTIFICATE_TABLE_SIZE = 0x29, /** * This is a bitmask that controls which incoming ZDO request messages are * passed to the application. The bits are defined in the * EmberZdoConfigurationFlags enumeration. To see if the application is * required to send a ZDO response in reply to an incoming message, the * application must check the APS options bitfield within the * incomingMessageHandler callback to see if the * EMBER_APS_OPTION_ZDO_RESPONSE_REQUIRED flag is set. */ APPLICATION_ZDO_FLAGS = 0x2a, /** The maximum number of broadcasts during a single broadcast timeout period. */ BROADCAST_TABLE_SIZE = 0x2b, /** The size of the MAC filter list table. */ MAC_FILTER_TABLE_SIZE = 0x2c, /** The number of supported networks. */ SUPPORTED_NETWORKS = 0x2d, /** * Whether multicasts are sent to the RxOnWhenIdle=true address (0xFFFD) or * the sleepy broadcast address (0xFFFF). The RxOnWhenIdle=true address is the * ZigBee compliant destination for multicasts. */ SEND_MULTICASTS_TO_SLEEPY_ADDRESS = 0x2e, /** ZLL group address initial configuration. */ ZLL_GROUP_ADDRESSES = 0x2f, /** ZLL rssi threshold initial configuration. */ ZLL_RSSI_THRESHOLD = 0x30, // 0x31? // 0x32? /** Toggles the MTORR flow control in the stack. */ MTORR_FLOW_CONTROL = 0x33, /** Setting the retry queue size. Applies to all queues. Default value in the sample applications is 16. */ RETRY_QUEUE_SIZE = 0x34, /** * Setting the new broadcast entry threshold. The number (BROADCAST_TABLE_SIZE * - NEW_BROADCAST_ENTRY_THRESHOLD) of broadcast table entries are reserved * for relaying the broadcast messages originated on other devices. The local * device will fail to originate a broadcast message after this threshold is * reached. Setting this value to BROADCAST_TABLE_SIZE and greater will * effectively kill this limitation. */ NEW_BROADCAST_ENTRY_THRESHOLD = 0x35, /** * The length of time, in seconds, that a trust center will store a transient * link key that a device can use to join its network. A transient key is * added with a call to emberAddTransientLinkKey. After the transient key is * added, it will be removed once this amount of time has passed. A joining * device will not be able to use that key to join until it is added again on * the trust center. The default value is 300 seconds, i.e., 5 minutes. */ TRANSIENT_KEY_TIMEOUT_S = 0x36, /** The number of passive acknowledgements to record from neighbors before we stop re-transmitting broadcasts */ BROADCAST_MIN_ACKS_NEEDED = 0x37, /** * The length of time, in seconds, that a trust center will allow a Trust * Center (insecure) rejoin for a device that is using the well-known link * key. This timeout takes effect once rejoins using the well-known key has * been allowed. This command updates the * sli_zigbee_allow_tc_rejoins_using_well_known_key_timeout_sec value. */ TC_REJOINS_USING_WELL_KNOWN_KEY_TIMEOUT_S = 0x38, /** Valid range of a CTUNE value is 0x0000-0x01FF. Higher order bits (0xFE00) of the 16-bit value are ignored. */ CTUNE_VALUE = 0x39, // 0x3A? // 0x3B? // 0x3C? // 0x3D? // 0x3E? // 0x3F? /** * To configure non trust center node to assume a concentrator type of the * trust center it join to, until it receive many-to-one route request from * the trust center. For the trust center node, concentrator type is * configured from the concentrator plugin. The stack by default assumes trust * center be a low RAM concentrator that make other devices send route record * to the trust center even without receiving a many-to-one route request. The * default concentrator type can be changed by setting appropriate * EmberAssumeTrustCenterConcentratorType config value. */ ASSUME_TC_CONCENTRATOR_TYPE = 0x40, /** This is green power proxy table size. This value is read-only and cannot be set at runtime */ GP_PROXY_TABLE_SIZE = 0x41, /** This is green power sink table size. This value is read-only and cannot be set at runtime */ GP_SINK_TABLE_SIZE = 0x42, /** * v14+ * This is the configuration advertised by the end device to the parent when joining/rejoining, * either SL_ZIGBEE_END_DEVICE_CONFIG_NONE or SL_ZIGBEE_END_DEVICE_CONFIG_PERSIST_DATA_ON_PARENT. */ END_DEVICE_CONFIGURATION = 0x43, } /** Identifies a policy decision. */ export enum EzspDecisionId { /** * BINDING_MODIFICATION_POLICY default decision. * * Do not allow the local binding table to be changed by remote nodes. */ DISALLOW_BINDING_MODIFICATION = 0x10, /** * BINDING_MODIFICATION_POLICY decision. * * Allow remote nodes to change the local binding table. */ ALLOW_BINDING_MODIFICATION = 0x11, /** * BINDING_MODIFICATION_POLICY decision. * * Allows remote nodes to set local binding entries only if the entries correspond to endpoints * defined on the device, and for output clusters bound to those endpoints. */ CHECK_BINDING_MODIFICATIONS_ARE_VALID_ENDPOINT_CLUSTERS = 0x12, /** * UNICAST_REPLIES_POLICY default decision. * * The NCP will automatically send an empty reply (containing no payload) for every unicast received. * */ HOST_WILL_NOT_SUPPLY_REPLY = 0x20, /** * UNICAST_REPLIES_POLICY decision. * * The NCP will only send a reply if it receives a sendReply command from the Host. */ HOST_WILL_SUPPLY_REPLY = 0x21, /** * POLL_HANDLER_POLICY default decision. * * Do not inform the Host when a child polls. */ POLL_HANDLER_IGNORE = 0x30, /** * POLL_HANDLER_POLICY decision. * * Generate a pollHandler callback when a child polls. */ POLL_HANDLER_CALLBACK = 0x31, /** * MESSAGE_CONTENTS_IN_CALLBACK_POLICY default decision. * * Include only the message tag in the messageSentHandler callback. */ MESSAGE_TAG_ONLY_IN_CALLBACK = 0x40, /** * MESSAGE_CONTENTS_IN_CALLBACK_POLICY decision. * * Include both the message tag and the message contents in the messageSentHandler callback. */ MESSAGE_TAG_AND_CONTENTS_IN_CALLBACK = 0x41, /** * TC_KEY_REQUEST_POLICY decision. * * When the Trust Center receives a request for a Trust Center link key, it will be ignored. */ DENY_TC_KEY_REQUESTS = 0x50, /** * TC_KEY_REQUEST_POLICY decision. * * When the Trust Center receives a request for a Trust Center link key, it will reply to it with the corresponding key. */ ALLOW_TC_KEY_REQUESTS_AND_SEND_CURRENT_KEY = 0x51, /** * TC_KEY_REQUEST_POLICY decision. * * When the Trust Center receives a request for a Trust Center link key, it will generate a key to send to the joiner. * After generation, the key will be added to the transient key tabe and After verification, this key will be added into the link key table. */ ALLOW_TC_KEY_REQUEST_AND_GENERATE_NEW_KEY = 0x52, /** * APP_KEY_REQUEST_POLICY decision. * When the Trust Center receives a request for an application link key, it will be ignored. * */ DENY_APP_KEY_REQUESTS = 0x60, /** * APP_KEY_REQUEST_POLICY decision. * * When the Trust Center receives a request for an application link key, it will randomly generate a key and send it to both partners. */ ALLOW_APP_KEY_REQUESTS = 0x61, /** Indicates that packet validate library checks are enabled on the NCP. */ PACKET_VALIDATE_LIBRARY_CHECKS_ENABLED = 0x62, /** Indicates that packet validate library checks are NOT enabled on the NCP. */ PACKET_VALIDATE_LIBRARY_CHECKS_DISABLED = 0x63, } /** * This is the policy decision bitmask that controls the trust center decision strategies. * The bitmask is modified and extracted from the EzspDecisionId for supporting bitmask operations. * uint16_t */ export enum EzspDecisionBitmask { /** Disallow joins and rejoins. */ DEFAULT_CONFIGURATION = 0x0000, /** Send the network key to all joining devices. */ ALLOW_JOINS = 0x0001, /** Send the network key to all rejoining devices. */ ALLOW_UNSECURED_REJOINS = 0x0002, /** Send the network key in the clear. */ SEND_KEY_IN_CLEAR = 0x0004, /** Do nothing for unsecured rejoins. */ IGNORE_UNSECURED_REJOINS = 0x0008, /** Allow joins if there is an entry in the transient key table. */ JOINS_USE_INSTALL_CODE_KEY = 0x0010, /** Delay sending the network key to a new joining device. */ DEFER_JOINS = 0x0020, } /** Identifies a policy. */ export enum EzspPolicyId { /** Controls trust center behavior. */ TRUST_CENTER_POLICY = 0x00, /** Controls how external binding modification requests are handled. */ BINDING_MODIFICATION_POLICY = 0x01, /** Controls whether the Host supplies unicast replies. */ UNICAST_REPLIES_POLICY = 0x02, /** Controls whether pollHandler callbacks are generated. */ POLL_HANDLER_POLICY = 0x03, /** Controls whether the message contents are included in the messageSentHandler callback. */ MESSAGE_CONTENTS_IN_CALLBACK_POLICY = 0x04, /** Controls whether the Trust Center will respond to Trust Center link key requests. */ TC_KEY_REQUEST_POLICY = 0x05, /** Controls whether the Trust Center will respond to application link key requests. */ APP_KEY_REQUEST_POLICY = 0x06, /** * Controls whether ZigBee packets that appear invalid are automatically dropped by the stack. * A counter will be incremented when this occurs. */ PACKET_VALIDATE_LIBRARY_POLICY = 0x07, /** Controls whether the stack will process ZLL messages. */ ZLL_POLICY = 0x08, /** * Controls whether Trust Center (insecure) rejoins for devices using the well-known link key are accepted. * If rejoining using the well-known key is allowed, * it is disabled again after sli_zigbee_allow_tc_rejoins_using_well_known_key_timeout_sec seconds. */ TC_REJOINS_USING_WELL_KNOWN_KEY_POLICY = 0x09, } /** Identifies a value. */ export enum EzspValueId { /** The contents of the node data stack token. */ TOKEN_STACK_NODE_DATA = 0x00, /** The types of MAC passthrough messages that the host wishes to receive. */ MAC_PASSTHROUGH_FLAGS = 0x01, /** * The source address used to filter legacy EmberNet messages when the * EMBER_MAC_PASSTHROUGH_EMBERNET_SOURCE flag is set in MAC_PASSTHROUGH_FLAGS. */ EMBERNET_PASSTHROUGH_SOURCE_ADDRESS = 0x02, /** The amount in bytes (max 2^16) of available general purpose heap memory. */ BUFFER_HEAP_FREE_SIZE = 0x03, /** Selects sending synchronous callbacks in ezsp-uart. */ UART_SYNCH_CALLBACKS = 0x04, /** * The maximum incoming transfer size for the local node. * Default value is set to 82 and does not use fragmentation. Sets the value in Node Descriptor. * To set, this takes the input of a uint8 array of length 2 where you pass the lower byte at index 0 and upper byte at index 1. */ MAXIMUM_INCOMING_TRANSFER_SIZE = 0x05, /** * The maximum outgoing transfer size for the local node. * Default value is set to 82 and does not use fragmentation. Sets the value in Node Descriptor. * To set, this takes the input of a uint8 array of length 2 where you pass the lower byte at index 0 and upper byte at index 1. */ MAXIMUM_OUTGOING_TRANSFER_SIZE = 0x06, /** A bool indicating whether stack tokens are written to persistent storage as they change. */ STACK_TOKEN_WRITING = 0x07, /** A read-only value indicating whether the stack is currently performing a rejoin. */ STACK_IS_PERFORMING_REJOIN = 0x08, /** A list of EmberMacFilterMatchData values. */ MAC_FILTER_LIST = 0x09, /** The Ember Extended Security Bitmask. */ EXTENDED_SECURITY_BITMASK = 0x0a, /** The node short ID. */ NODE_SHORT_ID = 0x0b, /** The descriptor capability of the local node. Write only. */ DESCRIPTOR_CAPABILITY = 0x0c, /** The stack device request sequence number of the local node. */ STACK_DEVICE_REQUEST_SEQUENCE_NUMBER = 0x0d, /** Enable or disable radio hold-off. */ RADIO_HOLD_OFF = 0x0e, /** The flags field associated with the endpoint data. */ ENDPOINT_FLAGS = 0x0f, /** Enable/disable the Mfg security config key settings. */ MFG_SECURITY_CONFIG = 0x10, /** Retrieves the version information from the stack on the NCP. */ VERSION_INFO = 0x11, // NEXT_HOST_REJOIN_REASON = 0x12,// v13-, unused /** * This is the reason that the last rejoin took place. This value may only be retrieved, not set. * The rejoin may have been initiated by the stack (NCP) or the application (host). * If a host initiated a rejoin the reason will be set by default to EMBER_REJOIN_DUE_TO_APP_EVENT_1. * If the application wishes to denote its own rejoin reasons it can do so by calling * ezspSetValue(EMBER_VALUE_HOST_REJOIN_REASON, EMBER_REJOIN_DUE_TO_APP_EVENT_X). * X is a number corresponding to one of the app events defined. * If the NCP initiated a rejoin it will record this value internally for retrieval by ezspGetValue(REAL_REJOIN_REASON). */ LAST_REJOIN_REASON = 0x13, /** The next ZigBee sequence number. */ NEXT_ZIGBEE_SEQUENCE_NUMBER = 0x14, /** CCA energy detect threshold for radio. */ CCA_THRESHOLD = 0x15, /** The threshold value for a counter */ SET_COUNTER_THRESHOLD = 0x17, /** Resets all counters thresholds to 0xFF */ RESET_COUNTER_THRESHOLDS = 0x18, /** Clears all the counters */ CLEAR_COUNTERS = 0x19, /** The node's new certificate signed by the CA. */ CERTIFICATE_283K1 = 0x1a, /** The Certificate Authority's public key. */ PUBLIC_KEY_283K1 = 0x1b, /** The node's new static private key. */ PRIVATE_KEY_283K1 = 0x1c, // 0x1D? // 0x1E? // 0x1F? // 0x20? // 0x21? // 0x22? /** The NWK layer security frame counter value */ NWK_FRAME_COUNTER = 0x23, /** The APS layer security frame counter value. Managed by the stack. Users should not set these unless doing backup and restore. */ APS_FRAME_COUNTER = 0x24, /** Sets the device type to use on the next rejoin using device type */ RETRY_DEVICE_TYPE = 0x25, // 0x26? // 0x27? // 0x28? /** Setting this byte enables R21 behavior on the NCP. */ ENABLE_R21_BEHAVIOR = 0x29, /** Configure the antenna mode(0-don't switch,1-primary,2-secondary,3-TX antenna diversity). */ ANTENNA_MODE = 0x30, /** Enable or disable packet traffic arbitration. */ ENABLE_PTA = 0x31, /** Set packet traffic arbitration configuration options. */ PTA_OPTIONS = 0x32, /** Configure manufacturing library options (0-non-CSMA transmits,1-CSMA transmits). To be used with Manufacturing Library. */ MFGLIB_OPTIONS = 0x33, /** * Sets the flag to use either negotiated power by link power delta (LPD) or fixed power value provided by user * while forming/joining a network for packet transmissions on sub-ghz interface. This is mainly for testing purposes. */ USE_NEGOTIATED_POWER_BY_LPD = 0x34, /** Set packet traffic arbitration PWM options. */ PTA_PWM_OPTIONS = 0x35, /** Set packet traffic arbitration directional priority pulse width in microseconds. */ PTA_DIRECTIONAL_PRIORITY_PULSE_WIDTH = 0x36, /** Set packet traffic arbitration phy select timeout(ms). */ PTA_PHY_SELECT_TIMEOUT = 0x37, /** Configure the RX antenna mode: (0-do not switch; 1-primary; 2-secondary; 3-RX antenna diversity). */ ANTENNA_RX_MODE = 0x38, /** Configure the timeout to wait for the network key before failing a join. Acceptable timeout range [3,255]. Value is in seconds. */ NWK_KEY_TIMEOUT = 0x39, /** * The number of failed CSMA attempts due to failed CCA made by the MAC before continuing transmission with CCA disabled. * This is the same as calling the emberForceTxAfterFailedCca(uint8_t csmaAttempts) API. A value of 0 disables the feature. */ FORCE_TX_AFTER_FAILED_CCA_ATTEMPTS = 0x3a, /** * The length of time, in seconds, that a trust center will store a transient link key that a device can use to join its network. * A transient key is added with a call to sl_zb_sec_man_import_transient_key. After the transient key is added, * it will be removed once this amount of time has passed. A joining device will not be able to use that key to join * until it is added again on the trust center. * The default value is 300 seconds (5 minutes). */ TRANSIENT_KEY_TIMEOUT_S = 0x3b, /** Cumulative energy usage metric since the last value reset of the coulomb counter plugin. Setting this value will reset the coulomb counter. */ COULOMB_COUNTER_USAGE = 0x3c, /** * When scanning, configure the maximum number of beacons to store in cache. * Each beacon consumes on average 32-bytes (+ buffer overhead) in RAM. */ MAX_BEACONS_TO_STORE = 0x3d, /** Set the mask to filter out unacceptable child timeout options on a router. */ END_DEVICE_TIMEOUT_OPTIONS_MASK = 0x3e, /** The end device keep-alive mode supported by the parent. */ END_DEVICE_KEEP_ALIVE_SUPPORT_MODE = 0x3f, /** * Return the active radio config. Read only. * Values are 0: Default, 1: Antenna Diversity, 2: Co-Existence, 3: Antenna Diversity and Co-Existence. */ ACTIVE_RADIO_CONFIG = 0x41, /** Return the number of seconds the network will remain open. A return value of 0 indicates that the network is closed. Read only. */ NWK_OPEN_DURATION = 0x42, /** * Timeout in milliseconds to store entries in the transient device table. * If the devices are not authenticated before the timeout, the entry shall be purged */ TRANSIENT_DEVICE_TIMEOUT = 0x43, /** * Return information about the key storage on an NCP. * Returns 0 if keys are in classic key storage, and 1 if they are located in PSA key storage. Read only. */ KEY_STORAGE_VERSION = 0x44, /** Return activation state about TC Delayed Join on an NCP. A return value of 0 indicates that the feature is not activated. */ DELAYED_JOIN_ACTIVATION = 0x45, /** * v14+ * The maximum number of NWK retries that will be attempted. */ MAX_NWK_RETRIES = 0x46, /** * v14+ * Policies for allowing/disallowing rejoins. */ REJOIN_MODE = 0x47, } /** * Identifies a value based on specified characteristics. * Each set of characteristics is unique to that value and is specified during the call to get the extended value. * * uint16_t */ export enum EzspExtendedValueId { /** The flags field associated with the specified endpoint. Value is uint16_t */ ENDPOINT_FLAGS = 0x0000, /** * This is the reason for the node to leave the network as well as the device that told it to leave. * The leave reason is the 1st byte of the value while the node ID is the 2nd and 3rd byte. * If the leave was caused due to an API call rather than an over the air message, the node ID will be EMBER_UNKNOWN_NODE_ID (0xFFFD). */ LAST_LEAVE_REASON = 0x0001, /** This number of bytes of overhead required in the network frame for source routing to a particular destination. */ GET_SOURCE_ROUTE_OVERHEAD = 0x0002, } /** Flags associated with the endpoint data configured on the NCP. */ export enum EzspEndpointFlag { /** Indicates that the endpoint is disabled and NOT discoverable via ZDO. */ DISABLED = 0x00, /** Indicates that the endpoint is enabled and discoverable via ZDO. */ ENABLED = 0x01, } /** Notes the last leave reason. uint8_t */ export enum EmberLeaveReason { REASON_NONE = 0, DUE_TO_NWK_LEAVE_MESSAGE = 1, DUE_TO_APS_REMOVE_MESSAGE = 2, // Currently, the stack does not process the ZDO leave message since it is optional. DUE_TO_ZDO_LEAVE_MESSAGE = 3, DUE_TO_ZLL_TOUCHLINK = 4, DUE_TO_APP_EVENT_1 = 0xff, } /** Notes the last rejoin reason. uint8_t */ export enum EmberRejoinReason { REASON_NONE = 0, DUE_TO_NWK_KEY_UPDATE = 1, DUE_TO_LEAVE_MESSAGE = 2, DUE_TO_NO_PARENT = 3, DUE_TO_ZLL_TOUCHLINK = 4, DUE_TO_END_DEVICE_REBOOT = 5, // App. Framework events // 0xA0 - 0xE0 // See af.h for a subset of defined rejoin reasons // Customer-defined Events // These are numbered down from 0xFF so their assigned values // need not change if more application events are needed. DUE_TO_APP_EVENT_5 = 0xfb, DUE_TO_APP_EVENT_4 = 0xfc, DUE_TO_APP_EVENT_3 = 0xfd, DUE_TO_APP_EVENT_2 = 0xfe, DUE_TO_APP_EVENT_1 = 0xff, } /** Manufacturing token IDs used by ezspGetMfgToken(). */ export enum EzspMfgTokenId { /** Custom version (2 bytes). */ CUSTOM_VERSION = 0x00, /** Manufacturing string (16 bytes). */ STRING = 0x01, /** Board name (16 bytes). */ BOARD_NAME = 0x02, /** Manufacturing ID (2 bytes). */ MANUF_ID = 0x03, /** Radio configuration (2 bytes). */ PHY_CONFIG = 0x04, /** Bootload AES key (16 bytes). */ BOOTLOAD_AES_KEY = 0x05, /** ASH configuration (40 bytes). */ ASH_CONFIG = 0x06, /** EZSP storage (8 bytes). */ EZSP_STORAGE = 0x07, /** * Radio calibration data (64 bytes). 4 bytes are stored for each of the 16 channels. * This token is not stored in the Flash Information Area. It is updated by the stack each time a calibration is performed. */ STACK_CAL_DATA = 0x08, /** Certificate Based Key Exchange (CBKE) data (92 bytes). */ CBKE_DATA = 0x09, /** Installation code (20 bytes). */ INSTALLATION_CODE = 0x0a, /** * Radio channel filter calibration data (1 byte). * This token is not stored in the Flash Information Area. It is updated by the stack each time a calibration is performed. */ STACK_CAL_FILTER = 0x0b, /** Custom EUI64 MAC address (8 bytes). */ CUSTOM_EUI_64 = 0x0c, /** CTUNE value (2 byte). */ CTUNE = 0x0d, } export enum EzspSleepMode { /** Processor idle. */ IDLE = 0x00, /** Wake on interrupt or timer. */ DEEP_SLEEP = 0x01, /** Wake on interrupt only. */ POWER_DOWN = 0x02, /** Reserved */ RESERVED_SLEEP = 0x03, }