Compare commits

..
2 Commits
Author SHA1 Message Date
jlehmann 3a8764dcb4 avoid recursion 2020-06-06 19:34:47 +02:00
jlehmann 57d795c36b 20200605 2020-06-06 08:37:28 +02:00
2 changed files with 22 additions and 11 deletions
+21 -10
View File
@@ -110,6 +110,7 @@ long iteration = 0; // what iteration number do we have, starts with 0
long package_counter = 0; // sent package counter long package_counter = 0; // sent package counter
bool send_in_progress = false; bool send_in_progress = false;
bool stop_iterations = false; bool stop_iterations = false;
bool start_new_iteration = false;
bool next_package_is_init_package = true; bool next_package_is_init_package = true;
uint32_t gRebootMs; uint32_t gRebootMs;
@@ -374,6 +375,9 @@ void setup_uplink(void)
void loop() void loop()
{ {
gCatena.poll(); gCatena.poll();
if (start_new_iteration) {
StartNewIteration();
}
} }
void ClearLoraData(void) void ClearLoraData(void)
@@ -498,7 +502,7 @@ uint8_t GetVBatValue(int millivolts)
void DoDeepSleep(uint32_t sleep_time) void DoDeepSleep(uint32_t sleep_time)
{ {
if (config_data.debug_level > 0) { if (config_data.debug_level > 0) {
gCatena.SafePrintf("DoDeepSleep, now going to deep sleep\n"); gCatena.SafePrintf("DoDeepSleep, now going to deep sleep, millis: %d\n",millis());
} }
// Prepare Deep Sleep // Prepare Deep Sleep
@@ -515,7 +519,7 @@ void DoDeepSleep(uint32_t sleep_time)
deepSleepRecovery(); deepSleepRecovery();
if (config_data.debug_level > 0) { if (config_data.debug_level > 0) {
gCatena.SafePrintf("done with deep sleep\n"); gCatena.SafePrintf("done with deep sleep, millis: %d\n",millis());
} }
} }
@@ -616,6 +620,7 @@ void ReadSensors(SENSOR_data &sensor_data) {
} }
void StartNewIteration() { void StartNewIteration() {
start_new_iteration = false;
uint32_t wait_time; uint32_t wait_time;
wait_time = 0; wait_time = 0;
@@ -760,13 +765,14 @@ void StartNewIteration() {
if (config_data.debug_level > 0) { if (config_data.debug_level > 0) {
gCatena.SafePrintf("LMIC.opmode just before Sleeping: %#x\n", LMIC.opmode); gCatena.SafePrintf("LMIC.opmode just before Sleeping: %#x\n", LMIC.opmode);
gCatena.SafePrintf("LMIC.globalDutyRate: %d, LMIC.globalDutyAvail: %d\n", LMIC.globalDutyRate, LMIC.globalDutyAvail ); gCatena.SafePrintf("LMIC.globalDutyRate: %d, LMIC.globalDutyAvail: %d, os_getTime: %d\n", LMIC.globalDutyRate, LMIC.globalDutyAvail, os_getTime());
gCatena.SafePrintf("LMIC.seqnoUp: %d, LMIC.seqnoDn: %d\n",LMIC.seqnoUp, LMIC.seqnoDn);
} }
if (!fUsbPower) { if (!fUsbPower) {
DoDeepSleep(sleep_time_sec); DoDeepSleep(sleep_time_sec);
if (! stop_iterations) { if (! stop_iterations) {
StartNewIteration(); start_new_iteration = true;
} }
} }
@@ -815,28 +821,33 @@ void startSendingUplink(bool firstTime)
package_counter++; package_counter++;
if (config_data.debug_level > 0) { if (config_data.debug_level > 0) {
gCatena.SafePrintf("LMIC.opmode just after SendBuffer (successful): %#x\n", LMIC.opmode); gCatena.SafePrintf("LMIC.opmode just after SendBuffer (successful): %#x\n", LMIC.opmode);
gCatena.SafePrintf("LMIC.globalDutyRate: %d, LMIC.globalDutyAvail: %d\n", LMIC.globalDutyRate, LMIC.globalDutyAvail ); gCatena.SafePrintf("LMIC.globalDutyRate: %d, LMIC.globalDutyAvail: %d, os_getTime: %d\n", LMIC.globalDutyRate, LMIC.globalDutyAvail, os_getTime());
gCatena.SafePrintf("LMIC.seqnoUp: %d, LMIC.seqnoDn: %d\n",LMIC.seqnoUp, LMIC.seqnoDn);
} }
} }
else { else {
gCatena.SafePrintf("LMIC.opmode just before SendBuffer (failed): %#x\n", LMIC.opmode); gCatena.SafePrintf("LMIC.opmode just before SendBuffer (failed): %#x\n", LMIC.opmode);
gCatena.SafePrintf("LMIC.globalDutyRate: %d, LMIC.globalDutyAvail: %d\n", LMIC.globalDutyRate, LMIC.globalDutyAvail ); gCatena.SafePrintf("LMIC.globalDutyRate: %d, LMIC.globalDutyAvail: %d, os_getTime: %d\n", LMIC.globalDutyRate, LMIC.globalDutyAvail, os_getTime());
gCatena.SafePrintf("LMIC.seqnoUp: %d, LMIC.seqnoDn: %d\n",LMIC.seqnoUp, LMIC.seqnoDn);
} }
} else { } else {
if (config_data.debug_level > 0) { if (config_data.debug_level > 0) {
gCatena.SafePrintf("LMIC.opmode just before SendBuffer: %#x\n", LMIC.opmode); gCatena.SafePrintf("LMIC.opmode just before SendBuffer: %#x\n", LMIC.opmode);
gCatena.SafePrintf("LMIC.globalDutyRate: %d, LMIC.globalDutyAvail: %d\n", LMIC.globalDutyRate, LMIC.globalDutyAvail ); gCatena.SafePrintf("LMIC.globalDutyRate: %d, LMIC.globalDutyAvail: %d, os_getTime: %d\n", LMIC.globalDutyRate, LMIC.globalDutyAvail, os_getTime());
gCatena.SafePrintf("LMIC.seqnoUp: %d, LMIC.seqnoDn: %d\n",LMIC.seqnoUp, LMIC.seqnoDn);
gCatena.SafePrintf("SendBuffer not firstTime\n"); gCatena.SafePrintf("SendBuffer not firstTime\n");
} }
if (gLoRaWAN.SendBuffer((uint8_t*)&lora_data, sizeof(LORA_data), sendBufferDoneCb, NULL, fConfirmed, kUplinkPort)) { if (gLoRaWAN.SendBuffer((uint8_t*)&lora_data, sizeof(LORA_data), sendBufferDoneCb, NULL, fConfirmed, kUplinkPort)) {
package_counter++; package_counter++;
if (config_data.debug_level > 0) { if (config_data.debug_level > 0) {
gCatena.SafePrintf("LMIC.opmode just after SendBuffer (successful): %#x\n", LMIC.opmode); gCatena.SafePrintf("LMIC.opmode just after SendBuffer (successful): %#x\n", LMIC.opmode);
gCatena.SafePrintf("LMIC.globalDutyRate: %d, LMIC.globalDutyAvail: %d\n", LMIC.globalDutyRate, LMIC.globalDutyAvail ); gCatena.SafePrintf("LMIC.globalDutyRate: %d, LMIC.globalDutyAvail: %d, os_getTime: %d\n", LMIC.globalDutyRate, LMIC.globalDutyAvail, os_getTime());
gCatena.SafePrintf("LMIC.seqnoUp: %d, LMIC.seqnoDn: %d\n",LMIC.seqnoUp, LMIC.seqnoDn);
} }
} else { } else {
gCatena.SafePrintf("LMIC.opmode just before SendBuffer (failed): %#x\n", LMIC.opmode); gCatena.SafePrintf("LMIC.opmode just before SendBuffer (failed): %#x\n", LMIC.opmode);
gCatena.SafePrintf("LMIC.globalDutyRate: %d, LMIC.globalDutyAvail: %d\n", LMIC.globalDutyRate, LMIC.globalDutyAvail ); gCatena.SafePrintf("LMIC.globalDutyRate: %d, LMIC.globalDutyAvail: %d, os_getTime: %d\n", LMIC.globalDutyRate, LMIC.globalDutyAvail, os_getTime());
gCatena.SafePrintf("LMIC.seqnoUp: %d, LMIC.seqnoDn: %d\n",LMIC.seqnoUp, LMIC.seqnoDn);
} }
} }
@@ -969,7 +980,7 @@ static void startNewIterationCb(osjob_t* pJob)
} }
if (! stop_iterations) { if (! stop_iterations) {
StartNewIteration(); start_new_iteration = true;
} }
} }
+1 -1
View File
@@ -56,7 +56,7 @@ enum {
| |
\****************************************************************************/ \****************************************************************************/
static const int32_t fwVersion = 20200604; static const int32_t fwVersion = 20200606;
static const byte INIT_PACKAGE_INTERVAL = 100; // send an init package every 100 packages; static const byte INIT_PACKAGE_INTERVAL = 100; // send an init package every 100 packages;
static const byte MAX_VALUES_TO_SEND = 8; static const byte MAX_VALUES_TO_SEND = 8;