Upload files to "/"
This commit is contained in:
parent
da8e241e53
commit
73e466e181
|
|
@ -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
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue