This software example demonstrates the downlink capabilities of the SIGFOX network.
Dependencies: QW_Sensors mbed
Fork of HelloWorld - QW Development kit by
Revision 0:49858c4c3500, committed 2015-10-30
- Comitter:
- quicksand
- Date:
- Fri Oct 30 14:10:26 2015 +0000
- Child:
- 1:897a1b3f0955
- 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
