1

Dependencies:   X_NUCLEO_IKS01A1 LoRaWAN-lib SX1276Lib mbed

Revision:
2:78df92a365c2
Parent:
0:42863a11464a
Child:
3:4bca7f8f731a
diff -r 80c1daf19aa4 -r 78df92a365c2 app/LoRaApp.cpp
--- a/app/LoRaApp.cpp	Fri Aug 26 20:51:07 2016 +0000
+++ b/app/LoRaApp.cpp	Sat Aug 27 04:03:02 2016 +0000
@@ -16,6 +16,11 @@
 
 #include "LoRaApp.h"
 
+#ifdef USE_IKS01A1_SENSOR
+float iks01a1_data;
+int32_t Accl_Value[3] = {0};
+#endif
+
 bool VerticalStatus = false;
 
 
@@ -44,40 +49,59 @@
 void Application::ApplicationCall( eAppType App )
 {
     switch( App )
-    {
-        // Appends 8 Bytes (3 bytes longitude, 3 bytes latitude, 2 bytes altitude) to TX buffer
-        case AppGps:
-        {
-            /*
-            Gps.service( );
-
-            uint16_t altitudeGps = atoi( Gps.NmeaGpsData.NmeaAltitude );
-
-            if( ( BuffPtr + 8 ) <= LORAWAN_APP_DATA_SIZE )
-            {               
-                BuffAddr[BuffPtr++] = ( Gps.LatitudeBinary >> 16 ) & 0xFF;
-                BuffAddr[BuffPtr++] = ( Gps.LatitudeBinary >> 8 ) & 0xFF;
-                BuffAddr[BuffPtr++] = Gps.LatitudeBinary & 0xFF;
-                BuffAddr[BuffPtr++] = ( Gps.LongitudeBinary >> 16 ) & 0xFF;
-                BuffAddr[BuffPtr++] = ( Gps.LongitudeBinary >> 8 ) & 0xFF;
-                BuffAddr[BuffPtr++] = Gps.LongitudeBinary & 0xFF;           
-                BuffAddr[BuffPtr++] = ( altitudeGps >> 8 ) & 0xFF;
-                BuffAddr[BuffPtr++] = altitudeGps & 0xFF;
-            }
-            */
-            break;
-        }
-
+    {        
         // Appends 1 Byte to TX buffer
         case AppTemp:
         {    
-            /*       
-            Mpl3115a2.ReadTemperature( );
+#ifdef USE_IKS01A1_SENSOR 
+                        
+            temp_sensor1->GetTemperature(&iks01a1_data);
+                                    
+            printf("Temp = %f, %d\r\n", iks01a1_data, (int8_t) iks01a1_data);
+                               
             if( ( BuffPtr + 1 ) <= LORAWAN_APP_DATA_SIZE )
             {
-                BuffAddr[BuffPtr++] = ( int32_t )Mpl3115a2.Temperature;     // Signed degrees Celcius in half degree units. So, +/-63 °C                         
+                BuffAddr[BuffPtr++] = (int8_t) iks01a1_data;                         
+            }
+            
+#endif            
+            break;
+        }
+        
+        // Appends 2 Bytes to TX buffer
+        case AppPressr:
+        {    
+#ifdef USE_IKS01A1_SENSOR 
+                        
+            pressure_sensor->GetPressure(&iks01a1_data);
+                                    
+            printf("Pressure = %f, %d\r\n", iks01a1_data, (uint16_t) iks01a1_data);
+                               
+            if( ( BuffPtr + 2 ) <= LORAWAN_APP_DATA_SIZE )
+            {
+                BuffAddr[BuffPtr++] = ( (int16_t) iks01a1_data >> 8 ) & 0xFF;
+                BuffAddr[BuffPtr++] = ( (int16_t) iks01a1_data ) & 0xFF;                         
             }
-            */
+            
+#endif            
+            break;
+        }
+        
+        // Appends 2 Bytes to TX buffer
+        case AppHumid:
+        {    
+#ifdef USE_IKS01A1_SENSOR 
+                        
+            humidity_sensor->GetHumidity(&iks01a1_data);
+                                    
+            printf("Humidity = %f, %d\r\n", iks01a1_data, (uint8_t) iks01a1_data);
+                               
+            if( ( BuffPtr + 1 ) <= LORAWAN_APP_DATA_SIZE )
+            {
+                BuffAddr[BuffPtr++] = (int8_t) iks01a1_data;
+            }
+            
+#endif            
             break;
         }
 
@@ -108,76 +132,25 @@
         // Appends 2 Bytes to TX buffer
         case AppAccl:
         {  
-            /* 
-            uint8_t statusReg; 
-
-            // Read the PS_STATUS register
-            statusReg = Mma8451q.read_single( MMA8451_PL_STATUS );
-
-            // Display Orientation of NAMote on Serial Port
-            SerialAcclMetrDisplay( statusReg );
-
-            // If Orientation of the Mote changed then let Green LED ON
-            if( ( statusReg & 0x80 ) != 0 )
-            {
-                AppLed = 1;
-                CtrlLED( Green, LED_ON );
-            }
-
-            // Read and populate device orientation in Tx Buffer
-            if( ( BuffPtr + 2 ) <= LORAWAN_APP_DATA_SIZE )
+#ifdef USE_IKS01A1_SENSOR 
+                        
+            accelerometer->Get_X_Axes(Accl_Value);
+                                    
+            printf("X/Y/Z = %d/%d/%d\r\n", Accl_Value[0], Accl_Value[1], Accl_Value[2]);
+                               
+            if( ( BuffPtr + 6 ) <= LORAWAN_APP_DATA_SIZE )
             {
-                if( statusReg & 0x40 )
-                {
-                    if( statusReg & 0x01 )
-                    {
-                        BuffAddr[BuffPtr++] = 0x66; // horizontal + faceup
-                    }
-                    else
-                    {
-                        BuffAddr[BuffPtr++] = 0x99; // horizontal + facedown
-                    }
-
-                    BuffAddr[BuffPtr++] = 0; // vertical = false
-                }
-                else
-                {
-                    BuffAddr[BuffPtr++] = 0; // horizontal = false
-                    BuffAddr[BuffPtr++] = 0x11; // vertical = true
-                }               
-            }       
-            */
+                BuffAddr[BuffPtr++] = ( (int16_t) Accl_Value[0] >> 8 ) & 0xFF;
+                BuffAddr[BuffPtr++] = ( (int16_t) Accl_Value[0] ) & 0xFF; 
+                BuffAddr[BuffPtr++] = ( (int16_t) Accl_Value[1] >> 8 ) & 0xFF;
+                BuffAddr[BuffPtr++] = ( (int16_t) Accl_Value[1] ) & 0xFF; 
+                BuffAddr[BuffPtr++] = ( (int16_t) Accl_Value[2] >> 8 ) & 0xFF;
+                BuffAddr[BuffPtr++] = ( (int16_t) Accl_Value[2] ) & 0xFF;                         
+            }            
+#endif            
             break;
         }       
 
-        case AppAcclSenet:
-        {   
-            /*
-            uint8_t statusReg; 
-
-            // Read the PS_STATUS register
-            statusReg = Mma8451q.read_single( MMA8451_PL_STATUS );
-
-            // Display Orientation of NAMote on Serial Port 
-            SerialAcclMetrDisplay( statusReg );
-
-            // If Orientation of the Mote changed then populate Upper Nibble of 0th Byte of Tx Buffer                       
-            if( ( statusReg & 0x40 ) != 0 )
-            {   
-                AppLed = 0;
-                CtrlLED( Green, LED_OFF );
-                BuffAddr[BuffPtr++] = 0; // horizontal
-            }
-            else
-            {
-                AppLed = 1;
-                CtrlLED( Green, LED_ON );
-                BuffAddr[BuffPtr++] = 10; // vertical
-            }                       
-            */
-            break;
-        }
-
         case AppPushButton:
         {   
             uint16_t PushButtonCnt;