Compare commits

...
3 Commits
Author SHA1 Message Date
jlehmann 22982235fb do not send on first position 2020-06-08 20:40:57 +02:00
jlehmann 23de8b8f4b use SF12 for initial Join 2020-06-08 16:06:52 +02:00
jlehmann f0b4b0d286 add delay after wakeup of deep sleep; add command calibrate_scales 2020-06-08 14:29:34 +02:00
3 changed files with 27 additions and 5 deletions
+2 -2
View File
@@ -31,7 +31,7 @@ Das sind die verwendeten Libraries [1]:
| https://github.com/mcci-catena/SHT1x.git | be7042c | Tue, 20 Sep 2011 13:56:23 +1000 |
Patch arduino-lmic, so initial SF10 is used initially:
Patch arduino-lmic, so initial SF12 is used initially:
`
[joerg@cinnamon src]$ git diff
@@ -44,7 +44,7 @@ index efff7d5..74efb37 100644
#define LMICbandplan_isFSK() (/* RX datarate */LMIC.dndr == EU868_DR_FSK)
-#define LMICbandplan_getInitialDrJoin() (EU868_DR_SF7)
+#define LMICbandplan_getInitialDrJoin() (EU868_DR_SF10)
+#define LMICbandplan_getInitialDrJoin() (EU868_DR_SF12)
void LMICeu868_setBcnRxParams(void);
#define LMICbandplan_setBcnRxParams() LMICeu868_setBcnRxParams()
+24 -2
View File
@@ -60,6 +60,7 @@ cCommandStream::CommandFn cmdGetScaleA;
cCommandStream::CommandFn cmdGetScaleB;
cCommandStream::CommandFn cmdCalibrateZeroScaleA;
cCommandStream::CommandFn cmdCalibrateZeroScaleB;
cCommandStream::CommandFn cmdCalibrateScales;
cCommandStream::CommandFn cmdCalibrateScaleA;
cCommandStream::CommandFn cmdCalibrateScaleB;
cCommandStream::CommandFn cmdSetDebugLevel;
@@ -72,6 +73,7 @@ static const cCommandStream::cEntry sMyExtraCommmands[] =
{ "hello", cmdHello },
{ "get_calibration_settings", cmdGetCalibrationSettings },
{ "get_sensor_readings", cmdGetSensorReadings },
{ "calibrate_scales", cmdCalibrateScales },
{ "calibrate_zero_scale_a", cmdCalibrateZeroScaleA },
{ "calibrate_zero_scale_b", cmdCalibrateZeroScaleB },
{ "calibrate_scale_a", cmdCalibrateScaleA },
@@ -677,7 +679,7 @@ void StartNewIteration() {
// we send data the first time the system is started, when the array is full
// or when the weight has fallen more than threshold or the first measurement is
// more than one hour old (which should not happen :-) )
if ( (next_package_is_init_package) || (my_position >= MAX_VALUES_TO_SEND) || (abs(last_sensor_reading.weight - current_sensor_reading.weight) > SEND_DIFF_THRESHOLD_5GRAMS) || ((millis() - timer_pos0) > 3600000)) {
if ( (next_package_is_init_package) || (my_position >= MAX_VALUES_TO_SEND) || ((my_position > 1) && (abs(last_sensor_reading.weight - current_sensor_reading.weight) > SEND_DIFF_THRESHOLD_5GRAMS)) || ((millis() - timer_pos0) > 3600000)) {
lora_data.offset_last_reading = (uint8_t)((millis() - timer_pos0) / 1000 / 60);
if (config_data.debug_level > 0) {
gCatena.SafePrintf("startSendingUplink(), my_position: %d, iteration: %d, package_counter: %d\n", my_position, iteration, package_counter);
@@ -970,6 +972,8 @@ void deepSleepRecovery(void)
SPI.begin();
if (fFlash)
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;
}
cCommandStream::CommandStatus cmdGetCalibrationSettings(cCommandStream * pThis, void *pContext, int argc, char **argv)
{
pThis->printf("{\n");
@@ -1178,6 +1181,25 @@ cCommandStream::CommandStatus cmdCalibrateZeroScaleB(cCommandStream * pThis, voi
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)
{
String w1_gramm(argv[1]);
+1 -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 MAX_VALUES_TO_SEND = 8;