meter_controller_223_LED
Dependencies: EthernetInterface mbed-rtos mbed
main.cpp
- Committer:
- junTMUG
- Date:
- 2012-11-16
- Revision:
- 5:4c120fde3e73
- Parent:
- 4:1247fae2410a
File content as of revision 5:4c120fde3e73:
#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 Other_range_LED (p24); PwmOut D_range_LED (p25); PwmOut P_range_LED (p26); void meter_LED_outside_flashing1() { meter_LED_outside = 0; wait_ms(100); meter_LED_outside = 0.1; wait_ms(100); meter_LED_outside = 0; wait_ms(100); meter_LED_outside = 0.1; wait_ms(100); meter_LED_outside = 0; wait_ms(100); meter_LED_outside = 0.1; } void meter_LED_outside_flashing2() { meter_LED_outside = 0; wait_ms(100); meter_LED_outside = 0.1; wait_ms(100); meter_LED_outside = 0; wait_ms(100); meter_LED_outside = 0.1; wait_ms(100); meter_LED_outside = 0; wait_ms(100); meter_LED_outside = 0.1; wait_ms(100); meter_LED_outside = 0; wait_ms(100); meter_LED_outside = 0.1; wait_ms(100); meter_LED_outside = 0; wait_ms(100); meter_LED_outside = 0.1; } 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); P_range_LED = 0.5; wait(0.5); P_range_LED = 0.0; P_range_LED = 0.5; wait(0.5); P_range_LED = 0.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') { for(float p = 0.0f; p < 0.8f; p += 0.02f) { meter_LED_outside = p; wait(0.01); } for(float p = 0.0f; p < 0.8f; p += 0.02f) { meter_LED_inside = p; wait(0.01); } for(float p = 0.0f; p < 0.8f; p += 0.02f) { P_range_LED = p; wait(0.01); } for(float p = 0.0f; p < 0.8f; p += 0.02f) { D_range_LED = p; wait(0.01); } for(float p = 0.0f; p < 0.8f; p += 0.02f) { Other_range_LED = p; wait(0.01); } for(float p = 0.0f; p < 0.8f; p += 0.02f) { needle_LED = p; wait(0.01); } for(float p = 1.0f; p > 0.0f; p -= 0.02f) { meter_LED_outside = p; meter_LED_inside = p; P_range_LED = p; D_range_LED = p; Other_range_LED = 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); signal_LED_L = 1; signal_LED_R = 1; wait (0.5); signal_LED_L = 0; signal_LED_R = 0; needle_LED = (1.0); wait (3.5); for(float p = 0.0f; p < 0.1f; p += 0.01f) { meter_LED_outside = p; meter_LED_inside = p; P_range_LED = p; wait(0.05); } digitalclock = 1; } 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; P_range_LED = p; D_range_LED = p; Other_range_LED = p; needle_LED = p; wait(0.01); } } else if (buffer[0] == 'P') { meter_LED_outside = ((target / 10.0)); } else if (buffer[0] == 'Q') { meter_LED_inside = ((target / 10.0)); } else if (buffer[0] == 'R') { needle_LED = ((target / 10.0)); } else if (buffer[0] == 'C') { /* int count_1 = 0; int t = 0; P_range_LED = 0; D_range_LED = 0.1; while(count_1 < 8) { if (t ==0) { wait(10.0); meter_LED_outside_flashing1(); } else if (t == 1) { wait_ms(2500-700); meter_LED_outside_flashing1(); } else if (t == 2) { wait_ms(2200-700); meter_LED_outside_flashing1(); } else if (t == 3) { wait_ms(2500-700); meter_LED_outside_flashing1(); } else if (t == 4) { wait_ms(4000-700); meter_LED_outside_flashing2(); } else if (t == 5) { wait_ms(4000-700); meter_LED_outside_flashing2(); } else if (t == 6) { wait_ms(6000-700); meter_LED_outside_flashing2(); } else if (t == 7) { wait(36); D_range_LED = 0; P_range_LED = 0.1; t = 0; } wait_ms(200); t++; count_1++; } */ switch (target) { case 0: D_range_LED = 0.1; P_range_LED = 0; break; case 1: meter_LED_outside_flashing2(); break; case 2: meter_LED_outside_flashing2(); break; default: D_range_LED = 0; P_range_LED = 0.1; break; } } else if (buffer[0] == 'K') { for (int i = 0; i < 5; i++) { signal_LED_L = 1; wait (0.5); signal_LED_L = 0; if (i < 4) wait (0.5); } } else if (buffer[0] == 'L') { for (int i = 0; i < 5; i++) { signal_LED_L = 1; signal_LED_R = 1; wait (0.5); signal_LED_L = 0; signal_LED_R = 0; if (i < 4) wait (0.5); } } else if (buffer[0] == 'M') { for (int i = 0; i < 5; i++) { signal_LED_R = 1; wait (0.5); signal_LED_R = 0; if (i < 4) wait (0.5); } } else if (buffer[0] == 'S') { meter_LED_outside = 0.1; meter_LED_inside = 0.1; needle_LED = 1.0; } } digitalclock_colon = 1; wait (0.5); digitalclock_colon = 0; //wait (0.25); } } }