Upload files to "/"

This commit is contained in:
avery.babka 2025-07-25 14:06:28 -05:00
parent da8e241e53
commit 73e466e181
5 changed files with 268 additions and 0 deletions

35
QueueLib.h Normal file
View File

@ -0,0 +1,35 @@
// Queue Access Library
// 081723 DS
#ifndef QueueLib
#define QueueLib
// queue for incoming at200 data.. outgoing to cloud 18 byte record
#define at_QSIZ 500
typedef struct AT200Q
{
uint32_t serial;
uint8_t chan;
uint8_t batt;
uint8_t type;
uint8_t stat;
uint16_t ver;
uint16_t rssi;
uint16_t data;
uint32_t etime;
};
AT200Q at_QTempData;
uint8_t QueueLibVB = 0; // if = 1, turn on Serial prints
// Function Prototypes
void atQ_push(void);
void atQ_pull_FIFO(void);
void atQ_pull_LIFO(void);
uint16_t atQ_size(void);
void atQ_flush(void);
#endif

116
QueueLib.ino Normal file
View File

@ -0,0 +1,116 @@
// Queue Access Library
// 081723 DS
#include "QueueLib.h"
AT200Q at_Q[at_QSIZ];
uint16_t at_Qhead = 0;
uint16_t at_Qtail = 0;
//*******************************************************
//
//*******************************************************
void atQ_push(void) // load tempdata struct first.. pointer sits on next one to add
{
/*
at_Q[at_Qhead].serial = at_QTempData.serial;
at_Q[at_Qhead].chan = at_QTempData.chan;
at_Q[at_Qhead].type = at_QTempData.type;
at_Q[at_Qhead].stat = at_QTempData.stat;
at_Q[at_Qhead].ver = at_QTempData.ver;
at_Q[at_Qhead].rssi = at_QTempData.rssi;
at_Q[at_Qhead].data = at_QTempData.data;
at_Q[at_Qhead].etime = getEpochRtc();
*/
at_Q[at_Qhead] = at_QTempData;
if (++at_Qhead >= at_QSIZ)
at_Qhead = 0; // if at end then wrap
if (at_Qhead == at_Qtail)
at_Qtail++; // if hit other pointer then we full
if (at_Qtail == at_QSIZ)
at_Qtail = 0; // if at end then wrap
if (QueueLibVB)
Serial.printf("Qsize %d\n", atQ_size());
}
//*******************************************************
//
//*******************************************************
void atQ_pull_FIFO(void) // dumps into tempdata struct pointer sits on next on to pull
{
/*
at_QTempData.serial = at_Q[at_Qtail].serial;
at_QTempData.type = at_Q[at_Qtail].type;
at_QTempData.stat = at_Q[at_Qtail].stat;
at_QTempData.chan = at_Q[at_Qtail].chan;
at_QTempData.ver = at_Q[at_Qtail].ver;
at_QTempData.rssi = at_Q[at_Qtail].rssi;
at_QTempData.data = at_Q[at_Qtail].data;
at_QTempData.etime = at_Q[at_Qtail].etime;
*/
at_QTempData = at_Q[at_Qtail];
if (++at_Qtail == at_QSIZ)
at_Qtail = 0; // if at end then wrap
}
//*******************************************************
//
//*******************************************************
void atQ_pull_LIFO(void) // dumps into tempdata struct pointer sits on next on to pull
{
if (at_Qhead == at_Qtail)
return;
// must have wraped on last push
if (at_Qhead == 0)
at_Qhead = (at_QSIZ - 1);
else
at_Qhead--;
at_QTempData = at_Q[at_Qhead]; // copy it
/*
at_QTempData.serial = at_Q[at_Qhead].serial;
at_QTempData.type = at_Q[at_Qhead].type;
at_QTempData.stat = at_Q[at_Qhead].stat;
at_QTempData.chan = at_Q[at_Qhead].chan;
at_QTempData.ver = at_Q[at_Qhead].ver;
at_QTempData.rssi = at_Q[at_Qhead].rssi;
at_QTempData.data = at_Q[at_Qhead].data;
at_QTempData.etime = at_Q[at_Qhead].etime;
*/
if (QueueLibVB)
Serial.printf("PULL LIFO : H: %d T: %d\n", at_Qhead, at_Qtail);
}
//*******************************************************
//
//*******************************************************
uint16_t atQ_size(void)
{
if (at_Qhead >= at_Qtail)
return (at_Qhead - at_Qtail);
else
return ((at_QSIZ - at_Qtail) + at_Qhead);
}
//*******************************************************
//
//*******************************************************
void atQ_flush(void)
{
memset(at_Q, 0, sizeof(at_Q));
at_Qhead = at_Qtail = 0;
}

