Denwis La / Mbed OS mDot_Send_Data

Dependencies:   libmDot-dev-mbed5-deprecated ISL29011

Fork of mdot-examples by 3mdeb

Files at this revision

API Documentation at this revision

Comitter:
SDesign2018
Date:
Wed Jan 10 16:57:41 2018 +0000
Parent:
21:d96ef380a5d3
Child:
23:9c95ba021bdc
Commit message:
Changed to do periodic reading from trigger

Changed in this revision

copy_main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/copy_main.cpp	Wed Jan 10 16:35:54 2018 +0000
+++ b/copy_main.cpp	Wed Jan 10 16:57:41 2018 +0000
@@ -111,7 +111,7 @@
  */
 bool takeTemperature = false;   // Trigger temperature reading
 bool takeAccelerometer = false; // Trigger accelerometer reading
-bool periodicReadings = false;  // Trigger reading both accelerometer and temperature
+bool periodicReadingTrigger = false;  // Trigger reading both accelerometer and temperature
 
 /*
  *  Prototype functions
@@ -141,7 +141,7 @@
     takeAccelerometer = true;   // Take accelerometer because something happened
 }
 
-void takePeriodicReading(void){
+void takePeriodicReadingTicker(void){
         pc.printf("Periodic Reading\n\r");
         /*  
          *  Taking accelerometer data
@@ -179,6 +179,10 @@
         pc.printf("Celsius: 0x%x\n\r", convertedTempValue);
 }
 
+void takePeriodicReading(void){
+        periodicReadingTrigger = true;
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 /*                              _     
                ____ ___  ____ _(_)___ 
@@ -313,58 +317,61 @@
     ADT7410Initialize();
     ADXL372Initialize();
     
-    //Periodic.attach(&takePeriodicReading,3);
+    Periodic.attach(&takePeriodicReadingTicker,1);
     
     while(1){
         // Create a vector of uint8_t elements to be sent later
+        
         std::vector<uint8_t> tx_data;
-        pc.printf("Regular looped reading ");
-        /*
-         *  Taking accelerometer data
-         */
-        regAddress = 0x08;  // This is the register address for XData
-        accelValues = accelerometerI2CRead(regAddress);
-        Xmsb = *(accelValues + 0);
-        Xlsb = *(accelValues + 1);
-        Ymsb = *(accelValues + 2);
-        Ylsb = *(accelValues + 3);
-        Zmsb = *(accelValues + 4);
-        Zlsb = *(accelValues + 5);
-        
-        XData = (Xmsb << 8 | Xlsb) >> 4;  // Combine two bytes into short int, remove last 4 flag bits
-        YData = (Ymsb << 8 | Ylsb) >> 4;
-        ZData = (Zmsb << 8 | Zlsb) >> 4;
-        
-        XData = twosComplementConversion(XData);
-        YData = twosComplementConversion(YData);
-        ZData = twosComplementConversion(ZData);
-        
-        /*
-         *  Taking temperature data
-         */
-        regAddress = 0x00;
-        rawTempValues = ADT7410Read(regAddress);
-        convertedTempValue = ((*(rawTempValues + 0) << 8) | *(rawTempValues + 1)) >> 3; // Combine the two bytes into 
-                                                                                        // a short int variable(16 bits), remove last 3 bits
-        if(convertedTempValue & 0x8000){
-                
-        }
-        pc.printf("Accelerometer::: ");
-        pc.printf("X: 0x%x | Y: 0x%x | Z: 0x%x\n\r", XData, YData, ZData);
-        pc.printf("Temperature::: ");
-        pc.printf("Celsius: 0x%x\n\r", convertedTempValue);
         
         
-        
-        tx_data.push_back((convertedTempValue >> 8) & 0xFF);
-        tx_data.push_back(convertedTempValue & 0xFF);
-        logInfo("Temperautre: %lu [0x%04X]", convertedTempValue, convertedTempValue);
-        send_data(tx_data);
+        if(takePeriodicReading)
+        {
+            pc.printf("Regular periodic reading ");
+            /*
+             *  Taking accelerometer data
+             */
+            regAddress = 0x08;  // This is the register address for XData
+            accelValues = accelerometerI2CRead(regAddress);
+            Xmsb = *(accelValues + 0);
+            Xlsb = *(accelValues + 1);
+            Ymsb = *(accelValues + 2);
+            Ylsb = *(accelValues + 3);
+            Zmsb = *(accelValues + 4);
+            Zlsb = *(accelValues + 5);
+            
+            XData = (Xmsb << 8 | Xlsb) >> 4;  // Combine two bytes into short int, remove last 4 flag bits
+            YData = (Ymsb << 8 | Ylsb) >> 4;
+            ZData = (Zmsb << 8 | Zlsb) >> 4;
+            
+            XData = twosComplementConversion(XData);
+            YData = twosComplementConversion(YData);
+            ZData = twosComplementConversion(ZData);
+            
+            /*
+             *  Taking temperature data
+             */
+            regAddress = 0x00;
+            rawTempValues = ADT7410Read(regAddress);
+            convertedTempValue = ((*(rawTempValues + 0) << 8) | *(rawTempValues + 1)) >> 3; // Combine the two bytes into 
+                                                                                            // a short int variable(16 bits), remove last 3 bits
+            pc.printf("Accelerometer::: ");
+            pc.printf("X: 0x%x | Y: 0x%x | Z: 0x%x\n\r", XData, YData, ZData);
+            pc.printf("Temperature::: ");
+            pc.printf("Celsius: 0x%x\n\r", convertedTempValue);
+            
+            
+            
+            tx_data.push_back((convertedTempValue >> 8) & 0xFF);
+            tx_data.push_back(convertedTempValue & 0xFF);
+            logInfo("Temperautre: %lu [0x%04X]", convertedTempValue, convertedTempValue);
+            send_data(tx_data);
+        }
         
         if(takeAccelerometer || takeAccelerometer){
             pc.printf("INTERRUPTEDDDDDDDD: ");
-            if(takeAccelerometer) pc.printf("Temperature triggered\n\r");
-            else if(takeAccelerometer) pc.printf("AccelerometerTriggered\n\r");
+            if(takeAccelerometer) pc.printf("Temperature triggered!!!!!!!!!!!!\n\r");
+            else if(takeAccelerometer) pc.printf("AccelerometerTriggered!!!!!!!!!!!!!\n\r");
             
             for(int i = 0; i < BUFFER_SIZE; ++i){
                 /*
@@ -402,13 +409,16 @@
                 pc.printf("Temperature::: ");
                 pc.printf("Celsius: 0x%x\n\r", temperatureBuffer[i]);   
             }
-            wait(0.2);
+            //wait(0.2);
             takeAccelerometer = false;  // Flip back to no trigger
             takeTemperature = false;    // Flip back to no trigger
+            periodicReadingTrigger = false; // Flip back to no trigger
         }
         
         
-        wait(1);
+        
+        
+        //wait(1);
     }
     
     return 0;