2018-07-03 05:10 AM
Hello ,
I use this demo board B-L072Z-LRWAN1 with the soft End Node I-CUBE-LRWAN
But I don’t understand why I can’t send the data once when I want with function send() or LORA_send() in the main or in the while(1) ? and not with a timer (TX_ON_TIMER) or (TX_ON_EVENT).int main( void )
{ … … LORA_Init( &LoRaMainCallbacks, &LoRaParamInit); LORA_Join(); //LoraStartTx( TX_ON_TIMER) ; send();while(1) { DISABLE_IRQ( ); /* if an interrupt has occurred after DISABLE_IRQ, it is kept pending * and cortex will not enter low power anyway */ #ifndef LOW_POWER_DISABLE LPM_EnterLowPower( ); #endif ENABLE_IRQ();
}
}Thank you.
#b-l072z-lrwan1 #b-l072z #lora2018-07-26 08:13 AM
That behaviour is denied by the LoRa stack which calculate the Time on Air used by your last message pushed, even if you do try to send a message using LORA_send, the actual message won't be sent because there is a case where it checks wether or not you have waited the correct time in the LoRa_mac.c file.
For your information, regulation in Europe about subGHz network impose nodes to use the network less than 1%, so that limitation come from here.
Also, that program you are using is pretty much dependant on duty_cycle, the whole sleep/send program revolve around these kind of timers, and trying to modify this behaviour can be a bit tricky, so i would suggest to get a better understanding of how the program works when connecting to a network prior to try to tweak this.