mQ Branch for NA mote testing
Dependencies: LoRaWAN-lib SX1272Lib-mQ lib_gps lib_mma8451q lib_mpl3115a2 mbed
Fork of LoRaWAN-NAMote72-Application-Demo by
Diff: app/LoRaEventProc.cpp
- Revision:
- 18:18408c3c2d0c
- Parent:
- 15:39a23f5affd1
--- a/app/LoRaEventProc.cpp Sun Apr 16 23:12:47 2017 +0000 +++ b/app/LoRaEventProc.cpp Mon Apr 24 13:47:27 2017 +0000 @@ -28,161 +28,125 @@ */ void PrepareLoRaFrame( uint8_t port ) { - switch( port ) - { + { case 5: - { + { uint8_t tmp; uint8_t tmpLength; uint8_t ptrIndex = 0; - + // Point the pointer to position index of Tx Buffer LoRaApp.ApplicationPtrPos( ptrIndex ); tmp = ( AppLed != 0 ) ? 0x0F : 0x00; tmpLength = 1; - - LoRaApp.ApplicationAppendData( &tmp, tmpLength ); // Populate lower nibble of 0th Byte with LED state + + LoRaApp.ApplicationAppendData( &tmp, tmpLength ); // Populate lower nibble of 0th Byte with LED state /*! - * Read Temperature - * Appends 1 Byte to TX buffer - */ + * Read Temperature + * Appends 1 Byte to TX buffer + */ LoRaApp.ApplicationCall( AppTemp ); /*! - * Read Battery - * Appends 1 Byte to TX buffer - */ + * Read Battery + * Appends 1 Byte to TX buffer + */ LoRaApp.ApplicationCall( AppBat ); /*! - * Read GPS coordinates - * Appends 8 Bytes (3 bytes longitude, 3 bytes latitude, 2 bytes altitude) to TX buffer - */ - LoRaApp.ApplicationCall( AppGps ); - - /*! - * Read Accelerometer - * Appends 2 Bytes to TX buffer - * Value Orientation - * 0x99 0x00 horizontal + faceup - * 0x66 0x00 horizontal + facedown - * 0x00 0x11 vertical - */ - LoRaApp.ApplicationCall( AppAccl ); // Generate Accelerometer data bytes + * Read GPS coordinates + * Appends 8 Bytes (3 bytes longitude, 3 bytes latitude, 2 bytes altitude) to TX buffer + */ + LoRaApp.ApplicationCall( AppGps ); /*! - * Generate Ramp data bytes - * Appends incremental values of 1 Byte each to TX buffer until Full - */ - LoRaApp.ApplicationCall( AppRamp ); - - break; - } - - // Senet M2X ORIENTATION Demo - // Set LORAWAN_APP_DATA_SIZE to 2 - case 6: - { - uint8_t ptrIndex = 1; - - //Point the pointer to position index of Tx Buffer - LoRaApp.ApplicationPtrPos( ptrIndex ); - - LoRaApp.ApplicationCall( AppAcclSenet ); // Generate Accelerometer data bytes - - + * Read Accelerometer + * Appends 2 Bytes to TX buffer + * Value Orientation + * 0x99 0x00 horizontal + faceup + * 0x66 0x00 horizontal + facedown + * 0x00 0x11 vertical + */ + LoRaApp.ApplicationCall( AppAccl ); // Generate Accelerometer data bytes - break; - } - - /* Senet GPS Demo - Data Format (in Hex): - [01, 02, Lattitude (3 bytes), Longitude (3 Bytes), Elevation (2 bytes), Tx Power (1 byte)] - */ - case 7: - { - uint8_t ptrIndex = 0; - uint8_t tmp[] = {0x01, 0x02}; - - //Point the pointer to position index of Tx Buffer - LoRaApp.ApplicationPtrPos( ptrIndex ); - - LoRaApp.ApplicationAppendData( tmp, 2 ); - - LoRaApp.ApplicationCall( AppGps ); // Generate Accelerometer data bytes - - uint8_t pow = 30 - 2*(( uint8_t ) LoRaMacUplinkStatus.TxPower); - LoRaApp.ApplicationAppendData( &pow, 1 ); + /*! + * Generate Ramp data bytes + * Appends incremental values of 1 Byte each to TX buffer until Full + */ + LoRaApp.ApplicationCall( AppRamp ); break; } - // Push-Button Demo - case 11: - { - uint8_t ptrIndex = 0; - - //Point the pointer to position index of Tx Buffer + // Senet M2X ORIENTATION Demo + // Set LORAWAN_APP_DATA_SIZE to 2 + case 6: + { + uint8_t ptrIndex = 1; + + // Point the pointer to position index of Tx Buffer LoRaApp.ApplicationPtrPos( ptrIndex ); - - LoRaApp.ApplicationCall( AppPushButton ); // Transmit uplink counter - - break; - } - // Transmit on Vertical Orientation Demo - case 12: - { - uint8_t ptrIndex = 0; - - //Point the pointer to position index of Tx Buffer - LoRaApp.ApplicationPtrPos( ptrIndex ); - - LoRaApp.ApplicationCall( AppPushButton ); // Transmit uplink counter - + LoRaApp.ApplicationCall( AppAcclSenet ); // Generate Accelerometer data bytes + break; } - - /* Senet myDevices Sensor Demo - Data Format (in Hex): - [Pressure (2 Bytes), Temperature (1 Byte), X-Axis (2 bytes), Y-Axis (2 bytes), Z-Axis (2 bytes), ] - */ - case 13: - { + /* Senet GPS Demo + Data Format (in Hex): + [01, 02, Lattitude (3 bytes), Longitude (3 Bytes), Elevation (2 bytes), Tx Power (1 byte)] + */ + case 7: + { uint8_t ptrIndex = 0; - uint8_t tmp = 0; - - //Point the pointer to position index of Tx Buffer - LoRaApp.ApplicationPtrPos( ptrIndex ); - - LoRaApp.ApplicationCall( AppPrsr); + uint8_t tmp[] = { 0x01, 0x02 }; - LoRaApp.ApplicationCall( AppTemp ); + // Point the pointer to position index of Tx Buffer + LoRaApp.ApplicationPtrPos( ptrIndex ); - LoRaApp.ApplicationCall( AppBat ); - - LoRaApp.ApplicationCall( AppAcclSensor ); // Generate Accelerometer data bytes + LoRaApp.ApplicationAppendData( tmp, 2 ); - if( AppLed == 1 ) - { - tmp = 0x01; - } - else - { - tmp = 0x00; - } - - LoRaApp.ApplicationAppendData( &tmp, 1 ); + LoRaApp.ApplicationCall( AppGps ); // Generate Accelerometer data bytes + + uint8_t pow = 30 - 2 * ( ( uint8_t )LoRaMacUplinkStatus.TxPower ); + LoRaApp.ApplicationAppendData( &pow, 1 ); break; } - + + // Push-Button Demo + case 11: + { + uint8_t ptrIndex = 0; + + // Point the pointer to position index of Tx Buffer + LoRaApp.ApplicationPtrPos( ptrIndex ); + + LoRaApp.ApplicationCall( AppPushButton ); // Transmit uplink counter + + break; + } + + // Transmit on Vertical Orientation Demo + case 12: + { + uint8_t ptrIndex = 0; + + // Point the pointer to position index of Tx Buffer + LoRaApp.ApplicationPtrPos( ptrIndex ); + + LoRaApp.ApplicationCall( AppPushButton ); // Transmit uplink counter + + break; + } + default: - break; + { + break; + } } } @@ -191,29 +155,28 @@ * \brief Sets Interrupt for next payload transmission */ void InitNextTxInterrupt( uint8_t port ) -{ +{ switch( port ) { /* GPS Application Demo Set Timer interrupt for next uplink */ case 5: - { + { } /* Senet + M2X demo Set Timer interrupt for next uplink */ case 6: - { - + { } /* Senet GPS Demo Set Timer interrupt for next uplink */ - case 7: - { + case 7: + { // Schedule next packet transmission TxDutyCycleTime = APP_TX_DUTYCYCLE + randr( -APP_TX_DUTYCYCLE_RND, APP_TX_DUTYCYCLE_RND ); TimerSetValue( &TxNextPacketTimer, TxDutyCycleTime ); @@ -224,8 +187,8 @@ /* Push Button Demo Send Packet Immedietly if PC0 = GND */ - case 11: - { + case 11: + { volatile bool PushButtonStatus; PushButtonStatus = PC0; @@ -242,15 +205,15 @@ IsTxIntUpdate = true; } break; - } + } /* Orientation Demo Send Packet Immedietly if Mote is Vertical */ - case 12: - { + case 12: + { CheckOrientation( ); - + if(VerticalStatus == true) { // Send Pkt immedietly if PC = GND @@ -263,13 +226,13 @@ IsTxIntUpdate = true; } break; - } + } /* Compliance Test Set Timer interrupt for next uplink */ case 224: - { + { // Schedule next packet transmission TimerSetValue( &TxNextPacketTimer, COMPLIANCE_TX_DUTYCYCLE ); TimerStart( &TxNextPacketTimer ); @@ -279,7 +242,6 @@ default: { // Schedule next packet transmission - TxDutyCycleTime = APP_TX_DUTYCYCLE + randr( -APP_TX_DUTYCYCLE_RND, APP_TX_DUTYCYCLE_RND ); TimerSetValue( &TxNextPacketTimer, TxDutyCycleTime ); TimerStart( &TxNextPacketTimer ); break; @@ -299,26 +261,25 @@ CtrlLED( Red, LED_ON ); } - /*! * \brief What to do during TX ? blink/toggle LED etc. */ void TxEvent( void ) { - int blinkTime = 25000; + int blinkTime = 25; // Blink Red LED for 25msec BlinkLED( Red, blinkTime ); } -void RxEvent() +void RxEvent( void ) { // Toggle yellow LED - ToggleLED( Yellow ); + ToggleLED( Yellow ); // If Rx Data is 0x01 turn on Green LED else if 0x0 Turn Green LED off if( LoRaMacDownlinkStatus.BufferSize == 1 ) - { + { if( LoRaMacDownlinkStatus.Buffer[0] == 0x01 ) { AppLed = 1;