Nico De Witte / Mbed 2 deprecated tcp_machine_vision_server_single_client

Dependencies:   C12832 EthernetInterface mbed-rtos mbed ConfigFile

Committer:
dwini
Date:
Thu Mar 05 13:18:28 2015 +0000
Revision:
1:8efef658d90b
Parent:
0:bef69e35f486
Child:
2:a8eebf64cd3e
Create TCP Daemon and some logging (most of TRex code).

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dwini 0:bef69e35f486 1 #include "mbed.h"
dwini 0:bef69e35f486 2 #include "EthernetInterface.h"
dwini 0:bef69e35f486 3 #include "C12832.h"
dwini 1:8efef658d90b 4 #include "Log.h"
dwini 1:8efef658d90b 5 #include "TcpDaemon.h"
dwini 0:bef69e35f486 6
dwini 1:8efef658d90b 7 #define MAX_BACKLOG 1
dwini 1:8efef658d90b 8 #define TCP_SERVER_PORT 6666
dwini 1:8efef658d90b 9
dwini 0:bef69e35f486 10 #define LCD_LINE_HEIGHT 12
dwini 0:bef69e35f486 11 #define DELAY_INDICATION 0
dwini 0:bef69e35f486 12
dwini 0:bef69e35f486 13 #define STR_FAIL "FAIL"
dwini 0:bef69e35f486 14 #define STR_OK "OK"
dwini 0:bef69e35f486 15 #define STR_CLEAR "CLEAR"
dwini 0:bef69e35f486 16
dwini 0:bef69e35f486 17 Serial pc(USBTX,USBRX);
dwini 1:8efef658d90b 18 DigitalOut error_led(LED1);
dwini 0:bef69e35f486 19 C12832 lcd(p5, p7, p6, p8, p11);
dwini 0:bef69e35f486 20
dwini 0:bef69e35f486 21 PwmOut rOut (p23);
dwini 0:bef69e35f486 22 PwmOut gOut (p24);
dwini 0:bef69e35f486 23 PwmOut bOut (p25);
dwini 0:bef69e35f486 24
dwini 1:8efef658d90b 25 using namespace MachineVision;
dwini 1:8efef658d90b 26
dwini 0:bef69e35f486 27 void setLcdServerInfo(char * ip) {
dwini 0:bef69e35f486 28 lcd.cls();
dwini 0:bef69e35f486 29 lcd.locate(0,0);
dwini 1:8efef658d90b 30 lcd.printf("IP: %s", ip);
dwini 1:8efef658d90b 31 lcd.locate(0,14);
dwini 1:8efef658d90b 32 lcd.printf("Port: %d", TCP_SERVER_PORT);
dwini 0:bef69e35f486 33 }
dwini 0:bef69e35f486 34
dwini 0:bef69e35f486 35 void setRGB(int r, int g, int b) {
dwini 0:bef69e35f486 36 rOut = r;
dwini 0:bef69e35f486 37 gOut = g;
dwini 0:bef69e35f486 38 bOut = b;
dwini 0:bef69e35f486 39 }
dwini 0:bef69e35f486 40
dwini 0:bef69e35f486 41 void clearRGB(void) {
dwini 0:bef69e35f486 42 setRGB(255, 255, 255);
dwini 0:bef69e35f486 43 }
dwini 0:bef69e35f486 44
dwini 0:bef69e35f486 45 void initRgb(void) {
dwini 0:bef69e35f486 46 rOut.period(0.001); // set pwm period
dwini 0:bef69e35f486 47 gOut.period(0.001); // set pwm period
dwini 0:bef69e35f486 48 bOut.period(0.001); // set pwm period
dwini 0:bef69e35f486 49
dwini 0:bef69e35f486 50 setRGB(255, 255, 255);
dwini 0:bef69e35f486 51 }
dwini 0:bef69e35f486 52
dwini 0:bef69e35f486 53 void indicateOk(void) {
dwini 0:bef69e35f486 54 setRGB(255, 0, 255);
dwini 0:bef69e35f486 55 }
dwini 0:bef69e35f486 56
dwini 0:bef69e35f486 57 void indicateFail(void) {
dwini 0:bef69e35f486 58 setRGB(0, 255, 255);
dwini 0:bef69e35f486 59 }
dwini 0:bef69e35f486 60
dwini 0:bef69e35f486 61 int main (void) {
dwini 0:bef69e35f486 62 // Init RGB led
dwini 0:bef69e35f486 63 initRgb();
dwini 0:bef69e35f486 64
dwini 0:bef69e35f486 65 pc.baud(115200);
dwini 1:8efef658d90b 66
dwini 0:bef69e35f486 67 // Status check
dwini 0:bef69e35f486 68 for (int i = 0; i < 4; i++) {
dwini 0:bef69e35f486 69 indicateOk();
dwini 0:bef69e35f486 70 indicateFail();
dwini 0:bef69e35f486 71 }
dwini 0:bef69e35f486 72 clearRGB();
dwini 0:bef69e35f486 73
dwini 1:8efef658d90b 74 EthernetInterface eth;
dwini 1:8efef658d90b 75 Log::v("Requesting IP address from DHCP\r\n");
dwini 1:8efef658d90b 76 eth.init(); //Use DHCP
dwini 1:8efef658d90b 77
dwini 1:8efef658d90b 78 if (eth.connect() < 0) {
dwini 1:8efef658d90b 79 Log::w("Could not retrieve IP address from DHCP\r\n");
dwini 1:8efef658d90b 80 setLcdServerInfo("No ip address");
dwini 1:8efef658d90b 81 } else {
dwini 1:8efef658d90b 82 Log::v("IP Address is %s\r\n", eth.getIPAddress());
dwini 0:bef69e35f486 83
dwini 1:8efef658d90b 84 // Set ip on LCD
dwini 0:bef69e35f486 85 setLcdServerInfo(eth.getIPAddress());
dwini 1:8efef658d90b 86
dwini 1:8efef658d90b 87 // Start the daemon
dwini 1:8efef658d90b 88 TcpDaemon daemon(TCP_SERVER_PORT);
dwini 1:8efef658d90b 89 Log::v("TCP daemon listening @ TCP_SERVER_PORT = %d\r\n", TCP_SERVER_PORT);
dwini 1:8efef658d90b 90 daemon.startListening();
dwini 1:8efef658d90b 91 }
dwini 1:8efef658d90b 92
dwini 1:8efef658d90b 93 // Should never be reached
dwini 1:8efef658d90b 94 while (true) {
dwini 1:8efef658d90b 95 error_led = 1;
dwini 1:8efef658d90b 96 wait(0.25);
dwini 1:8efef658d90b 97 error_led = 0;
dwini 1:8efef658d90b 98 wait(0.25);
dwini 0:bef69e35f486 99 }
dwini 0:bef69e35f486 100 }