Z-Wave Protocol Controller Reference
Z-Wave NodeID definitions

Z-Wave definitions and macros around NodeIDs / Nodemasks. More...

Collaboration diagram for Z-Wave NodeID definitions:

Classes

struct  node_type_t
 Node type structure, used in Node Information Frames. More...
 

Macros

#define ZW_LR_MAX_NODE_ID   4000
 Max number of nodes in a Z-Wave Long Range network. More...
 
#define ZW_LR_MIN_NODE_ID   256
 First valid NodeID using 2 bytes. More...
 
#define ZW_MIN_NODE_ID   1
 Lowest valid node id in a Z-Wave network. More...
 
#define ZW_MAX_NODES   232
 
#define ZWAVE_BROADCAST_NODE_ID   255
 Broadcast destination address in a Z-Wave Network. More...
 
#define ZWAVE_LR_BROADCAST_NODE_ID   0xFFF
 Broadcast destination address in a Z-Wave Network. More...
 
#define ZWAVE_MAX_FRAME_SIZE   158
 
#define ZWAVE_MAX_MAC_PAYLOAD_SIZE   46
 
#define ZWAVE_MAX_NIF_SIZE   (ZWAVE_MAX_FRAME_SIZE - 2)
 
#define ZW_LR_MAX_NODEMASK_LENGTH   ((ZW_LR_MAX_NODE_ID / 8) + 1)
 Length of nodemask to hold max number of nodes in a Z-Wave system. More...
 
#define ZW_MAX_NODEMASK_LENGTH   (ZW_MAX_NODES / 8)
 
#define ZW_LR_ONLY_MAX_NODEMASK_LENGTH    ((ZW_LR_MAX_NODE_ID - ZW_LR_MIN_NODE_ID) / 8)
 
#define ZW_LR_NODEMASK_OFFSET   ((ZW_LR_MIN_NODE_ID) / 8)
 
#define NODEMASK_GET_LR(nodemask)   ((nodemask) + ZW_LR_NODEMASK_OFFSET)
 
#define ZWAVE_MAXIMUM_ENDPOINT_ID   127
 
#define IS_BROADCAST_NODE_ID(node_id)
 
#define IS_ZWAVE_NODE_ID(node_id)    (((node_id) > 0) && ((node_id) <= ZW_MAX_NODES))
 
#define IS_ZWAVE_EXTENDED_NODE_ID(node_id)    (((node_id) >= ZW_LR_MIN_NODE_ID) && ((node_id) <= ZW_LR_MAX_NODE_ID))
 
#define IS_ZWAVE_NODE_ID_VALID(node_id)    ((IS_ZWAVE_NODE_ID(node_id)) || (IS_ZWAVE_EXTENDED_NODE_ID(node_id)))
 
#define ZW_IS_NODE_IN_MASK(node_id, nodemask)
 
#define ZW_ADD_NODE_TO_MASK(node_id, nodemask)
 
#define ZW_REMOVE_NODE_FROM_MASK(node_id, nodemask)
 
#define ZWAVE_NODE_INFO_LISTENING_PROTOCOL_LISTENING_MASK   0x80
 
#define ZWAVE_NODE_INFO_LISTENING_PROTOCOL_ROUTING_MASK   0x40
 
#define ZWAVE_NODE_INFO_LISTENING_PROTOCOL_MAX_SPEED_MASK   0x38
 
#define ZWAVE_NODE_INFO_LISTENING_PROTOCOL_PROTOCOL_VERSION_MASK   0x07
 
#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_OPTIONAL_FUNCTIONALITY_MASK   0x80
 
#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SENSOR_1000MS_MASK   0x40
 
#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SENSOR_250MS_MASK   0x20
 
#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_BEAM_CAPABILITY_MASK   0x10
 
#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_END_NODE_MASK   0x08
 
#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SPECIFIC_DEVICE_MASK   0x04
 
#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_CONTROLLER_MASK   0x02
 
#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SECURITY_MASK   0x01
 

Typedefs

typedef uint8_t zwave_nodemask_t[ZW_LR_MAX_NODEMASK_LENGTH]
 Node mask. More...
 
