t3

Dependencies:   C027_Support

Fork of C027_SupportTest by u-blox

Revision:
35:ead6b88cebeb
Parent:
34:bc82b26ec43b
--- a/main.cpp	Fri Sep 23 11:39:17 2016 +0000
+++ b/main.cpp	Mon Jan 09 12:29:58 2017 +0000
@@ -36,6 +36,67 @@
 AnalogIn temperature(A5);
 DigitalOut led1(LED1);
 
+DigitalOut ledD1(D10); //inverted
+DigitalOut ledD9(D11); //inverted
+DigitalOut ledD2(D12);
+DigitalOut ledD3(D13);
+DigitalOut ledD11(D9); //inverted
+
+DigitalIn S1(D5);
+DigitalIn S2(D3);
+DigitalIn S3(D7);
+DigitalIn S4(D8);
+DigitalIn S5(D2);
+
+DigitalIn A(D4);
+DigitalIn B(D6);
+
+/*another thread to read IOs*/ 
+void btn_thread(void const *args) {
+   
+   //d4.mode(PullUp);
+   
+    while(true) {
+
+        if(S1 == 1) {
+            //printf("S1 OFF\r\n");
+            ledD11 = 1;
+        }
+        else {
+            //printf("S1 ON\r\n");
+            ledD11 = 0;
+        }
+
+        if(S2 == 0) {
+            printf("Down\r\n");
+        }
+
+        if(S3 == 0) {
+            printf("Right\r\n");
+        }
+
+        if(S4 == 0) {
+            printf("Up\r\n");
+        }
+        
+        if(S5 == 0) {
+            printf("Left\r\n");
+        }
+                
+        if(A == 0) {
+            ledD3 = 0;
+        }
+        else {
+            ledD3=1;
+        }
+        
+        if(B == 0) {
+            printf("b0\r\n");
+        }
+            
+        wait(1);
+    }
+}
 
 int main(void)
 {
@@ -63,6 +124,19 @@
     
     double la = 0, lo = 0;
     bool mdmOk;
+    
+    
+    /*start another thread to read IOs*/    
+    Thread thread(btn_thread);
+    
+    //Set all leds ON
+    ledD1 = 0;
+    ledD9 = 0;
+    ledD2 = 0; 
+    ledD3 = 0; 
+    ledD11 = 0; 
+
+    wait(2); //5s
 
     printf("Temperature1: %f \r\n", temperature.read());
     printf("Temperature2: %3.3f \r\n", temperature.read()*100.0f);
@@ -71,6 +145,14 @@
     printf("Voltage1: 0x%04X \r\n", temperature.read_u16());
     printf("Voltage2: %f \r\n", temperature.read_u16()*(3.3/65536));
     //float voltage = (f*(3.3/4096.0));
+    
+    //Set all leds OFF
+    ledD1 = ~ledD1;
+    ledD9 = ~ledD9;
+    ledD2 = ~ledD2; 
+    ledD3 = ~ledD3; 
+    ledD11 = ~ledD11; 
+    
 
     // Create the GPS object
 #if 1   // use GPSI2C class
@@ -102,6 +184,7 @@
     }
     if (mdmOk)
     {
+        ledD1 = 0;
         // join the internet connection 
         MDMParser::IP ip = mdm.join(APN,USERNAME,PASSWORD);
         if (ip == NOIP)
@@ -226,6 +309,7 @@
             }
             // disconnect  
             mdm.disconnect();
+            ledD1 = ~ledD1;
         }
             
     }
@@ -240,14 +324,18 @@
 
     //DigitalOut led(LED1);
     while (!abort) {
+        //printf("GPS Loop Start\r\n");
     //    led = !led;
 #ifndef CELLOCATE
         while ((ret = gps.getMessage(buf, sizeof(buf))) > 0)
         {
+            ledD9 = 0;
             int len = LENGTH(ret);
+            //printf("GPS len: %d\r\n", len); 
             //printf("NMEA: %.*s\r\n", len-2, msg); 
             if ((PROTOCOL(ret) == GPSParser::NMEA) && (len > 6))
             {
+                //printf("GPS len: %s\r\n", buf); 
                 // talker is $GA=Galileo $GB=Beidou $GL=Glonass $GN=Combined $GP=GPS
                 if ((buf[0] == '$') || buf[1] == 'G') {
                     #define _CHECK_TALKER(s) ((buf[3] == s[0]) && (buf[4] == s[1]) && (buf[5] == s[2]))
@@ -273,11 +361,14 @@
                     }
                 }
             }
+            ledD9 = ~ledD9;
         }
 #endif        
     
         if (mdmOk && (i++ == 5000/wait)) {
             i = 0;
+            ledD2 = 0;
+            
             // check the network status
             if (mdm.checkNetStatus(&netStatus)) {
                 mdm.dumpNetStatus(&netStatus, fprintf, stdout);
@@ -286,8 +377,7 @@
 
             printf("Voltage A5: %f \r\n", temperature.read_u16()*(3.3/65536));
             led1 = (temperature > 0.5f) ? 1 : 0;
-            
-            
+
             
             if (mdmOk)
             {
@@ -297,6 +387,7 @@
                     printf("Not able to join network");
                 else
                 {
+                    ledD1 = 0;
                     mdm.dumpIp(ip);
                     printf("Make a Http Post Request\r\n");
                     int socket = mdm.socketSocket(MDMParser::IPPROTO_TCP);
@@ -385,8 +476,9 @@
                     }
                     // disconnect  
                     mdm.disconnect();
+                    ledD1 = ~ledD1;
                 }
-                    
+                ledD2 = ~ledD2;            
             }