Nico De Witte / Mbed 2 deprecated tcp_machine_vision_server_single_client

Dependencies:   C12832 EthernetInterface mbed-rtos mbed ConfigFile

main.cpp

Committer:
dwini
Date:
2015-03-05
Revision:
2:a8eebf64cd3e
Parent:
1:8efef658d90b
Child:
3:254a2671a8e3

File content as of revision 2:a8eebf64cd3e:

#include "mbed.h"
#include "EthernetInterface.h"
#include "C12832.h"
#include "Log.h"
#include "TcpDaemon.h"

#define MAX_BACKLOG 1
#define TCP_SERVER_PORT 6666

#define LCD_LINE_HEIGHT 12
#define DELAY_INDICATION 0

#define STR_FAIL "FAIL"
#define STR_OK "OK"
#define STR_CLEAR "CLEAR"

Serial pc(USBTX,USBRX);
DigitalOut error_led(LED1);
C12832 lcd(p5, p7, p6, p8, p11);

PwmOut rOut (p23);
PwmOut gOut (p24);
PwmOut bOut (p25);

using namespace MachineVision;

void setLcdServerInfo(char * ip) {
    lcd.cls();
    lcd.locate(0,0);
    lcd.printf("IP: %s", ip);
    lcd.locate(0,14);
    lcd.printf("Port: %d", TCP_SERVER_PORT);
}

void setRGB(int r, int g, int b) {
    rOut = r;
    gOut = g;
    bOut = b;
}

void clearRGB(void) {
    setRGB(255, 255, 255);
}

void initRgb(void) {
    rOut.period(0.001);  // set pwm period
    gOut.period(0.001);  // set pwm period
    bOut.period(0.001);  // set pwm period
    
    setRGB(255, 255, 255);
}

void indicateOk(void) {
    setRGB(255, 0, 255);
}

void indicateFail(void) {
    setRGB(0, 255, 255);
}

int main (void) {
    // Init RGB led
    initRgb();
    
    pc.baud(115200);
        
    // Status check
    for (int i = 0; i < 4; i++) {
        indicateOk();
        indicateFail();
    }
    clearRGB();
    
    EthernetInterface eth;
    Log::v("Requesting IP address from DHCP\r\n");
    eth.init();         //Use DHCP
    
    if (eth.connect() < 0) {
        Log::w("Could not retrieve IP address from DHCP\r\n");
        setLcdServerInfo("No ip address");
    } else {
        Log::v("IP Address is %s\r\n", eth.getIPAddress());
        
        // Set ip on LCD
        setLcdServerInfo(eth.getIPAddress());
    
        // Start the daemon
        TcpDaemon daemon(TCP_SERVER_PORT, LED2);
        Log::v("TCP daemon listening @ TCP_SERVER_PORT = %d\r\n", TCP_SERVER_PORT);
        daemon.startListening();
    }
    
    // Should never be reached
    while (true) {
        error_led = 1;
        wait(0.25);
        error_led = 0;
        wait(0.25);
    }
}