typedef uint16_t zwave_node_id_t
 Z-Wave NodeID type. More...
 
typedef uint32_t zwave_home_id_t
 Z-Wave HomeID type. More...
 
typedef uint8_t zwave_endpoint_id_t
 Z-Wave Endpoint ID type. More...
 

Detailed Description

Z-Wave definitions and macros around NodeIDs / Nodemasks.

Macro Definition Documentation

◆ IS_BROADCAST_NODE_ID

#define IS_BROADCAST_NODE_ID (   node_id)
Value:
#define ZWAVE_BROADCAST_NODE_ID
Broadcast destination address in a Z-Wave Network.
Definition: zwave_node_id_definitions.h:46
#define ZWAVE_LR_BROADCAST_NODE_ID
Broadcast destination address in a Z-Wave Network.
Definition: zwave_node_id_definitions.h:49
const zwave_node_id_t node_id

◆ IS_ZWAVE_EXTENDED_NODE_ID

#define IS_ZWAVE_EXTENDED_NODE_ID (   node_id)     (((node_id) >= ZW_LR_MIN_NODE_ID) && ((node_id) <= ZW_LR_MAX_NODE_ID))

◆ IS_ZWAVE_NODE_ID

#define IS_ZWAVE_NODE_ID (   node_id)     (((node_id) > 0) && ((node_id) <= ZW_MAX_NODES))

◆ IS_ZWAVE_NODE_ID_VALID

#define IS_ZWAVE_NODE_ID_VALID (   node_id)     ((IS_ZWAVE_NODE_ID(node_id)) || (IS_ZWAVE_EXTENDED_NODE_ID(node_id)))

◆ NODEMASK_GET_LR

#define NODEMASK_GET_LR (   nodemask)    ((nodemask) + ZW_LR_NODEMASK_OFFSET)

◆ ZW_ADD_NODE_TO_MASK

#define ZW_ADD_NODE_TO_MASK (   node_id,
  nodemask 
)
Value:
? 0 \
? ((nodemask[(node_id - 1) / 8]) |= (1 << ((node_id - 1) % 8))) \
: ((nodemask[(node_id) / 8]) |= (1 << ((node_id) % 8)))))
#define IS_ZWAVE_NODE_ID(node_id)
Definition: zwave_node_id_definitions.h:90
#define IS_ZWAVE_NODE_ID_VALID(node_id)
Definition: zwave_node_id_definitions.h:98

◆ ZW_IS_NODE_IN_MASK

#define ZW_IS_NODE_IN_MASK (   node_id,
  nodemask 
)
Value:
? 0 \
? ((nodemask[(node_id - 1) >> 3] >> ((node_id - 1) & 7)) & 0x1) \
: ((nodemask[(node_id) >> 3] >> ((node_id)&7)) & 0x1)))

◆ ZW_LR_MAX_NODE_ID

#define ZW_LR_MAX_NODE_ID   4000

Max number of nodes in a Z-Wave Long Range network.

◆ ZW_LR_MAX_NODEMASK_LENGTH

#define ZW_LR_MAX_NODEMASK_LENGTH   ((ZW_LR_MAX_NODE_ID / 8) + 1)

Length of nodemask to hold max number of nodes in a Z-Wave system.

◆ ZW_LR_MIN_NODE_ID

#define ZW_LR_MIN_NODE_ID   256

First valid NodeID using 2 bytes.

◆ ZW_LR_NODEMASK_OFFSET

#define ZW_LR_NODEMASK_OFFSET   ((ZW_LR_MIN_NODE_ID) / 8)

◆ ZW_LR_ONLY_MAX_NODEMASK_LENGTH

#define ZW_LR_ONLY_MAX_NODEMASK_LENGTH    ((ZW_LR_MAX_NODE_ID - ZW_LR_MIN_NODE_ID) / 8)

◆ ZW_MAX_NODEMASK_LENGTH

#define ZW_MAX_NODEMASK_LENGTH   (ZW_MAX_NODES / 8)

◆ ZW_MAX_NODES

#define ZW_MAX_NODES   232

