Demo Team / Mbed 2 deprecated SensorStream_BlinkyDemo

Dependencies:   C12832_lcd EthernetInterface SensorDataParser mbed-rtos mbed USBDevice

Fork of SensorStream_BlinkyDemo by Demo Team

Committer:
dan
Date:
Mon Oct 28 03:20:03 2013 +0000
Revision:
0:a3d60f53f22f
Child:
1:50e52569be43
Initial release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dan 0:a3d60f53f22f 1 #include "mbed.h"
dan 0:a3d60f53f22f 2 #include "EthernetInterface.h"
dan 0:a3d60f53f22f 3 #include "C12832_lcd.h"
dan 0:a3d60f53f22f 4 #include "SensorDataParser.h"
dan 0:a3d60f53f22f 5 #include <math.h>
dan 0:a3d60f53f22f 6
dan 0:a3d60f53f22f 7 static EthernetInterface eth;
dan 0:a3d60f53f22f 8 static C12832_LCD lcd;
dan 0:a3d60f53f22f 9 static Serial pc(USBTX, USBRX);
dan 0:a3d60f53f22f 10
dan 0:a3d60f53f22f 11 DigitalOut led_left(LED1);
dan 0:a3d60f53f22f 12 DigitalOut led_up(LED2);
dan 0:a3d60f53f22f 13 DigitalOut led_down(LED3);
dan 0:a3d60f53f22f 14 DigitalOut led_right(LED4);
dan 0:a3d60f53f22f 15
dan 0:a3d60f53f22f 16 // Configuration
dan 0:a3d60f53f22f 17 #define SERVER_PORT 5555
dan 0:a3d60f53f22f 18 #define MAX_BUF_SIZE 512
dan 0:a3d60f53f22f 19 #define SENSE_DELTA 0.1
dan 0:a3d60f53f22f 20
dan 0:a3d60f53f22f 21 static void ethernet_init() {
dan 0:a3d60f53f22f 22 eth.init();
dan 0:a3d60f53f22f 23 if(eth.connect(30000) == 0)
dan 0:a3d60f53f22f 24 pc.printf("Connect OK\n\r");
dan 0:a3d60f53f22f 25
dan 0:a3d60f53f22f 26 lcd.locate(0,0);
dan 0:a3d60f53f22f 27 lcd.printf("IP:%s", eth.getIPAddress());
dan 0:a3d60f53f22f 28
dan 0:a3d60f53f22f 29 pc.printf("IP Address: %s\n\r", eth.getIPAddress());
dan 0:a3d60f53f22f 30 }
dan 0:a3d60f53f22f 31
dan 0:a3d60f53f22f 32 static void main_loop() {
dan 0:a3d60f53f22f 33 UDPSocket server;
dan 0:a3d60f53f22f 34 Endpoint client;
dan 0:a3d60f53f22f 35 char buffer[MAX_BUF_SIZE];
dan 0:a3d60f53f22f 36 SENSOR_DATA pd;
dan 0:a3d60f53f22f 37
dan 0:a3d60f53f22f 38 server.bind(SERVER_PORT);
dan 0:a3d60f53f22f 39 while (true) {
dan 0:a3d60f53f22f 40 int n = server.receiveFrom(client, buffer, sizeof(buffer) - 1);
dan 0:a3d60f53f22f 41 if (n == sizeof(buffer) - 1)
dan 0:a3d60f53f22f 42 continue;
dan 0:a3d60f53f22f 43 buffer[n] = 0;
dan 0:a3d60f53f22f 44
dan 0:a3d60f53f22f 45 if (parse_sensor_packet(buffer, &pd) == 0) continue;
dan 0:a3d60f53f22f 46
dan 0:a3d60f53f22f 47 if(fabs(pd.ax) > SENSE_DELTA) {
dan 0:a3d60f53f22f 48 //printf("ax: %f\r\n", pd.ax);
dan 0:a3d60f53f22f 49 }
dan 0:a3d60f53f22f 50 if(fabs(pd.ay) > SENSE_DELTA) {
dan 0:a3d60f53f22f 51 //printf("ay: %f\r\n", pd.ay);
dan 0:a3d60f53f22f 52 }
dan 0:a3d60f53f22f 53
dan 0:a3d60f53f22f 54 if (pd.ax > 0) {
dan 0:a3d60f53f22f 55 led_left = 0;
dan 0:a3d60f53f22f 56 led_right = fabs(pd.ax) * 2;
dan 0:a3d60f53f22f 57 } else {
dan 0:a3d60f53f22f 58 led_left = fabs(pd.ax) * 2;
dan 0:a3d60f53f22f 59 led_right = 0;
dan 0:a3d60f53f22f 60 }
dan 0:a3d60f53f22f 61
dan 0:a3d60f53f22f 62 if (pd.ay > 0) {
dan 0:a3d60f53f22f 63 led_up = 0;
dan 0:a3d60f53f22f 64 led_down = fabs(pd.ay) * 2;
dan 0:a3d60f53f22f 65 } else {
dan 0:a3d60f53f22f 66 led_up = fabs(pd.ay) * 2;
dan 0:a3d60f53f22f 67 led_down = 0;
dan 0:a3d60f53f22f 68 }
dan 0:a3d60f53f22f 69 }
dan 0:a3d60f53f22f 70 }
dan 0:a3d60f53f22f 71
dan 0:a3d60f53f22f 72 int main() {
dan 0:a3d60f53f22f 73 lcd.cls();
dan 0:a3d60f53f22f 74 ethernet_init();
dan 0:a3d60f53f22f 75 main_loop();
dan 0:a3d60f53f22f 76 }