Petri Ingalsuo
/
C027_LT_Test3G
t3
Fork of C027_SupportTest by
Diff: main.cpp
- 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; }