mirror of
https://github.com/lumapu/ahoy.git
synced 2025-05-19 03:46:11 +02:00
Merge branch 'main' into main
This commit is contained in:
commit
e0800bd87e
7 changed files with 54 additions and 31 deletions
|
@ -157,6 +157,8 @@ void app::loop(void) {
|
|||
//app_loops++;
|
||||
Main::loop();
|
||||
|
||||
mSys->Radio.loop();
|
||||
|
||||
if(checkTicker(&mRxTicker, 5)) {
|
||||
//DPRINTLN(F("app_loops =") + String(app_loops));
|
||||
//app_loops=0;
|
||||
|
@ -195,6 +197,7 @@ void app::loop(void) {
|
|||
}
|
||||
|
||||
mSys->BufCtrl.popBack();
|
||||
yield();
|
||||
}
|
||||
|
||||
|
||||
|
@ -319,6 +322,7 @@ bool app::buildPayload(uint8_t id) {
|
|||
else
|
||||
crc = crc16(mPayload[id].data[i], mPayload[id].len[i], crc);
|
||||
}
|
||||
yield();
|
||||
}
|
||||
if(crc == crcRcv)
|
||||
return true;
|
||||
|
@ -353,7 +357,7 @@ void app::processPayload(bool retransmit) {
|
|||
else
|
||||
mSys->Radio.sendTimePacket(iv->radioId.u64, mPayload[iv->id].ts);
|
||||
}
|
||||
mSys->Radio.switchRxCh(100);
|
||||
mSys->Radio.switchRxCh(300);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -364,6 +368,7 @@ void app::processPayload(bool retransmit) {
|
|||
for(uint8_t i = 0; i < (mPayload[iv->id].maxPackId); i ++) {
|
||||
memcpy(&payload[offs], mPayload[iv->id].data[i], (mPayload[iv->id].len[i]));
|
||||
offs += (mPayload[iv->id].len[i]);
|
||||
yield();
|
||||
}
|
||||
offs-=2;
|
||||
if(mSerialDebug) {
|
||||
|
@ -379,6 +384,7 @@ void app::processPayload(bool retransmit) {
|
|||
}
|
||||
}
|
||||
}
|
||||
yield();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -650,6 +656,7 @@ void app::showLiveData(void) {
|
|||
}
|
||||
}
|
||||
modHtml += "</div>";
|
||||
yield();
|
||||
}
|
||||
modHtml += F("<div class=\"ts\">Last received data requested at: ") + getDateTimeStr(iv->ts) + F("</div>");
|
||||
modHtml += F("</div>");
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
// time during the ESP will act as access point on connection failure (to
|
||||
// station) in seconds
|
||||
#define WIFI_AP_ACTIVE_TIME 3*60
|
||||
#define WIFI_AP_ACTIVE_TIME 60
|
||||
|
||||
// default device name
|
||||
#define DEF_DEVICE_NAME "AHOY-DTU"
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
//-------------------------------------
|
||||
#define VERSION_MAJOR 0
|
||||
#define VERSION_MINOR 4
|
||||
#define VERSION_PATCH 13
|
||||
#define VERSION_PATCH 14
|
||||
|
||||
|
||||
//-------------------------------------
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
#define DUMMY_RADIO_ID ((uint64_t)0xDEADBEEF01ULL)
|
||||
|
||||
#define RX_CHANNELS 5
|
||||
#define RX_LOOP_CNT 400
|
||||
#define RX_LOOP_CNT 600
|
||||
|
||||
|
||||
const char* const rf24AmpPower[] = {"MIN", "LOW", "HIGH", "MAX"};
|
||||
|
||||
|
@ -70,6 +71,7 @@ class HmRadio {
|
|||
mSendCnt = 0;
|
||||
|
||||
mSerialDebug = false;
|
||||
mIrqRcvd = false;
|
||||
}
|
||||
~HmRadio() {}
|
||||
|
||||
|
@ -107,32 +109,40 @@ class HmRadio {
|
|||
}
|
||||
}
|
||||
|
||||
void handleIntr(void) {
|
||||
DPRINTLN(F("hmRadio.h:handleIntr"));
|
||||
uint8_t pipe, len;
|
||||
packet_t *p;
|
||||
|
||||
void loop(void) {
|
||||
DISABLE_IRQ;
|
||||
while(mNrf24.available(&pipe)) {
|
||||
if(!mBufCtrl->full()) {
|
||||
p = mBufCtrl->getFront();
|
||||
memset(p->packet, 0xcc, MAX_RF_PAYLOAD_SIZE);
|
||||
p->rxCh = mRxChLst[mRxChIdx];
|
||||
len = mNrf24.getPayloadSize();
|
||||
if(len > MAX_RF_PAYLOAD_SIZE)
|
||||
len = MAX_RF_PAYLOAD_SIZE;
|
||||
if(mIrqRcvd) {
|
||||
mIrqRcvd = false;
|
||||
bool tx_ok, tx_fail, rx_ready;
|
||||
mNrf24.whatHappened(tx_ok, tx_fail, rx_ready); // resets the IRQ pin to HIGH
|
||||
RESTORE_IRQ;
|
||||
uint8_t pipe, len;
|
||||
packet_t *p;
|
||||
while(mNrf24.available(&pipe)) {
|
||||
if(!mBufCtrl->full()) {
|
||||
p = mBufCtrl->getFront();
|
||||
p->rxCh = mRxChLst[mRxChIdx];
|
||||
len = mNrf24.getPayloadSize();
|
||||
if(len > MAX_RF_PAYLOAD_SIZE)
|
||||
len = MAX_RF_PAYLOAD_SIZE;
|
||||
|
||||
mNrf24.read(p->packet, len);
|
||||
mBufCtrl->pushFront(p);
|
||||
}
|
||||
else {
|
||||
bool tx_ok, tx_fail, rx_ready;
|
||||
mNrf24.whatHappened(tx_ok, tx_fail, rx_ready); // reset interrupt status
|
||||
mNrf24.flush_rx(); // drop the packet
|
||||
break;
|
||||
mNrf24.read(p->packet, len);
|
||||
mBufCtrl->pushFront(p);
|
||||
}
|
||||
else {
|
||||
mNrf24.flush_rx(); // drop the packet
|
||||
break;
|
||||
}
|
||||
yield();
|
||||
}
|
||||
}
|
||||
RESTORE_IRQ;
|
||||
else
|
||||
RESTORE_IRQ;
|
||||
}
|
||||
|
||||
void handleIntr(void) {
|
||||
DPRINTLN(F("hmRadio.h:handleIntr"));
|
||||
mIrqRcvd = true;
|
||||
}
|
||||
|
||||
uint8_t getDefaultChannel(void) {
|
||||
|
@ -196,6 +206,7 @@ class HmRadio {
|
|||
bool switchRxCh(uint8_t addLoop = 0) {
|
||||
//DPRINTLN(F("hmRadio.h:switchRxCh"));
|
||||
//DPRINT(F("R"));
|
||||
|
||||
mRxLoopCnt += addLoop;
|
||||
if(mRxLoopCnt != 0) {
|
||||
mRxLoopCnt--;
|
||||
|
@ -278,6 +289,7 @@ class HmRadio {
|
|||
}
|
||||
|
||||
uint8_t getRxNxtChannel(void) {
|
||||
|
||||
if(++mRxChIdx >= RX_CHANNELS)
|
||||
mRxChIdx = 0;
|
||||
return mRxChLst[mRxChIdx];
|
||||
|
@ -288,12 +300,15 @@ class HmRadio {
|
|||
//uint8_t mTxChIdx;
|
||||
|
||||
uint8_t mRxChLst[RX_CHANNELS];
|
||||
|
||||
uint8_t mRxChIdx;
|
||||
uint16_t mRxLoopCnt;
|
||||
|
||||
RF24 mNrf24;
|
||||
BUFFER *mBufCtrl;
|
||||
uint8_t mTxBuf[MAX_RF_PAYLOAD_SIZE];
|
||||
|
||||
volatile bool mIrqRcvd;
|
||||
};
|
||||
|
||||
#endif /*__RADIO_H__*/
|
||||
|
|
|
@ -38,8 +38,8 @@ class HmSystem {
|
|||
p->id = mNumInv;
|
||||
p->serial.u64 = serial;
|
||||
memcpy(p->chMaxPwr, chMaxPwr, (4*2));
|
||||
DPRINT("SERIAL: " + String(p->serial.b[5], HEX));
|
||||
DPRINTLN(" " + String(p->serial.b[4], HEX));
|
||||
//DPRINT("SERIAL: " + String(p->serial.b[5], HEX));
|
||||
//DPRINTLN(" " + String(p->serial.b[4], HEX));
|
||||
if(p->serial.b[5] == 0x11) {
|
||||
switch(p->serial.b[4]) {
|
||||
case 0x21: p->type = INV_TYPE_1CH; break;
|
||||
|
|
|
@ -108,10 +108,10 @@ void Main::loop(void) {
|
|||
}
|
||||
}
|
||||
|
||||
if(++mHeapStatCnt >= 10) {
|
||||
/*if(++mHeapStatCnt >= 10) {
|
||||
mHeapStatCnt = 0;
|
||||
stats();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,8 @@ class mqtt {
|
|||
|
||||
if(!mClient->connected())
|
||||
reconnect();
|
||||
mClient->publish(top, msg);
|
||||
if(mClient->connected())
|
||||
mClient->publish(top, msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue