Code APP3

Dependencies:   mbed EthernetInterface WebSocketClient mbed-rtos BufferedSerial

Fork of APP3_Lab by Jean-Philippe Fournier

Committer:
Cheroukee
Date:
Sun Oct 01 01:34:37 2017 +0000
Revision:
12:1286b80c68f7
Parent:
11:ecf5776b950a
Child:
13:5f21dd134bd2
Added DIO4 blink on broadcast

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Cheroukee 0:f468a460723d 1 #include "mbed.h"
Cheroukee 2:a9bb12eefc08 2
Cheroukee 1:ea1b52d0a8a3 3 #include "xbee.h"
Cheroukee 5:9e6a09a38785 4 #include "parser.h"
Cheroukee 9:3631d3685cfa 5 #include "sensors.h"
Cheroukee 2:a9bb12eefc08 6
Cheroukee 11:ecf5776b950a 7 #define IS_COORDINATOR 1
Cheroukee 2:a9bb12eefc08 8
Cheroukee 1:ea1b52d0a8a3 9 #define PAN_ID 0xC0FFEE
Cheroukee 2:a9bb12eefc08 10
Cheroukee 12:1286b80c68f7 11 #define BUFFER_SIZE 2048
Cheroukee 12:1286b80c68f7 12
Cheroukee 0:f468a460723d 13 Serial pc(USBTX, USBRX); // tx, rx
Cheroukee 0:f468a460723d 14
Cheroukee 12:1286b80c68f7 15 char recv_buff[BUFFER_SIZE] = {0};
Cheroukee 6:9ed8153f1328 16
Cheroukee 0:f468a460723d 17 int main() {
Cheroukee 2:a9bb12eefc08 18
Cheroukee 5:9e6a09a38785 19 ReadFile();
Cheroukee 1:ea1b52d0a8a3 20 xbee_init();
Cheroukee 2:a9bb12eefc08 21
Cheroukee 12:1286b80c68f7 22 char sensor_buffer[64] = {};
Cheroukee 2:a9bb12eefc08 23
Cheroukee 9:3631d3685cfa 24
Cheroukee 2:a9bb12eefc08 25 #if IS_COORDINATOR
Cheroukee 12:1286b80c68f7 26 frame_t current_frame;
Cheroukee 12:1286b80c68f7 27 bool toggle_led = false;
Cheroukee 12:1286b80c68f7 28 /*printf("Websocket Example v1.0.0\r\n");
Cheroukee 12:1286b80c68f7 29 EthernetInterface eth;
Cheroukee 12:1286b80c68f7 30 eth.init(); //[URL]//Use[/URL] DHCP
Cheroukee 12:1286b80c68f7 31 eth.connect();
Cheroukee 12:1286b80c68f7 32 printf("IP Address is %s\n\r", eth.getIPAddress());
Cheroukee 12:1286b80c68f7 33
Cheroukee 12:1286b80c68f7 34 Websocket ws("ws://sockets.mbed.org:443/ws/demo/rw");
Cheroukee 12:1286b80c68f7 35 ws.connect();
Cheroukee 12:1286b80c68f7 36
Cheroukee 12:1286b80c68f7 37 while (1) {
Cheroukee 12:1286b80c68f7 38 int res = ws.send("WebSocket Hello World!");
Cheroukee 12:1286b80c68f7 39 wait(0.1);
Cheroukee 12:1286b80c68f7 40 }*/
Cheroukee 2:a9bb12eefc08 41
Cheroukee 2:a9bb12eefc08 42 #else
Cheroukee 12:1286b80c68f7 43 initialize_sensors();
Cheroukee 2:a9bb12eefc08 44 DECLARE_ADDR64_COORD
Cheroukee 2:a9bb12eefc08 45 DECLARE_ADDR16_UNKNOWN_OR_BCAST
Cheroukee 2:a9bb12eefc08 46 #endif
Cheroukee 12:1286b80c68f7 47 while(1) {
Cheroukee 2:a9bb12eefc08 48
Cheroukee 12:1286b80c68f7 49 #if IS_COORDINATOR
Cheroukee 12:1286b80c68f7 50 bool finished_packet = receive(&current_frame, BUFFER_SIZE);
Cheroukee 12:1286b80c68f7 51
Cheroukee 8:5955af1ee445 52 if (finished_packet)
Cheroukee 1:ea1b52d0a8a3 53 {
Cheroukee 11:ecf5776b950a 54 pc.printf("Data count = %u\r\n", current_frame.length);
Cheroukee 11:ecf5776b950a 55 pc.printf("data start::: ");
Cheroukee 12:1286b80c68f7 56 for (int i = 0; i < current_frame.length && i < BUFFER_SIZE; i++)
Cheroukee 6:9ed8153f1328 57 {
Cheroukee 11:ecf5776b950a 58 pc.putc(current_frame.buffer[i]);
Cheroukee 6:9ed8153f1328 59 }
Cheroukee 11:ecf5776b950a 60 pc.printf(" :::end\n\r");
Cheroukee 12:1286b80c68f7 61
Cheroukee 12:1286b80c68f7 62 if (toggle_led)
Cheroukee 12:1286b80c68f7 63 {
Cheroukee 12:1286b80c68f7 64 remote_at_command_set(AT_COMMAND_DIO4_MSB, AT_COMMAND_DIO4_LSB,
Cheroukee 12:1286b80c68f7 65 AT_COMMAND_DIO_OUT_LOW, 0x02);
Cheroukee 12:1286b80c68f7 66 }
Cheroukee 12:1286b80c68f7 67 else
Cheroukee 12:1286b80c68f7 68 {
Cheroukee 12:1286b80c68f7 69 remote_at_command_set(AT_COMMAND_DIO4_MSB, AT_COMMAND_DIO4_LSB,
Cheroukee 12:1286b80c68f7 70 AT_COMMAND_DIO_OUT_HIGH, 0x02);
Cheroukee 12:1286b80c68f7 71 }
Cheroukee 12:1286b80c68f7 72 toggle_led = !toggle_led;
Cheroukee 6:9ed8153f1328 73 }
Cheroukee 12:1286b80c68f7 74
Cheroukee 12:1286b80c68f7 75 #else
Cheroukee 12:1286b80c68f7 76 SENSOR accel = (*p[0])();
Cheroukee 12:1286b80c68f7 77
Cheroukee 12:1286b80c68f7 78 sprintf(sensor_buffer, "%3.2f%3.2f%3.2f", accel.Accelerometre.x, accel.Accelerometre.y, accel.Accelerometre.z);
Cheroukee 12:1286b80c68f7 79
Cheroukee 12:1286b80c68f7 80 transmit_request(sensor_buffer, 15, 0, USE_ADDR64_COORD, USE_ADDR16_UNKNOWN_OR_BCAST);
Cheroukee 12:1286b80c68f7 81 wait(2);
Cheroukee 12:1286b80c68f7 82 #endif
Cheroukee 0:f468a460723d 83 }
Cheroukee 0:f468a460723d 84 }