meter_controller_223_LED
Dependencies: EthernetInterface mbed-rtos mbed
main.cpp
- Committer:
- shindo
- Date:
- 2012-11-07
- Revision:
- 0:e0c9a84c55c9
- Child:
- 1:95407c4ef69e
File content as of revision 0:e0c9a84c55c9:
#include "mbed.h" #include "mbed.h" #include "EthernetInterface.h" #define ECHO_SERVER_PORT 10373 DigitalOut digitalclock_colon (p17); DigitalOut digitalclock (p18); DigitalOut signal_LED_L (p19); DigitalOut signal_LED_R (p20); PwmOut meter_LED_outside (p21); PwmOut meter_LED_inside (p22); PwmOut needle_LED (p23); PwmOut range_LED_1 (p24); PwmOut range_LED_2 (p25); PwmOut range_LED_3 (p26); int main() { EthernetInterface eth; eth.init(); //Use DHCP eth.connect(); printf("IP Address is %s\n", eth.getIPAddress()); TCPSocketServer server; server.bind(ECHO_SERVER_PORT); server.listen(); meter_LED_outside.period_ms (1); int i = 0; //int j = 0; while (1) { TCPSocketConnection client; server.accept(client); client.set_blocking(false, 1500); printf("Client connected %s\n", client.get_address()); char buffer[256]; while (true) { int n = client.receive(buffer, sizeof(buffer)); if (n > 0) { int target = (buffer[1] - '0') * 100 + (buffer[2] - '0') * 10 + (buffer[3] - '0'); if (buffer[0] == 'A') { digitalclock = 1; digitalclock_colon = 1; wait (0.5); digitalclock_colon = 0; wait (0.5); if (i <= 0) { for(float p = 0.0f; p < 1.0f; p += 0.01f) { meter_LED_outside = p; wait(0.01); } for(float p = 0.0f; p < 1.0f; p += 0.01f) { meter_LED_inside = p; wait(0.01); } for(float p = 0.0f; p < 1.0f; p += 0.01f) { range_LED_3 = p; wait(0.01); } for(float p = 0.0f; p < 1.0f; p += 0.01f) { range_LED_2 = p; wait(0.01); } for(float p = 0.0f; p < 1.0f; p += 0.01f) { range_LED_1 = p; wait(0.01); } for(float p = 0.0f; p < 1.0f; p += 0.01f) { needle_LED = p; wait(0.01); } for(float p = 1.0f; p > 0.0f; p -= 0.01f) { meter_LED_outside = p; meter_LED_inside = p; range_LED_3 = p; range_LED_2 = p; range_LED_1 = p; needle_LED = p; wait(0.01); } signal_LED_L = 1; signal_LED_R = 1; wait (0.5); signal_LED_L = 0; signal_LED_R = 0; wait (0.5); wait(1.0); for(float p = 0.0f; p < 0.2f; p += 0.01f) { meter_LED_outside = p; meter_LED_inside = p; // range_LED_3 = p; range_LED_2 = p; //range_LED_1 = p; needle_LED = (p + 0.8); wait(0.05); } i++; } } else if (buffer[0] == 'B') { digitalclock = 0; digitalclock_colon = 0; for(float p = 0.8f; p > 0.0f; p -= 0.01f) { meter_LED_outside = p; meter_LED_inside = p; range_LED_3 = p; range_LED_2 = p; range_LED_1 = p; needle_LED = p; wait(0.01); } } else if (buffer[0] == 'F') { meter_LED_outside = target / 10.0; } else if (buffer[0] == 'G') { meter_LED_inside = target / 10.0; } } } } }