Quicksand micro-electronics / Mbed 2 deprecated QW-GPS

Dependencies:   mbed

Fork of HelloWorld - QW Development kit by Quicksand micro-electronics

Files at this revision

API Documentation at this revision

Comitter:
quicksand
Date:
Fri Oct 30 14:10:26 2015 +0000
Child:
1:18afd4c75c6e
Commit message:
First version of a simple code-example using the QW GPS Shield

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Oct 30 14:10:26 2015 +0000
@@ -0,0 +1,84 @@
+#include "mbed.h"
+
+DigitalOut LED_0 (PB_6);
+DigitalOut LED_1 (PA_7);
+DigitalOut LED_2 (PA_6);
+DigitalOut LED_3 (PA_5);
+InterruptIn SW1(PB_10);
+InterruptIn SW2(PA_8);
+
+Ticker hartbeat;
+
+typedef struct{
+   bool busy;
+   char button;
+} TX_BUTTON;
+
+TX_BUTTON Button_tx;
+
+void beat() {
+    LED_0 = !LED_0;
+}
+ 
+//Virtual serial port over USB
+Serial pc(USBTX, USBRX);
+Serial modem(PA_9, PA_10);
+
+void sw1interrupt(){
+        pc.printf("Button 1 pressed, sending sigfox message (command is AT$SF=42 55 54 54 4f 4e 20 31 00 00 00 00,2,0)\n");
+        modem.printf("AT$SF=42 55 54 54 4f 4e 20 31 00 00 00 00,2,0\n");
+        LED_1 = 0;
+        wait(0.25);
+        // Flush the echo of the command:
+        while(modem.readable()) modem.getc();
+        Button_tx.busy = true;
+        Button_tx.button = 1;
+} 
+
+void sw2interrupt(){
+        pc.printf("Button 2 pressed, sending sigfox message (command is AT$SF=42 55 54 54 4f 4e 20 32 00 00 00 00,2,0)\n");
+        modem.printf("AT$SF=42 55 54 54 4f 4e 20 32 00 00 00 00,2,0\n");
+        LED_2 = 0;
+        wait(0.25);
+        // Flush the echo of the command:
+        while(modem.readable()) modem.getc();
+        Button_tx.busy = true;
+        Button_tx.button = 2;           
+} 
+
+int main() {
+    
+    LED_0 = 1;
+    LED_1 = 1;
+    LED_2 = 1;
+    LED_3 = 1;
+    hartbeat.attach(&beat, 0.5);
+    Button_tx.busy = false;
+    Button_tx.button = 0;    
+    SW2.fall(&sw1interrupt);
+    SW1.fall(&sw2interrupt);
+    char responsebuffer[2];
+    char c; 
+    while(1) {   
+        if(pc.readable()) {
+            modem.putc(pc.getc());
+        }
+        
+        if(modem.readable()) {
+            c = modem.getc();
+            responsebuffer[0] = responsebuffer[1];
+            responsebuffer[1] = c;
+            if(Button_tx.busy)
+            {
+                if(responsebuffer[0] == 'O' && responsebuffer[1] == 'K' )
+                {
+                    // Everything went fine, turn off the LED
+                    Button_tx.busy = false;
+                    if(Button_tx.button == 1) LED_1 = 1;
+                    if(Button_tx.button == 2) LED_2 = 1;
+                }    
+            }    
+            pc.putc(c);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Oct 30 14:10:26 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/9296ab0bfc11
\ No newline at end of file