Go to the documentation of this file.
10 #ifndef MESH_PACKET_FLAGS_H
11 #define MESH_PACKET_FLAGS_H
159 *((uint8_t*)
this) = (uint8_t)0;
164 *((uint8_t*)
this) = val;
168 operator uint8_t()
const {
return *((uint8_t*)
this); }
169 operator uint8_t() {
return *((uint8_t*)
this); }
285 memcpy(
this, &val,
sizeof(uint16_t));
289 operator uint16_t()
const {
return *((uint16_t*)
this); }
290 operator uint16_t() {
return *((uint16_t*)
this); }
360 memcpy(
this, &val,
sizeof(uint16_t));
364 operator uint16_t()
const {
return *((uint16_t*)
this); }
365 operator uint16_t() {
return *((uint16_t*)
this); }
438 memcpy(
this, &val,
sizeof(uint16_t));
442 operator uint16_t()
const {
return *((uint16_t*)
this); }
443 operator uint16_t() {
return *((uint16_t*)
this); }
511 #endif // !MESH_PACKET_FLAGS_H
MeshNodeDescFlags & operator=(uint16_t val)
Definition: meshPacketFlags.h:359
Structure, which holds network scan result.
Definition: meshPacketFlags.h:452
uint8_t Address
Address of node.
Definition: meshPacketFlags.h:461
volatile bool Reserved1_7
Definition: meshPacketFlags.h:249
int8_t RSSI
RSSI of scan response in dBm.
Definition: meshPacketFlags.h:487
Ping packets flags.
Definition: meshPacketFlags.h:374
volatile bool RespondMainGatewayNode
If set to true, main gateway nodes has to respond.
Definition: meshPacketFlags.h:230
volatile bool Reserved1_2
Reserved for future use.
Definition: meshPacketFlags.h:412
MeshFrameControl()
Definition: meshPacketFlags.h:28
volatile bool RoutingEnabled
Enables or disables routing. When routing is enabled, packet will contain address of next node,...
Definition: meshPacketFlags.h:51
Structure, that contains bit flags used for Frame Control in MeshPacket. Size of this structure is al...
Definition: meshPacketFlags.h:25
volatile bool SystemPacket
True when current packet is system packet.
Definition: meshPacketFlags.h:64
size_t prettyPrint(OSTREAM &stream) const
Pretty prints frame ontrolto stream.
Definition: meshPacketFlags.cpp:4
MeshNetScanFlags & operator=(const MeshNetScanFlags &)=default
volatile bool RespondConnected
If set to true, nodes connected to any network has to respond.
Definition: meshPacketFlags.h:220
volatile bool Reserved2_2
Definition: meshPacketFlags.h:421
volatile bool Reserved2_5
Definition: meshPacketFlags.h:424
volatile bool Reserved2_7
Definition: meshPacketFlags.h:426
volatile bool Reserved1_6
Definition: meshPacketFlags.h:416
volatile bool Reserved1_8
Definition: meshPacketFlags.h:250
volatile bool CarriageFrame
True when frame is part of carriage. Big packets can be splited to multiple frames,...
Definition: meshPacketFlags.h:106
volatile bool Reserved1_4
Definition: meshPacketFlags.h:414
MeshFrameControl & operator=(const MeshFrameControl &)=default
volatile bool Reserved2_4
Definition: meshPacketFlags.h:423
volatile bool Reserved2_7
Definition: meshPacketFlags.h:273
volatile bool RespondDisconnected
If set to true, disconnected nodes has to respond.
Definition: meshPacketFlags.h:225
bool ContainsHopCount() const
Check if frame with current control frame has to contain hop count field.
Definition: meshPacketFlags.h:137
#define UNKNOWN_MESH_ADDRESS
Address, of node, when node is not connected to any network.
Definition: meshConfig.h:62
volatile bool Reserved2_6
Definition: meshPacketFlags.h:425
volatile bool Reserved1_4
Definition: meshPacketFlags.h:336
bool IsCarriageHeader() const
Checks, if frame is header part of carriage.
Definition: meshPacketFlags.h:88
volatile bool Reserved2_3
Definition: meshPacketFlags.h:422
volatile bool RelayingEnabled
Enables or disables relaying. When relaying is enabled, can be relayied to nodes, which are not neigh...
Definition: meshPacketFlags.h:58
volatile bool Reserved2_8
Definition: meshPacketFlags.h:274
volatile bool Reserved2_8
Definition: meshPacketFlags.h:349
volatile bool SecuredPacket
True when packet is secured.
Definition: meshPacketFlags.h:112
bool ContainsFromAddress() const
Check if frame with current control frame has to contain From address field.
Definition: meshPacketFlags.h:144
MeshNetScanFlags(uint16_t raw)
Definition: meshPacketFlags.h:210
MeshPingFlags()
Definition: meshPacketFlags.h:377
MeshNodeDescFlags Flags
Mesh node description flags, which describes every node.
Definition: meshPacketFlags.h:469
This file contains classes and structures that supports meshNet.
void Clear()
Clears frame control flags to it's default values.
Definition: meshPacketFlags.h:354
MeshNetScanFlags()
Definition: meshPacketFlags.h:190
volatile bool MoreFrameControl
True, when message contains another frame control after current frame control.
Definition: meshPacketFlags.h:125
void SetCarriageFrame(bool isCarriageFrame, bool isHeader=false)
Sets frame as carriage frame.
Definition: meshPacketFlags.h:73
MeshNodeDescFlags()
Definition: meshPacketFlags.h:303
volatile bool Reserved1_5
Definition: meshPacketFlags.h:415
MeshPingFlags & operator=(uint16_t val)
Definition: meshPacketFlags.h:437
volatile bool Reserved2_6
Definition: meshPacketFlags.h:347
MeshNodeDescFlags & operator=(const MeshNodeDescFlags &)=default
volatile bool CanRespondSameNetNode
If set to true, nodes from same network has to respond.
Definition: meshPacketFlags.h:241
volatile bool Reserved2_5
Definition: meshPacketFlags.h:346
MeshNetScanFlags & operator=(uint16_t val)
Definition: meshPacketFlags.h:284
void Clear()
Clears frame control flags to it's default values.
Definition: meshPacketFlags.h:432
volatile bool Reserved2_3
Definition: meshPacketFlags.h:344
void Clear()
Clears frame control flags to it's default values.
Definition: meshPacketFlags.h:158
MeshMAC BSSID
BSSID of network, the node which responsed is connected to. If node is not connected to any network (...
Definition: meshPacketFlags.h:457
volatile bool CarriageHeader
True when frame is header frame of frame carriage.
Definition: meshPacketFlags.h:99
volatile bool Reserved2_4
Reserved for future use.
Definition: meshPacketFlags.h:270
volatile bool Reserved2_6
Definition: meshPacketFlags.h:272
volatile bool ResponderIsMAC
If set to true, responder is MAC address and not BSSID of network. This flag is ignored when no respo...
Definition: meshPacketFlags.h:260
bool IsGateway() const
Checks if node which responsed is gateway.
Definition: meshPacketFlags.h:499
volatile bool Reserved1_6
Definition: meshPacketFlags.h:338
volatile bool Reserved2_7
Definition: meshPacketFlags.h:348
uint8_t SSID_length
Length of SSID without null terminator. If node is not connected to any network, 0 is set.
Definition: meshPacketFlags.h:482
volatile bool Reserved1_2
Definition: meshPacketFlags.h:334
volatile bool Reserved1_1
Reserved for future use.
Definition: meshPacketFlags.h:333
#define OSTREAM
Definition: meshConfig.h:41
volatile bool Reserved2_1
Definition: meshPacketFlags.h:342
volatile bool IsResponse
True if ping packet is response to ping packet request.
Definition: meshPacketFlags.h:407
bool IsValid() const
Checks if result is valid.
Definition: meshPacketFlags.h:492
Mesh node description flags, which describes every node on connection or when scan is performed.
Definition: meshPacketFlags.h:299
volatile bool IgnoreRSSIThreshold
If set to true, RSSI threshold is ignored.
Definition: meshPacketFlags.h:265
MeshPingFlags & operator=(const MeshPingFlags &)=default
MeshVersion Version
MeshNet version, the node is using.
Definition: meshPacketFlags.h:465
bool ContainsDestinationAddress() const
Check if frame with current control frame has to contain Destination address field.
Definition: meshPacketFlags.h:130
uint8_t HopsToGateway
Hops from current node to gateway. If node is gateway (Address == 0) 0 is set.
Definition: meshPacketFlags.h:473
volatile bool Reserved2_4
Definition: meshPacketFlags.h:345
bool IsConneted() const
Checks if node which responsed is connected to any network.
Definition: meshPacketFlags.h:506
volatile bool Reserved1_5
Definition: meshPacketFlags.h:337
Structure that represents physical MAC address used in MeshNEt protocol. MeshMAC address unlike MAC a...
Definition: meshHelper.h:207
volatile bool Reserved1_8
Definition: meshPacketFlags.h:340
MeshFrameControl & operator=(uint8_t val)
Definition: meshPacketFlags.h:163
volatile bool Reserved1_7
Definition: meshPacketFlags.h:417
volatile bool Reserved1_3
Definition: meshPacketFlags.h:413
volatile bool Reserved1_6
Reserved for future use.
Definition: meshPacketFlags.h:248
volatile bool Reserved1_7
Definition: meshPacketFlags.h:339
volatile bool Reserved2_5
Definition: meshPacketFlags.h:271
volatile bool Reserved2_8
Definition: meshPacketFlags.h:427
volatile bool Reserved1_8
Definition: meshPacketFlags.h:418
MeshFrameControl(uint8_t raw)
Definition: meshPacketFlags.h:39
volatile bool Reserved2_1
Definition: meshPacketFlags.h:420
char * SSID_ptr
Pointer to network name (SSID). If node is not connected to any network, NULL is set.
Definition: meshPacketFlags.h:478
volatile bool ACKRequired
True, when destination node has to send acknowledgement.
Definition: meshPacketFlags.h:118
volatile bool SendSSID
If set to true, response has to contain SSID if set.
Definition: meshPacketFlags.h:255
volatile bool RespondBackupGatewayNode
If set to true, backup gateway nodes has to respond.
Definition: meshPacketFlags.h:236
MeshPingFlags(uint16_t raw)
Definition: meshPacketFlags.h:397
#define IS_VALID_MESH_ADDRESS(address)
Checks if mesh address is valid. Accepted values from 0 to MAX_MESH_ADDRESS.
Definition: meshConfig.h:82
bool ContainsToAddress() const
Check if frame with current control frame has to contain To address field.
Definition: meshPacketFlags.h:151
bool IsCarriageFrame() const
Checks, if frame is part of carriage.
Definition: meshPacketFlags.h:81
Structure that represents MeshNet version. Real size of this class is always 2 bytes.
Definition: meshHelper.h:310
MeshNodeDescFlags(uint16_t raw)
Definition: meshPacketFlags.h:323
volatile bool Reserved1_3
Definition: meshPacketFlags.h:335
void Clear()
Clears frame control flags to it's default values.
Definition: meshPacketFlags.h:279
Network scan request flags.
Definition: meshPacketFlags.h:187
volatile bool Reserved2_2
Definition: meshPacketFlags.h:343