23
Queue_ADI.h Normal file
View File

@ -0,0 +1,23 @@
#ifndef Queue_ADI
#define Queue_ADI
//queue for incoming at200 data.. outgoing to cloud 18 byte record
#define at_QSIZ 500
struct AT200Q
{
long serial;
byte chan;
byte batt;
byte type;
byte stat;
int ver;
int rssi;
int data;
uint32_t etime;
} at_Q[at_QSIZ], at_Qtempdata;
int at_Qhead = 0;
int at_Qtail = 0;
#endif

93
Queue_ADI.ino Normal file
View File

@ -0,0 +1,93 @@
#include "QueueLib.h"
// Project specific Queue access functions
void pushCheckin(void)
{
at_QTempData.serial = parm[64];
at_QTempData.chan = 0;
at_QTempData.ver = parm[14];
at_QTempData.type = 35;
at_QTempData.rssi = getWifiRSSI();
at_QTempData.data = (int)(voltageNow * 100);
at_QTempData.etime = getEpochRtc();
Serial.println("Pushing Voltage to Queue");
atQ_push();
}
void pushDoorStatus(void)
{
at_QTempData.ver = parm[14];
at_QTempData.serial = parm[64];
at_QTempData.chan = 1;
at_QTempData.type = 51;
at_QTempData.rssi = getWifiRSSI();
at_QTempData.data = doorState;
at_QTempData.etime = getEpochRtc();
Serial.println("Push Door Status to Queue");
atQ_push();
at_QTempData.ver = parm[14];
at_QTempData.serial = parm[64];
at_QTempData.chan = 2;
at_QTempData.type = 47;
at_QTempData.rssi = getWifiRSSI();
at_QTempData.data = motorGetPosition(0);
at_QTempData.etime = getEpochRtc();
Serial.println("Push Master Door Position to Queue");
atQ_push();
at_QTempData.ver = parm[14];
at_QTempData.serial = parm[64];
at_QTempData.chan = 3;
at_QTempData.type = 47;
at_QTempData.rssi = getWifiRSSI();
at_QTempData.data = motorGetPosition(1);
at_QTempData.etime = getEpochRtc();
Serial.println("Push Slave Door Position to Queue");
atQ_push();
// pushCheckin();
}
void pushNTP(uint32_t ep) // for testing to see how often NTP gets through
{
at_QTempData.ver = parm[14];
at_QTempData.serial = parm[64];
at_QTempData.chan = 99;
at_QTempData.type = 53;
at_QTempData.rssi = getWifiRSSI();
at_QTempData.data = ep;
at_QTempData.etime = getEpochRtc();
Serial.println("Push NTP to Queue");
atQ_push();
}
void pushMaxCurrents(void)
{
at_QTempData.ver = parm[14];
at_QTempData.serial = parm[64];
at_QTempData.chan = 4;
at_QTempData.type = 47;
at_QTempData.rssi = getWifiRSSI();
at_QTempData.data = getMaxCurrent(0);
at_QTempData.etime = getEpochRtc();
Serial.println("Push Max Current 0");
atQ_push();
at_QTempData.ver = parm[14];
at_QTempData.serial = parm[64];
at_QTempData.chan = 5;
at_QTempData.type = 47;
at_QTempData.rssi = getWifiRSSI();
at_QTempData.data = getMaxCurrent(1);
at_QTempData.etime = getEpochRtc();
Serial.println("Push Max Current 1");
atQ_push();
}

1
RF.h Normal file
View File

@ -0,0 +1 @@