Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
MinimouseSrc/main.cpp@0:2325d1d28df3, 2017-12-15 (annotated)
- Committer:
- fholin
- Date:
- Fri Dec 15 13:15:04 2017 +0000
- Revision:
- 0:2325d1d28df3
- Child:
- 1:eda561b01daf
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fholin | 0:2325d1d28df3 | 1 | #include "mbed.h" |
fholin | 0:2325d1d28df3 | 2 | #include "ApiFlash.h" |
fholin | 0:2325d1d28df3 | 3 | #include "LoraMacDataStoreInFlash.h" |
fholin | 0:2325d1d28df3 | 4 | #include "LoraWanProcess.h" |
fholin | 0:2325d1d28df3 | 5 | #include "Define.h" |
fholin | 0:2325d1d28df3 | 6 | #include "rtc_api.h" |
fholin | 0:2325d1d28df3 | 7 | #include "ApiRtc.h" |
fholin | 0:2325d1d28df3 | 8 | |
fholin | 0:2325d1d28df3 | 9 | |
fholin | 0:2325d1d28df3 | 10 | DigitalOut led( D13 ); |
fholin | 0:2325d1d28df3 | 11 | |
fholin | 0:2325d1d28df3 | 12 | |
fholin | 0:2325d1d28df3 | 13 | struct sBackUpFlash BackUpFlash; |
fholin | 0:2325d1d28df3 | 14 | static LoraWanObjet Lp( PB_4 ); |
fholin | 0:2325d1d28df3 | 15 | |
fholin | 0:2325d1d28df3 | 16 | //@note set to board definition |
fholin | 0:2325d1d28df3 | 17 | //#define CHECKFCNTDOWN 0 |
fholin | 0:2325d1d28df3 | 18 | |
fholin | 0:2325d1d28df3 | 19 | |
fholin | 0:2325d1d28df3 | 20 | int main( ) { |
fholin | 0:2325d1d28df3 | 21 | int i; |
fholin | 0:2325d1d28df3 | 22 | led = 0; |
fholin | 0:2325d1d28df3 | 23 | my_rtc_init ( ); |
fholin | 0:2325d1d28df3 | 24 | pcf.baud( 115200 ); |
fholin | 0:2325d1d28df3 | 25 | int UserPayloadSize = 14; |
fholin | 0:2325d1d28df3 | 26 | uint8_t UserRxPayloadSize; |
fholin | 0:2325d1d28df3 | 27 | uint8_t UserRxPayload [255]; |
fholin | 0:2325d1d28df3 | 28 | uint8_t UserPayload[UserPayloadSize]; |
fholin | 0:2325d1d28df3 | 29 | uint8_t UserFport = 3; |
fholin | 0:2325d1d28df3 | 30 | uint8_t UserRxFport ; |
fholin | 0:2325d1d28df3 | 31 | for ( i = 0; i < UserPayloadSize; i++ ){ |
fholin | 0:2325d1d28df3 | 32 | UserPayload[i] = i + 20; |
fholin | 0:2325d1d28df3 | 33 | } |
fholin | 0:2325d1d28df3 | 34 | uint8_t AvailableRxPacket = NOLORARXPACKETAVAILABLE ; |
fholin | 0:2325d1d28df3 | 35 | eLoraWan_Process_States LpState = LWPSTATE_IDLE; |
fholin | 0:2325d1d28df3 | 36 | |
fholin | 0:2325d1d28df3 | 37 | /************************************************/ |
fholin | 0:2325d1d28df3 | 38 | /* Configure Adr Mode */ |
fholin | 0:2325d1d28df3 | 39 | /************************************************/ |
fholin | 0:2325d1d28df3 | 40 | Lp.SetDataRateStrategy( MOBILELONGRANGEADRMODE ); |
fholin | 0:2325d1d28df3 | 41 | |
fholin | 0:2325d1d28df3 | 42 | /************************************************/ |
fholin | 0:2325d1d28df3 | 43 | /* Restore Context from Flash */ |
fholin | 0:2325d1d28df3 | 44 | /* fcnt up is incemented by FLASH_UPDATE_PERIOD */ |
fholin | 0:2325d1d28df3 | 45 | /************************************************/ |
fholin | 0:2325d1d28df3 | 46 | Lp.RestoreContext ( ); |
fholin | 0:2325d1d28df3 | 47 | |
fholin | 0:2325d1d28df3 | 48 | while(1) { |
fholin | 0:2325d1d28df3 | 49 | pcf.printf("\n\n\n\n "); |
fholin | 0:2325d1d28df3 | 50 | LpState = Lp.SendPayload( UserFport, UserPayload, UserPayloadSize, UNCONFDATAUP ); |
fholin | 0:2325d1d28df3 | 51 | led = 1; |
fholin | 0:2325d1d28df3 | 52 | while ( LpState != LWPSTATE_IDLE ){ |
fholin | 0:2325d1d28df3 | 53 | LpState = Lp.LoraWanProcess( &AvailableRxPacket ); |
fholin | 0:2325d1d28df3 | 54 | wait_ms( 100 ); |
fholin | 0:2325d1d28df3 | 55 | } |
fholin | 0:2325d1d28df3 | 56 | if ( AvailableRxPacket == LORARXPACKETAVAILABLE ) { |
fholin | 0:2325d1d28df3 | 57 | Lp.ReceivePayload( &UserRxFport, UserRxPayload, &UserRxPayloadSize ); |
fholin | 0:2325d1d28df3 | 58 | pcf.printf("Receive an Applicative Downlink \n DATA[%d] = [ ",UserRxPayloadSize); |
fholin | 0:2325d1d28df3 | 59 | for ( i = 0 ; i < UserRxPayloadSize ; i++){ |
fholin | 0:2325d1d28df3 | 60 | pcf.printf( "0x%.2x ",UserRxPayload[i]); |
fholin | 0:2325d1d28df3 | 61 | } |
fholin | 0:2325d1d28df3 | 62 | pcf.printf("]\n"); |
fholin | 0:2325d1d28df3 | 63 | } |
fholin | 0:2325d1d28df3 | 64 | led = 0; |
fholin | 0:2325d1d28df3 | 65 | wait_s( 5 ); |
fholin | 0:2325d1d28df3 | 66 | } |
fholin | 0:2325d1d28df3 | 67 | } |
fholin | 0:2325d1d28df3 | 68 | /*************************************************if OTA *****************************************/ |
fholin | 0:2325d1d28df3 | 69 | // if ( Lp.IsJoined( ) == ISJOINED ) { |
fholin | 0:2325d1d28df3 | 70 | // LpState = Lp.SendPayload( UserFport, UserPayload, UserPayloadSize, UNCONFDATAUP ); |
fholin | 0:2325d1d28df3 | 71 | // } else { |
fholin | 0:2325d1d28df3 | 72 | // LpState = Lp.Join( ); |
fholin | 0:2325d1d28df3 | 73 | // } |
fholin | 0:2325d1d28df3 | 74 | /**************************************************************************************************/ |