◆ ZW_MIN_NODE_ID

#define ZW_MIN_NODE_ID   1

Lowest valid node id in a Z-Wave network.

◆ ZW_REMOVE_NODE_FROM_MASK

#define ZW_REMOVE_NODE_FROM_MASK (   node_id,
  nodemask 
)
Value:
? 0 \
? ((nodemask[(node_id - 1) / 8]) \
&= (0xFF - (1 << ((node_id - 1) % 8)))) \
: ((nodemask[(node_id) / 8]) &= (0xFF - (1 << ((node_id) % 8))))))

◆ ZWAVE_BROADCAST_NODE_ID

#define ZWAVE_BROADCAST_NODE_ID   255

Broadcast destination address in a Z-Wave Network.

◆ ZWAVE_LR_BROADCAST_NODE_ID

#define ZWAVE_LR_BROADCAST_NODE_ID   0xFFF

Broadcast destination address in a Z-Wave Network.

◆ ZWAVE_MAX_FRAME_SIZE

#define ZWAVE_MAX_FRAME_SIZE   158

The maximum singlecast/broadcast MSDU size for data rate R3 Ref: ITU G.9959 table A.47

◆ ZWAVE_MAX_MAC_PAYLOAD_SIZE

#define ZWAVE_MAX_MAC_PAYLOAD_SIZE   46

◆ ZWAVE_MAX_NIF_SIZE

#define ZWAVE_MAX_NIF_SIZE   (ZWAVE_MAX_FRAME_SIZE - 2)

The Node Info Frame / Protocol CCs do not use any segmentation So the maximum ever NIF will be the same size as the max frame - (Command Class id / Command Class)

◆ ZWAVE_MAXIMUM_ENDPOINT_ID

#define ZWAVE_MAXIMUM_ENDPOINT_ID   127

◆ ZWAVE_NODE_INFO_LISTENING_PROTOCOL_LISTENING_MASK

#define ZWAVE_NODE_INFO_LISTENING_PROTOCOL_LISTENING_MASK   0x80

◆ ZWAVE_NODE_INFO_LISTENING_PROTOCOL_MAX_SPEED_MASK

#define ZWAVE_NODE_INFO_LISTENING_PROTOCOL_MAX_SPEED_MASK   0x38

◆ ZWAVE_NODE_INFO_LISTENING_PROTOCOL_PROTOCOL_VERSION_MASK

#define ZWAVE_NODE_INFO_LISTENING_PROTOCOL_PROTOCOL_VERSION_MASK   0x07

◆ ZWAVE_NODE_INFO_LISTENING_PROTOCOL_ROUTING_MASK

#define ZWAVE_NODE_INFO_LISTENING_PROTOCOL_ROUTING_MASK   0x40

◆ ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_BEAM_CAPABILITY_MASK

#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_BEAM_CAPABILITY_MASK   0x10

◆ ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_CONTROLLER_MASK

#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_CONTROLLER_MASK   0x02

◆ ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_END_NODE_MASK

#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_END_NODE_MASK   0x08

◆ ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_OPTIONAL_FUNCTIONALITY_MASK

#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_OPTIONAL_FUNCTIONALITY_MASK   0x80

◆ ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SECURITY_MASK

#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SECURITY_MASK   0x01

◆ ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SENSOR_1000MS_MASK

#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SENSOR_1000MS_MASK   0x40

◆ ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SENSOR_250MS_MASK

#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SENSOR_250MS_MASK   0x20

◆ ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SPECIFIC_DEVICE_MASK

#define ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SPECIFIC_DEVICE_MASK   0x04

Typedef Documentation

◆ zwave_endpoint_id_t

typedef uint8_t zwave_endpoint_id_t

Z-Wave Endpoint ID type.

◆ zwave_home_id_t

typedef uint32_t zwave_home_id_t

Z-Wave HomeID type.

◆ zwave_node_id_t

typedef uint16_t zwave_node_id_t

Z-Wave NodeID type.

◆ zwave_nodemask_t

typedef uint8_t zwave_nodemask_t[ZW_LR_MAX_NODEMASK_LENGTH]

Node mask.