Code APP3
Dependencies: mbed EthernetInterface WebSocketClient mbed-rtos BufferedSerial
Fork of APP3_Lab by
Diff: main.cpp
- Revision:
- 13:5f21dd134bd2
- Parent:
- 12:1286b80c68f7
- Child:
- 14:cd488eba8bba
--- a/main.cpp Sun Oct 01 01:34:37 2017 +0000 +++ b/main.cpp Sun Oct 01 16:34:11 2017 +0000 @@ -4,51 +4,61 @@ #include "parser.h" #include "sensors.h" -#define IS_COORDINATOR 1 +#define IS_COORDINATOR 0 #define PAN_ID 0xC0FFEE #define BUFFER_SIZE 2048 -Serial pc(USBTX, USBRX); // tx, rx +char recv_buff[BUFFER_SIZE] = {0}; + +void set_remote_xbee_dio4(bool set); -char recv_buff[BUFFER_SIZE] = {0}; +#if IS_COORDINATOR +void coordinator(); +#else +void routeur(); +#endif int main() { - ReadFile(); xbee_init(); - char sensor_buffer[64] = {}; +#if IS_COORDINATOR + coordinator(); +#else + routeur(); +#endif +} +void set_remote_xbee_dio4(bool set) +{ + if (set) + { + remote_at_command_set(AT_COMMAND_DIO4_MSB, AT_COMMAND_DIO4_LSB, + AT_COMMAND_DIO_OUT_LOW, 0x02); + } + else + { + remote_at_command_set(AT_COMMAND_DIO4_MSB, AT_COMMAND_DIO4_LSB, + AT_COMMAND_DIO_OUT_HIGH, 0x02); + } +} #if IS_COORDINATOR +void coordinator() +{ + + Serial pc(USBTX, USBRX); // tx, rx + coordinator_config_t config = read_coordinator_config(); + frame_t current_frame; bool toggle_led = false; - /*printf("Websocket Example v1.0.0\r\n"); - EthernetInterface eth; - eth.init(); //[URL]//Use[/URL] DHCP - eth.connect(); - printf("IP Address is %s\n\r", eth.getIPAddress()); - Websocket ws("ws://sockets.mbed.org:443/ws/demo/rw"); - ws.connect(); - - while (1) { - int res = ws.send("WebSocket Hello World!"); - wait(0.1); - }*/ - -#else - initialize_sensors(); - DECLARE_ADDR64_COORD - DECLARE_ADDR16_UNKNOWN_OR_BCAST -#endif - while(1) { - -#if IS_COORDINATOR + while(1) + { bool finished_packet = receive(¤t_frame, BUFFER_SIZE); - + if (finished_packet) { pc.printf("Data count = %u\r\n", current_frame.length); @@ -58,27 +68,33 @@ pc.putc(current_frame.buffer[i]); } pc.printf(" :::end\n\r"); - - if (toggle_led) - { - remote_at_command_set(AT_COMMAND_DIO4_MSB, AT_COMMAND_DIO4_LSB, - AT_COMMAND_DIO_OUT_LOW, 0x02); - } - else - { - remote_at_command_set(AT_COMMAND_DIO4_MSB, AT_COMMAND_DIO4_LSB, - AT_COMMAND_DIO_OUT_HIGH, 0x02); - } - toggle_led = !toggle_led; } + set_remote_xbee_dio4(toggle_led); + toggle_led = !toggle_led; + + wait(1); + } +} #else +void routeur() +{ + Serial pc(USBTX, USBRX); // tx, rx + router_config_t config = read_router_config(); + + char sensor_buffer[64] = {}; + initialize_sensors(); + DECLARE_ADDR64_COORD + DECLARE_ADDR16_UNKNOWN_OR_BCAST + + while(1) + { SENSOR accel = (*p[0])(); sprintf(sensor_buffer, "%3.2f%3.2f%3.2f", accel.Accelerometre.x, accel.Accelerometre.y, accel.Accelerometre.z); transmit_request(sensor_buffer, 15, 0, USE_ADDR64_COORD, USE_ADDR16_UNKNOWN_OR_BCAST); - wait(2); -#endif + wait(config.refresh_freq); } } +#endif \ No newline at end of file