add delay after wakeup of deep sleep; add command calibrate_scales

This commit is contained in:
Joerg Lehmann 2020-06-08 14:29:34 +02:00
parent 3a8764dcb4
commit f0b4b0d286
2 changed files with 24 additions and 2 deletions

View File

@ -60,6 +60,7 @@ cCommandStream::CommandFn cmdGetScaleA;
cCommandStream::CommandFn cmdGetScaleB; cCommandStream::CommandFn cmdGetScaleB;
cCommandStream::CommandFn cmdCalibrateZeroScaleA; cCommandStream::CommandFn cmdCalibrateZeroScaleA;
cCommandStream::CommandFn cmdCalibrateZeroScaleB; cCommandStream::CommandFn cmdCalibrateZeroScaleB;
cCommandStream::CommandFn cmdCalibrateScales;
cCommandStream::CommandFn cmdCalibrateScaleA; cCommandStream::CommandFn cmdCalibrateScaleA;
cCommandStream::CommandFn cmdCalibrateScaleB; cCommandStream::CommandFn cmdCalibrateScaleB;
cCommandStream::CommandFn cmdSetDebugLevel; cCommandStream::CommandFn cmdSetDebugLevel;
@ -72,6 +73,7 @@ static const cCommandStream::cEntry sMyExtraCommmands[] =
{ "hello", cmdHello }, { "hello", cmdHello },
{ "get_calibration_settings", cmdGetCalibrationSettings }, { "get_calibration_settings", cmdGetCalibrationSettings },
{ "get_sensor_readings", cmdGetSensorReadings }, { "get_sensor_readings", cmdGetSensorReadings },
{ "calibrate_scales", cmdCalibrateScales },
{ "calibrate_zero_scale_a", cmdCalibrateZeroScaleA }, { "calibrate_zero_scale_a", cmdCalibrateZeroScaleA },
{ "calibrate_zero_scale_b", cmdCalibrateZeroScaleB }, { "calibrate_zero_scale_b", cmdCalibrateZeroScaleB },
{ "calibrate_scale_a", cmdCalibrateScaleA }, { "calibrate_scale_a", cmdCalibrateScaleA },
@ -970,6 +972,8 @@ void deepSleepRecovery(void)
SPI.begin(); SPI.begin();
if (fFlash) if (fFlash)
gSPI2.begin(); gSPI2.begin();
// we wait 100 milliseconds after wakeup...
delay(100);
} }
@ -1113,7 +1117,6 @@ cCommandStream::CommandStatus cmdHello(cCommandStream * pThis, void *pContext, i
return cCommandStream::CommandStatus::kSuccess; return cCommandStream::CommandStatus::kSuccess;
} }
cCommandStream::CommandStatus cmdGetCalibrationSettings(cCommandStream * pThis, void *pContext, int argc, char **argv) cCommandStream::CommandStatus cmdGetCalibrationSettings(cCommandStream * pThis, void *pContext, int argc, char **argv)
{ {
pThis->printf("{\n"); pThis->printf("{\n");
@ -1178,6 +1181,25 @@ cCommandStream::CommandStatus cmdCalibrateZeroScaleB(cCommandStream * pThis, voi
return cCommandStream::CommandStatus::kSuccess; return cCommandStream::CommandStatus::kSuccess;
} }
cCommandStream::CommandStatus cmdCalibrateScales(cCommandStream * pThis, void *pContext, int argc, char **argv)
{
String s_cal_w1_0(argv[1]);
String s_cal_w1_factor(argv[2]);
String s_cal_w2_0(argv[3]);
String s_cal_w2_factor(argv[4]);
config_data.cal_w1_0 = s_cal_w1_0.toInt();
config_data.cal_w1_factor = s_cal_w1_factor.toFloat();
config_data.cal_w2_0 = s_cal_w2_0.toInt();
config_data.cal_w2_factor = s_cal_w2_factor.toFloat();
gCatena.getFram()->saveField(cFramStorage::kAppConf, (const uint8_t *)&config_data, sizeof(config_data));
pThis->printf("{ \"msg\": \"calibrate_scales was successful\" }\n");
return cCommandStream::CommandStatus::kSuccess;
}
cCommandStream::CommandStatus cmdCalibrateScaleA(cCommandStream * pThis, void *pContext, int argc, char **argv) cCommandStream::CommandStatus cmdCalibrateScaleA(cCommandStream * pThis, void *pContext, int argc, char **argv)
{ {
String w1_gramm(argv[1]); String w1_gramm(argv[1]);

View File

@ -56,7 +56,7 @@ enum {
| |
\****************************************************************************/ \****************************************************************************/
static const int32_t fwVersion = 20200606; static const int32_t fwVersion = 20200608;
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;