added persistent nodeList

This commit is contained in:
coelner 2021-06-28 22:05:22 +02:00
parent 20ae2ef677
commit 00e6fc9cde

View File

@ -24,11 +24,29 @@ typedef struct {
uint8_t messageID[20];
char code = 'g'; // [g, y, r, X]
bool batteryWarning = false; //ToDo not implemented yet
uint8_t originMAC[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
uint8_t originMAC[6] = {0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
} rm370;
//version 1.0
typedef struct node {
uint8_t mac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
char identifier[20] = { ' ', 'e', 's', ' ', 'd', 'e', 'v', 'i', 'c', 'e', '1', '2', '3', '4', ' ', ' ', ' ', ' ', ' ', '\0' };
};
//EA:DB:84:D1:21:66 Dashboard
//EA:DB:84:D0:AB:34
//EA:DB:84:D0:E3:5C
rm370 receiveBuffer[MAX_PEERS];
node nodeList[] = {
{ {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, { 'B', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', '\0', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '\0' } },
{ {0xEA, 0xDB, 0x84, 0xD1, 0x21, 0x66}, { 'D', 'a', 's', 'h', 'b', 'o', 'a', 'r', 'd', '\0', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '\0' } },
{ {0xEA, 0xDB, 0x84, 0xD0, 0xAB, 0x34}, { 'T', 'e', 's', 't', 'd', 'e', 'v', 'i', 'c', 'e', '2', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '\0' } },
{ {0xEA, 0xDB, 0x84, 0xD0, 0xE3, 0x5C}, { 'T', 'e', 's', 't', 'd', 'e', 'v', 'i', 'c', 'e', '3', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '\0' } },
// { {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, { 'T', 'e', 's', 't', 'd', 'e', 'v', 'i', 'c', 'e', '4', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '\0' } },
// { {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, { 'T', 'e', 's', 't', 'd', 'e', 'v', 'i', 'c', 'e', '5', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '\0' } },
// { {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, { 'T', 'e', 's', 't', 'd', 'e', 'v', 'i', 'c', 'e', '6', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '\0' } },
};
Ticker globalStatusTicker;
volatile unsigned long globalStart = 0; //real physics workaround
@ -56,16 +74,17 @@ void globalStatus() {
return;
}
DEBUGLOG("available Peers:");
WifiEspNowPeerInfo peers[MAX_PEERS];
int nPeers = std::min(WifiEspNow.listPeers(peers, MAX_PEERS), MAX_PEERS);
//WifiEspNowPeerInfo peers[MAX_PEERS];
//int nPeers = std::min(WifiEspNow.listPeers(peers, MAX_PEERS), MAX_PEERS);
int nPeers = sizeof(nodeList)/sizeof(node);
for (int i = 0; i < nPeers; ++i) {
byte loopPointer = (rxCounter - 1 >= 0) ? (rxCounter - 1) : MAX_PEERS - 1;
LOG(" %02X:%02X:%02X:%02X:%02X:%02X", peers[i].mac[0], peers[i].mac[1], peers[i].mac[2], peers[i].mac[3], peers[i].mac[4], peers[i].mac[5]);
LOG(" %02X:%02X:%02X:%02X:%02X:%02X | %s", nodeList[i].mac[0], nodeList[i].mac[1], nodeList[i].mac[2], nodeList[i].mac[3], nodeList[i].mac[4], nodeList[i].mac[5], nodeList[i].identifier);
//walk backwards through the buffer to get the latest message
while (loopPointer != rxCounter)
{
//DEBUGLOG("rxCounter | loopPointer: %d|%d", rxCounter, loopPointer);
int ret = memcmp(&receiveBuffer[loopPointer].originMAC[0], &peers[i].mac, sizeof(receiveBuffer[loopPointer].originMAC));
int ret = memcmp(&receiveBuffer[loopPointer].originMAC[0], &nodeList[i].mac, sizeof(receiveBuffer[loopPointer].originMAC));
if (ret == 0) {
LOG("\tStatus: %c | BatWarn: %c", receiveBuffer[loopPointer].code, (receiveBuffer[loopPointer].batteryWarning) ? '!' : '.');
loopPointer = rxCounter + 1;
@ -82,6 +101,7 @@ void globalStatus() {
}
void setup() {
//prefillNodeList();
Serial.begin(115200);
Serial.flush();
delay(1000);