Stand Hoechfeld Update
This commit is contained in:
parent
12f048cc39
commit
794b4066ed
|
|
@ -37,6 +37,8 @@ using namespace McciCatena;
|
|||
|
|
||||
\****************************************************************************/
|
||||
|
||||
constexpr uint8_t kUplinkPort = 2;
|
||||
|
||||
/* how long do we wait between transmissions? (in seconds) */
|
||||
enum {
|
||||
// set this to interval between transmissions, in seconds
|
||||
|
|
@ -84,7 +86,7 @@ unsigned gTxCycleCount;
|
|||
// forwards
|
||||
static void settleDoneCb(osjob_t* pSendJob);
|
||||
static void warmupDoneCb(osjob_t* pSendJob);
|
||||
static void txFailedDoneCb(osjob_t* pSendJob);
|
||||
static void txNotProvisionedCb(osjob_t *pSendJob);
|
||||
static void sleepDoneCb(osjob_t* pSendJob);
|
||||
static Arduino_LoRaWAN::SendBufferCbFn sendBufferDoneCb;
|
||||
static Arduino_LoRaWAN::ReceivePortBufferCbFn receiveMessage;
|
||||
|
|
@ -251,11 +253,6 @@ void setup(void)
|
|||
setup_bme280();
|
||||
//setup_scales();
|
||||
|
||||
/* for 4451, we need wider tolerances, it seems */
|
||||
#if defined(ARDUINO_ARCH_STM32)
|
||||
LMIC_setClockError(MAX_CLOCK_ERROR * 10 / 100);
|
||||
#endif
|
||||
|
||||
setup_flash();
|
||||
setup_uplink();
|
||||
}
|
||||
|
|
@ -366,9 +363,6 @@ void setup_platform(void)
|
|||
flags = 0;
|
||||
}
|
||||
|
||||
// Swisscom temporary fix...
|
||||
//LMIC_setDrTxpow(DR_SF10,14);
|
||||
//LMIC_setAdrMode(1);
|
||||
}
|
||||
|
||||
void setup_bme280(void)
|
||||
|
|
@ -431,8 +425,17 @@ void setup_flash(void)
|
|||
|
||||
void setup_uplink(void)
|
||||
{
|
||||
#if defined(_mcci_arduino_version) && _mcci_arduino_version >= _mcci_arduino_version_calc(2,4,0,90) && \
|
||||
defined(CATENA_ARDUINO_PLATFORM_VERSION_CALC) && CATENA_ARDUINO_PLATFORM_VERSION >= CATENA_ARDUINO_PLATFORM_VERSION_CALC(0,17,0,10)
|
||||
LMIC_setClockError(5*65536/100);
|
||||
#else
|
||||
LMIC_setClockError(10*65536/100);
|
||||
#endif
|
||||
|
||||
// Do an unjoin, so every reboot will trigger a join
|
||||
gCatena.SafePrintf("Do an unjoin...\n");
|
||||
LMIC_unjoin();
|
||||
LMIC_setLinkCheckMode(1);
|
||||
|
||||
/* trigger a join by sending the first packet */
|
||||
if (!(gCatena.GetOperatingFlags() & static_cast<uint32_t>(gCatena.OPERATING_FLAGS::fManufacturingTest))) {
|
||||
|
|
@ -768,12 +771,12 @@ void startSendingUplink(bool firstTime)
|
|||
#ifdef DEBUG
|
||||
gCatena.SafePrintf("SendBuffer firstTime\n");
|
||||
#endif
|
||||
gLoRaWAN.SendBuffer((uint8_t*)&lora_data_first, sizeof(LORA_data_first), sendBufferDoneCb, NULL, fConfirmed);
|
||||
gLoRaWAN.SendBuffer((uint8_t*)&lora_data_first, sizeof(LORA_data_first), sendBufferDoneCb, NULL, fConfirmed, kUplinkPort);
|
||||
} else {
|
||||
#ifdef DEBUG
|
||||
gCatena.SafePrintf("SendBuffer not firstTime\n");
|
||||
#endif
|
||||
gLoRaWAN.SendBuffer((uint8_t*)&lora_data, sizeof(LORA_data), sendBufferDoneCb, NULL, fConfirmed);
|
||||
gLoRaWAN.SendBuffer((uint8_t*)&lora_data, sizeof(LORA_data), sendBufferDoneCb, NULL, fConfirmed, kUplinkPort);
|
||||
}
|
||||
ClearLoraData();
|
||||
}
|
||||
|
|
@ -785,29 +788,39 @@ static void sendBufferDoneCb(
|
|||
osjobcb_t pFn;
|
||||
|
||||
gLed.Set(LedPattern::Settling);
|
||||
if (!fStatus) {
|
||||
gCatena.SafePrintf("send buffer failed\n");
|
||||
pFn = txFailedDoneCb;
|
||||
}
|
||||
else {
|
||||
|
||||
pFn = settleDoneCb;
|
||||
if (! fStatus)
|
||||
{
|
||||
if (!gLoRaWAN.IsProvisioned())
|
||||
{
|
||||
// we'll talk about it at the callback.
|
||||
pFn = txNotProvisionedCb;
|
||||
|
||||
// but prevent join attempts now.
|
||||
gLoRaWAN.Shutdown();
|
||||
}
|
||||
else
|
||||
gCatena.SafePrintf("send buffer failed\n");
|
||||
}
|
||||
|
||||
os_setTimedCallback(
|
||||
&sensorJob,
|
||||
os_getTime() + sec2osticks(CATCFG_T_SETTLE),
|
||||
pFn);
|
||||
pFn
|
||||
);
|
||||
}
|
||||
|
||||
static void txFailedDoneCb(
|
||||
osjob_t* pSendJob)
|
||||
static void txNotProvisionedCb(
|
||||
osjob_t *pSendJob
|
||||
)
|
||||
{
|
||||
gCatena.SafePrintf("not provisioned, idling\n");
|
||||
gCatena.SafePrintf("LoRaWAN not provisioned yet. Use the commands to set it up.\n");
|
||||
gLoRaWAN.Shutdown();
|
||||
gLed.Set(LedPattern::NotProvisioned);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void settleDoneCb(
|
||||
osjob_t* pSendJob)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue