enhance calibration code

This commit is contained in:
Joerg Lehmann 2019-12-20 09:05:24 +01:00
parent 9830316e0d
commit 2a1e647fc2
2 changed files with 21 additions and 19 deletions

View File

@ -52,6 +52,7 @@ cCommandStream::CommandFn cmdCalibrateScaleA;
cCommandStream::CommandFn cmdCalibrateScaleB; cCommandStream::CommandFn cmdCalibrateScaleB;
cCommandStream::CommandFn cmdSetDebugLevel; cCommandStream::CommandFn cmdSetDebugLevel;
cCommandStream::CommandFn cmdGetDebugLevel; cCommandStream::CommandFn cmdGetDebugLevel;
cCommandStream::CommandFn cmdStopIterations;
// the individual commmands are put in this table // the individual commmands are put in this table
static const cCommandStream::cEntry sMyExtraCommmands[] = static const cCommandStream::cEntry sMyExtraCommmands[] =
@ -65,6 +66,7 @@ static const cCommandStream::cEntry sMyExtraCommmands[] =
{ "calibrate_scale_b", cmdCalibrateScaleB }, { "calibrate_scale_b", cmdCalibrateScaleB },
{ "set_debug_level", cmdSetDebugLevel }, { "set_debug_level", cmdSetDebugLevel },
{ "get_debug_level", cmdGetDebugLevel }, { "get_debug_level", cmdGetDebugLevel },
{ "stop_iterations", cmdStopIterations },
// other commands go here.... // other commands go here....
}; };
@ -95,6 +97,7 @@ SENSOR_data last_sensor_reading;
long iteration = 0; // what iteration number do we have, starts with 0 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 next_package_is_init_package = true; bool next_package_is_init_package = true;
// generic timer // generic timer
@ -706,10 +709,10 @@ void StartNewIteration() {
if (config_data.debug_level > 0) { if (config_data.debug_level > 0) {
gCatena.SafePrintf("%010d - startSendingUplink(), my_position: %d, iteration: %d, package_counter: %d\n", millis(), my_position, iteration, package_counter); gCatena.SafePrintf("%010d - startSendingUplink(), my_position: %d, iteration: %d, package_counter: %d\n", millis(), my_position, iteration, package_counter);
} }
// the first 5 packets are "Init-Packets" or each INIT_PACKAGE_INTERVAL ... // the first 12 packets are "Init-Packets" or each INIT_PACKAGE_INTERVAL ...
startSendingUplink(next_package_is_init_package); startSendingUplink(next_package_is_init_package);
next_package_is_init_package = ((iteration < 5) || ((package_counter % INIT_PACKAGE_INTERVAL) == 0)); next_package_is_init_package = ((iteration < 12) || ((package_counter % INIT_PACKAGE_INTERVAL) == 0));
if (config_data.debug_level > 1) { if (config_data.debug_level > 1) {
gLed.Set(LedPattern::TwoShort); gLed.Set(LedPattern::TwoShort);
} }
@ -743,8 +746,8 @@ void StartNewIteration() {
sleep_time_sec = 5; sleep_time_sec = 5;
} }
// for the first 5 iterations, we set the sleep time to 10 seconds only... // for the first 12 iterations, we set the sleep time to 10 seconds only...
if (iteration <= 5) { if (iteration <= 12) {
sleep_time_sec = 10; sleep_time_sec = 10;
} }
@ -816,6 +819,7 @@ void startSendingUplink(bool firstTime)
gLoRaWAN.SendBuffer((uint8_t*)&lora_data, sizeof(LORA_data), sendBufferDoneCb, NULL, fConfirmed, kUplinkPort); gLoRaWAN.SendBuffer((uint8_t*)&lora_data, sizeof(LORA_data), sendBufferDoneCb, NULL, fConfirmed, kUplinkPort);
package_counter++; package_counter++;
} }
ClearLoraData(); ClearLoraData();
} }
@ -879,6 +883,8 @@ static void settleDoneCb(
gCatena.SafePrintf("LMIC.dn2Dr: %i\n", LMIC.dn2Dr); gCatena.SafePrintf("LMIC.dn2Dr: %i\n", LMIC.dn2Dr);
gCatena.SafePrintf("LMIC.dn2Freq: %i\n", LMIC.dn2Freq); gCatena.SafePrintf("LMIC.dn2Freq: %i\n", LMIC.dn2Freq);
gCatena.SafePrintf("LMIC.rx1DrOffset: %i\n", LMIC.rx1DrOffset); gCatena.SafePrintf("LMIC.rx1DrOffset: %i\n", LMIC.rx1DrOffset);
gCatena.SafePrintf("LMIC.adrAckReq: %i\n", LMIC.adrAckReq);
gCatena.SafePrintf("LMIC.adrEnabled: %i\n", LMIC.adrEnabled);
// Terry ^^ // Terry ^^
} }
@ -915,7 +921,9 @@ static void startNewIterationCb(osjob_t* pJob)
gCatena.SafePrintf("%010d - startNewIterationCb\n", millis()); gCatena.SafePrintf("%010d - startNewIterationCb\n", millis());
} }
StartNewIteration(); if (! stop_iterations) {
StartNewIteration();
}
} }
static void receiveMessage(void *pContext, uint8_t port, const uint8_t *pMessage, size_t nMessage) static void receiveMessage(void *pContext, uint8_t port, const uint8_t *pMessage, size_t nMessage)
@ -977,18 +985,6 @@ static void receiveMessage(void *pContext, uint8_t port, const uint8_t *pMessage
} }
if (port == 1 && nMessage == 1) {
if (pMessage[0] == 0) {
if (config_data.debug_level > 0) {
gCatena.SafePrintf("reset both scales to zero\n");
}
ReadSensors(temp_sensor_data);
config_data.cal_w1_0 = temp_sensor_data.weight1;
config_data.cal_w2_0 = temp_sensor_data.weight2;
gCatena.getFram()->saveField(cFramStorage::kBme680Cal, (const uint8_t *)&config_data, sizeof(config_data));
}
}
if (port == 1 && nMessage == 17) { if (port == 1 && nMessage == 17) {
cal_w1_0 = 0; cal_w1_0 = 0;
cal_w1_0 += (long)pMessage[1] << 24; cal_w1_0 += (long)pMessage[1] << 24;
@ -1173,3 +1169,9 @@ cCommandStream::CommandStatus cmdGetDebugLevel(cCommandStream *pThis, void *pCon
return cCommandStream::CommandStatus::kSuccess; return cCommandStream::CommandStatus::kSuccess;
} }
cCommandStream::CommandStatus cmdStopIterations(cCommandStream *pThis, void *pContext, int argc, char **argv)
{
stop_iterations = true;
return cCommandStream::CommandStatus::kSuccess;
}

View File

@ -55,7 +55,7 @@ enum {
| |
\****************************************************************************/ \****************************************************************************/
static const int32_t fwVersion = 20191214; static const int32_t fwVersion = 20191220;
// wait between samples // wait between samples
// 3 sec is a good delay so that load cell did not warm up // 3 sec is a good delay so that load cell did not warm up