This commit is contained in:
Joerg Lehmann 2020-06-04 20:16:01 +02:00
parent a8fe52fa0e
commit d0a173a54a
2 changed files with 4 additions and 87 deletions

View File

@ -147,11 +147,6 @@ bool fUsbPower;
static osjob_t iterationJob; static osjob_t iterationJob;
static osjob_t sendJob; static osjob_t sendJob;
// the cycle time to use
unsigned gTxCycle;
// remaining before we reset to default
unsigned gTxCycleCount;
void setup(void) void setup(void)
{ {
gCatena.begin(); gCatena.begin();
@ -251,7 +246,6 @@ void setup_platform(void)
} }
gLoRaWAN.SetReceiveBufferBufferCb(receiveMessage); gLoRaWAN.SetReceiveBufferBufferCb(receiveMessage);
setTxCycleTime(CATCFG_T_CYCLE_INITIAL, CATCFG_INTERVAL_COUNT_INITIAL);
gCatena.registerObject(&gLoRaWAN); gCatena.registerObject(&gLoRaWAN);
/* find the platform */ /* find the platform */
@ -346,6 +340,9 @@ void setup_uplink(void)
LMIC_setClockError(1 * 65536 / 100); LMIC_setClockError(1 * 65536 / 100);
// explicitly enable LinkCheckMode
gLoRaWAN.SetLinkCheckMode(true);
/* figure out when to reboot */ /* figure out when to reboot */
gRebootMs = (CATCFG_T_REBOOT + os_getRndU2() - 32768) * 1000; gRebootMs = (CATCFG_T_REBOOT + os_getRndU2() - 32768) * 1000;
@ -925,30 +922,6 @@ void doSleepAlert(const bool fDeepSleep)
} }
void updateSleepCounters(void)
{
// update the sleep parameters
if (gTxCycleCount > 1)
{
// values greater than one are decremented and ultimately reset to default.
--gTxCycleCount;
}
else if (gTxCycleCount == 1)
{
// it's now one (otherwise we couldn't be here.)
if (config_data.debug_level > 0) {
gCatena.SafePrintf("resetting tx cycle to default: %u\n", CATCFG_T_CYCLE);
}
gTxCycleCount = 0;
gTxCycle = CATCFG_T_CYCLE;
}
else
{
// it's zero. Leave it alone.
}
}
static void settleDoneCb( static void settleDoneCb(
osjob_t* pSendJob) osjob_t* pSendJob)
{ {
@ -966,9 +939,6 @@ static void settleDoneCb(
doSleepAlert(fDeepSleep); doSleepAlert(fDeepSleep);
/* count what we're up to */
updateSleepCounters();
send_in_progress = false; send_in_progress = false;
} }
@ -1005,8 +975,6 @@ static void startNewIterationCb(osjob_t* pJob)
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)
{ {
unsigned txCycle;
unsigned txCount;
long cal_w1_0; long cal_w1_0;
long cal_w2_0; long cal_w2_0;
@ -1122,59 +1090,8 @@ static void receiveMessage(void *pContext, uint8_t port, const uint8_t *pMessage
} }
} }
if (port == 0)
{
return;
}
else if (! (port == 1 && 2 <= nMessage && nMessage <= 3))
{
if (config_data.debug_level > 0) {
gCatena.SafePrintf("invalid message port(%02x)/length(%x)\n",
port, nMessage
);
}
return;
}
txCycle = (pMessage[0] << 8) | pMessage[1];
if (txCycle < CATCFG_T_MIN || txCycle > CATCFG_T_MAX)
{
if (config_data.debug_level > 0) {
gCatena.SafePrintf("tx cycle time out of range: %u\n", txCycle);
}
return;
}
// byte [2], if present, is the repeat count.
// explicitly sending zero causes it to stick.
txCount = CATCFG_INTERVAL_COUNT;
if (nMessage >= 3)
{
txCount = pMessage[2];
}
setTxCycleTime(txCycle, txCount);
} }
void setTxCycleTime(unsigned txCycle, unsigned txCount)
{
if (txCount > 0) {
if (config_data.debug_level > 0) {
gCatena.SafePrintf("message cycle time %u seconds for %u messages\n", txCycle, txCount);
}
}
else if (config_data.debug_level > 0) {
gCatena.SafePrintf("message cycle time %u seconds indefinitely\n", txCycle);
}
gTxCycle = txCycle;
gTxCycleCount = txCount;
}
/* process "application hello" -- args are ignored */ /* process "application hello" -- args are ignored */
// argv[0] is "hello" // argv[0] is "hello"
// argv[1..argc-1] are the (ignored) arguments // argv[1..argc-1] are the (ignored) arguments

View File

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