43 lines
1.3 KiB
C++
43 lines
1.3 KiB
C++
#ifndef WLED_NODESTRUCT_H
|
|
#define WLED_NODESTRUCT_H
|
|
|
|
/*********************************************************************************************\
|
|
* NodeStruct from the ESP Easy project (https://github.com/letscontrolit/ESPEasy)
|
|
\*********************************************************************************************/
|
|
|
|
#include <map>
|
|
#include <IPAddress.h>
|
|
|
|
#define NODE_TYPE_ID_UNDEFINED 0
|
|
#define NODE_TYPE_ID_ESP8266 82 // should be 1
|
|
#define NODE_TYPE_ID_ESP32 32 // should be 2
|
|
#define NODE_TYPE_ID_ESP32S2 33 // etc
|
|
#define NODE_TYPE_ID_ESP32S3 34
|
|
#define NODE_TYPE_ID_ESP32C3 35
|
|
|
|
/*********************************************************************************************\
|
|
* NodeStruct
|
|
\*********************************************************************************************/
|
|
struct NodeStruct
|
|
{
|
|
String nodeName;
|
|
IPAddress ip;
|
|
uint8_t age;
|
|
union {
|
|
uint8_t nodeType; // a waste of space as we only have 5 types
|
|
struct {
|
|
uint8_t type : 7; // still a waste of space (4 bits would be enough and future-proof)
|
|
bool on : 1;
|
|
};
|
|
};
|
|
uint32_t build;
|
|
|
|
NodeStruct() : age(0), nodeType(0), build(0)
|
|
{
|
|
for (uint8_t i = 0; i < 4; ++i) { ip[i] = 0; }
|
|
}
|
|
};
|
|
typedef std::map<uint8_t, NodeStruct> NodesMap;
|
|
|
|
#endif // WLED_NODESTRUCT_H
|