Lora OTA device for Everynet
Dependencies: LMiCLibOTADeviceEverynet SX1276Lib X_NUCLEO_IKS01A1 cantcoap lwip mbed-rtos mbed
Fork of LoRaWAN-test-10secs by
Diff: main.cpp
- Revision:
- 8:8d9a49aaa323
- Parent:
- 7:f1521b0ecf08
- Child:
- 9:84a69ca4d35a
--- a/main.cpp Mon Dec 14 10:51:40 2015 +0000 +++ b/main.cpp Mon Dec 21 14:19:42 2015 +0000 @@ -218,6 +218,7 @@ 0x30, 0x74, 0x73, 0x65, 0x74, 0x2D, 0x52, 0x4C // 4c522d7465737430 = "LR-test0" // 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x99, 0xF7 +// 0x32, 0x74, 0x73, 0x65, 0x74, 0x2D, 0x52, 0x4C // 4c522d7465737430 = "LR-test2" // 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF @@ -345,6 +346,25 @@ LoRaWAN_data_size = PDUlength + 5; } +static void prepareTxLoraFrame( void ) +{ + const char *frame = "LoRa"; + + strncpy((char*) LMIC.frame, frame, strlen(frame)); + +#if ( LORAWAN_CONFIRMED_MSG_ON == 1 ) + LMIC.frame[strlen(frame)] = LMIC.seqnoDn >> 8; + LMIC.frame[strlen(frame)+1] = LMIC.seqnoDn; + LMIC.frame[strlen(frame)+2] = LMIC.rssi >> 8; + LMIC.frame[strlen(frame)+3] = LMIC.rssi; + LMIC.frame[strlen(frame)+4] = LMIC.snr; +#endif + debug_str("Frame to be sent: "); + debug_buf(LMIC.frame, strlen(frame) + 5); + + LoRaWAN_data_size = strlen(frame) + 5; +} + static void prepareTxFrame( void ) { LMIC.frame[0] = AppLedStateOn; @@ -363,8 +383,9 @@ void processRxFrame( void ) { - debug_str("Data: "); - debug_buf( LMIC.frame + LMIC.dataBeg, LMIC.dataLen ); + + char* frameToDisplay = (char*) (LMIC.frame + LMIC.dataBeg); + frameToDisplay[LMIC.dataLen] = '\0'; switch( LMIC.frame[LMIC.dataBeg - 1] ) // Check Rx port number { @@ -373,7 +394,24 @@ // debug_val("Data Len: ", LMIC.dataLen); case 1: // The application LED can be controlled on port 1 or 2 + debug_str("Data received on port 1: "); + debug_str("Data in hexa: "); + debug_buf( LMIC.frame + LMIC.dataBeg, LMIC.dataLen ); + debug_str("Data in string: "); + + debug_str( frameToDisplay ); + debug_str("\r\n"); + + break; case 2: + debug_str("Data received on port 2: "); + debug_str("Data in hexa: "); + debug_buf( LMIC.frame + LMIC.dataBeg, LMIC.dataLen ); + debug_str("Data in string: "); + + debug_str( frameToDisplay ); + debug_str("\r\n"); + if( LMIC.dataLen == 1 ) { debug_str("Data received on port 2: "); @@ -391,7 +429,8 @@ static void onSendFrame( osjob_t* j ) { //prepareTxFrame( ); - prepareTxCoapFrame(); + //prepareTxCoapFrame(); + prepareTxLoraFrame(); LMIC_setTxData2( LORAWAN_APP_PORT, LMIC.frame, LoRaWAN_data_size, LORAWAN_CONFIRMED_MSG_ON );