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:26:09 2013 +0000
Revision:
1:50e52569be43
Parent:
0:a3d60f53f22f
Child:
2:8d1e7078c230
Code cleanup

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 1:50e52569be43 40 // receive udp packet
dan 0:a3d60f53f22f 41 int n = server.receiveFrom(client, buffer, sizeof(buffer) - 1);
dan 1:50e52569be43 42 if (n == sizeof(buffer) - 1) continue;
dan 1:50e52569be43 43
dan 0:a3d60f53f22f 44 buffer[n] = 0;
dan 0:a3d60f53f22f 45
dan 1:50e52569be43 46 // parse the packet
dan 0:a3d60f53f22f 47 if (parse_sensor_packet(buffer, &pd) == 0) continue;
dan 0:a3d60f53f22f 48
dan 1:50e52569be43 49 // accelerometer x axis
dan 0:a3d60f53f22f 50 if (pd.ax > 0) {
dan 0:a3d60f53f22f 51 led_left = 0;
dan 0:a3d60f53f22f 52 led_right = fabs(pd.ax) * 2;
dan 0:a3d60f53f22f 53 } else {
dan 0:a3d60f53f22f 54 led_left = fabs(pd.ax) * 2;
dan 0:a3d60f53f22f 55 led_right = 0;
dan 0:a3d60f53f22f 56 }
dan 0:a3d60f53f22f 57
dan 1:50e52569be43 58 // accelerometer y axis
dan 0:a3d60f53f22f 59 if (pd.ay > 0) {
dan 0:a3d60f53f22f 60 led_up = 0;
dan 0:a3d60f53f22f 61 led_down = fabs(pd.ay) * 2;
dan 0:a3d60f53f22f 62 } else {
dan 0:a3d60f53f22f 63 led_up = fabs(pd.ay) * 2;
dan 0:a3d60f53f22f 64 led_down = 0;
dan 0:a3d60f53f22f 65 }
dan 0:a3d60f53f22f 66 }
dan 0:a3d60f53f22f 67 }
dan 0:a3d60f53f22f 68
dan 0:a3d60f53f22f 69 int main() {
dan 0:a3d60f53f22f 70 lcd.cls();
dan 0:a3d60f53f22f 71 ethernet_init();
dan 0:a3d60f53f22f 72 main_loop();
dan 0:a3d60f53f22f 73 }