meter_controller_223_LED

Dependencies:   EthernetInterface mbed-rtos mbed

Committer:
junTMUG
Date:
Fri Nov 16 08:34:19 2012 +0000
Revision:
5:4c120fde3e73
Parent:
4:1247fae2410a
Motor????????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shindo 0:e0c9a84c55c9 1 #include "mbed.h"
shindo 0:e0c9a84c55c9 2 #include "mbed.h"
shindo 0:e0c9a84c55c9 3 #include "EthernetInterface.h"
shindo 0:e0c9a84c55c9 4
shindo 0:e0c9a84c55c9 5 #define ECHO_SERVER_PORT 10373
shindo 0:e0c9a84c55c9 6
shindo 0:e0c9a84c55c9 7 DigitalOut digitalclock_colon (p17);
shindo 0:e0c9a84c55c9 8 DigitalOut digitalclock (p18);
shindo 0:e0c9a84c55c9 9 DigitalOut signal_LED_L (p19);
shindo 0:e0c9a84c55c9 10 DigitalOut signal_LED_R (p20);
shindo 0:e0c9a84c55c9 11
shindo 0:e0c9a84c55c9 12 PwmOut meter_LED_outside (p21);
shindo 0:e0c9a84c55c9 13 PwmOut meter_LED_inside (p22);
shindo 0:e0c9a84c55c9 14 PwmOut needle_LED (p23);
shindo 3:82cf87db7ef4 15 PwmOut Other_range_LED (p24);
shindo 3:82cf87db7ef4 16 PwmOut D_range_LED (p25);
shindo 3:82cf87db7ef4 17 PwmOut P_range_LED (p26);
shindo 3:82cf87db7ef4 18
shindo 3:82cf87db7ef4 19 void meter_LED_outside_flashing1()
shindo 3:82cf87db7ef4 20 {
shindo 3:82cf87db7ef4 21 meter_LED_outside = 0;
shindo 3:82cf87db7ef4 22 wait_ms(100);
shindo 4:1247fae2410a 23 meter_LED_outside = 0.1;
shindo 3:82cf87db7ef4 24 wait_ms(100);
shindo 3:82cf87db7ef4 25 meter_LED_outside = 0;
shindo 3:82cf87db7ef4 26 wait_ms(100);
shindo 4:1247fae2410a 27 meter_LED_outside = 0.1;
shindo 3:82cf87db7ef4 28 wait_ms(100);
shindo 3:82cf87db7ef4 29 meter_LED_outside = 0;
shindo 3:82cf87db7ef4 30 wait_ms(100);
shindo 4:1247fae2410a 31 meter_LED_outside = 0.1;
shindo 3:82cf87db7ef4 32 }
shindo 3:82cf87db7ef4 33 void meter_LED_outside_flashing2()
shindo 3:82cf87db7ef4 34 {
shindo 3:82cf87db7ef4 35 meter_LED_outside = 0;
shindo 3:82cf87db7ef4 36 wait_ms(100);
shindo 4:1247fae2410a 37 meter_LED_outside = 0.1;
shindo 3:82cf87db7ef4 38 wait_ms(100);
shindo 3:82cf87db7ef4 39 meter_LED_outside = 0;
shindo 3:82cf87db7ef4 40 wait_ms(100);
shindo 4:1247fae2410a 41 meter_LED_outside = 0.1;
shindo 3:82cf87db7ef4 42 wait_ms(100);
shindo 3:82cf87db7ef4 43 meter_LED_outside = 0;
shindo 3:82cf87db7ef4 44 wait_ms(100);
shindo 4:1247fae2410a 45 meter_LED_outside = 0.1;
shindo 3:82cf87db7ef4 46 wait_ms(100);
shindo 3:82cf87db7ef4 47 meter_LED_outside = 0;
shindo 3:82cf87db7ef4 48 wait_ms(100);
shindo 4:1247fae2410a 49 meter_LED_outside = 0.1;
shindo 3:82cf87db7ef4 50 wait_ms(100);
shindo 3:82cf87db7ef4 51 meter_LED_outside = 0;
shindo 3:82cf87db7ef4 52 wait_ms(100);
shindo 4:1247fae2410a 53 meter_LED_outside = 0.1;
shindo 3:82cf87db7ef4 54 }
shindo 0:e0c9a84c55c9 55
shindo 0:e0c9a84c55c9 56 int main()
shindo 0:e0c9a84c55c9 57 {
shindo 0:e0c9a84c55c9 58 EthernetInterface eth;
shindo 0:e0c9a84c55c9 59 eth.init(); //Use DHCP
shindo 0:e0c9a84c55c9 60 eth.connect();
shindo 0:e0c9a84c55c9 61 printf("IP Address is %s\n", eth.getIPAddress());
shindo 0:e0c9a84c55c9 62
shindo 0:e0c9a84c55c9 63 TCPSocketServer server;
shindo 0:e0c9a84c55c9 64 server.bind(ECHO_SERVER_PORT);
shindo 0:e0c9a84c55c9 65 server.listen();
shindo 0:e0c9a84c55c9 66
shindo 0:e0c9a84c55c9 67 meter_LED_outside.period_ms (1);
junTMUG 5:4c120fde3e73 68
shindo 4:1247fae2410a 69 P_range_LED = 0.5;
shindo 4:1247fae2410a 70 wait(0.5);
shindo 4:1247fae2410a 71 P_range_LED = 0.0;
shindo 4:1247fae2410a 72 P_range_LED = 0.5;
shindo 4:1247fae2410a 73 wait(0.5);
shindo 4:1247fae2410a 74 P_range_LED = 0.0;
shindo 0:e0c9a84c55c9 75
shindo 0:e0c9a84c55c9 76 while (1) {
shindo 0:e0c9a84c55c9 77 TCPSocketConnection client;
shindo 0:e0c9a84c55c9 78 server.accept(client);
shindo 0:e0c9a84c55c9 79 client.set_blocking(false, 1500);
shindo 0:e0c9a84c55c9 80 printf("Client connected %s\n", client.get_address());
shindo 0:e0c9a84c55c9 81
shindo 0:e0c9a84c55c9 82 char buffer[256];
shindo 0:e0c9a84c55c9 83 while (true) {
shindo 0:e0c9a84c55c9 84 int n = client.receive(buffer, sizeof(buffer));
shindo 0:e0c9a84c55c9 85 if (n > 0) {
shindo 2:c1d4ea63ab89 86 int target = (buffer[1] - '0') * 100 + (buffer[2] - '0') * 10 + (buffer[3] - '0');
shindo 1:95407c4ef69e 87
junTMUG 5:4c120fde3e73 88 if (buffer[0] == 'A') {
junTMUG 5:4c120fde3e73 89 for(float p = 0.0f; p < 0.8f; p += 0.02f) {
junTMUG 5:4c120fde3e73 90 meter_LED_outside = p;
junTMUG 5:4c120fde3e73 91 wait(0.01);
junTMUG 5:4c120fde3e73 92 }
junTMUG 5:4c120fde3e73 93 for(float p = 0.0f; p < 0.8f; p += 0.02f) {
junTMUG 5:4c120fde3e73 94 meter_LED_inside = p;
junTMUG 5:4c120fde3e73 95 wait(0.01);
junTMUG 5:4c120fde3e73 96 }
junTMUG 5:4c120fde3e73 97 for(float p = 0.0f; p < 0.8f; p += 0.02f) {
junTMUG 5:4c120fde3e73 98 P_range_LED = p;
junTMUG 5:4c120fde3e73 99 wait(0.01);
junTMUG 5:4c120fde3e73 100 }
junTMUG 5:4c120fde3e73 101 for(float p = 0.0f; p < 0.8f; p += 0.02f) {
junTMUG 5:4c120fde3e73 102 D_range_LED = p;
junTMUG 5:4c120fde3e73 103 wait(0.01);
junTMUG 5:4c120fde3e73 104 }
junTMUG 5:4c120fde3e73 105 for(float p = 0.0f; p < 0.8f; p += 0.02f) {
junTMUG 5:4c120fde3e73 106 Other_range_LED = p;
junTMUG 5:4c120fde3e73 107 wait(0.01);
junTMUG 5:4c120fde3e73 108 }
junTMUG 5:4c120fde3e73 109 for(float p = 0.0f; p < 0.8f; p += 0.02f) {
junTMUG 5:4c120fde3e73 110 needle_LED = p;
junTMUG 5:4c120fde3e73 111 wait(0.01);
junTMUG 5:4c120fde3e73 112 }
junTMUG 5:4c120fde3e73 113 for(float p = 1.0f; p > 0.0f; p -= 0.02f) {
junTMUG 5:4c120fde3e73 114 meter_LED_outside = p;
junTMUG 5:4c120fde3e73 115 meter_LED_inside = p;
junTMUG 5:4c120fde3e73 116 P_range_LED = p;
junTMUG 5:4c120fde3e73 117 D_range_LED = p;
junTMUG 5:4c120fde3e73 118 Other_range_LED = p;
junTMUG 5:4c120fde3e73 119 needle_LED = p;
junTMUG 5:4c120fde3e73 120 wait(0.01);
junTMUG 5:4c120fde3e73 121 }
junTMUG 5:4c120fde3e73 122 signal_LED_L = 1;
junTMUG 5:4c120fde3e73 123 signal_LED_R = 1;
junTMUG 5:4c120fde3e73 124 wait (0.5);
junTMUG 5:4c120fde3e73 125 signal_LED_L = 0;
junTMUG 5:4c120fde3e73 126 signal_LED_R = 0;
junTMUG 5:4c120fde3e73 127 wait (0.5);
junTMUG 5:4c120fde3e73 128 signal_LED_L = 1;
junTMUG 5:4c120fde3e73 129 signal_LED_R = 1;
junTMUG 5:4c120fde3e73 130 wait (0.5);
junTMUG 5:4c120fde3e73 131 signal_LED_L = 0;
junTMUG 5:4c120fde3e73 132 signal_LED_R = 0;
junTMUG 5:4c120fde3e73 133 needle_LED = (1.0);
junTMUG 5:4c120fde3e73 134 wait (3.5);
shindo 0:e0c9a84c55c9 135
junTMUG 5:4c120fde3e73 136 for(float p = 0.0f; p < 0.1f; p += 0.01f) {
junTMUG 5:4c120fde3e73 137 meter_LED_outside = p;
junTMUG 5:4c120fde3e73 138 meter_LED_inside = p;
junTMUG 5:4c120fde3e73 139 P_range_LED = p;
junTMUG 5:4c120fde3e73 140 wait(0.05);
junTMUG 5:4c120fde3e73 141 }
junTMUG 5:4c120fde3e73 142 digitalclock = 1;
junTMUG 5:4c120fde3e73 143 } else if (buffer[0] == 'B') {
junTMUG 5:4c120fde3e73 144 digitalclock = 0;
junTMUG 5:4c120fde3e73 145 digitalclock_colon = 0;
junTMUG 5:4c120fde3e73 146 for(float p = 0.8f; p > 0.0f; p -= 0.01f) {
junTMUG 5:4c120fde3e73 147 meter_LED_outside = p;
junTMUG 5:4c120fde3e73 148 meter_LED_inside = p;
junTMUG 5:4c120fde3e73 149 P_range_LED = p;
junTMUG 5:4c120fde3e73 150 D_range_LED = p;
junTMUG 5:4c120fde3e73 151 Other_range_LED = p;
junTMUG 5:4c120fde3e73 152 needle_LED = p;
junTMUG 5:4c120fde3e73 153 wait(0.01);
junTMUG 5:4c120fde3e73 154 }
junTMUG 5:4c120fde3e73 155 } else if (buffer[0] == 'P') {
shindo 4:1247fae2410a 156 meter_LED_outside = ((target / 10.0));
shindo 3:82cf87db7ef4 157 } else if (buffer[0] == 'Q') {
shindo 4:1247fae2410a 158 meter_LED_inside = ((target / 10.0));
shindo 3:82cf87db7ef4 159 } else if (buffer[0] == 'R') {
shindo 4:1247fae2410a 160 needle_LED = ((target / 10.0));
shindo 3:82cf87db7ef4 161 } else if (buffer[0] == 'C') {
junTMUG 5:4c120fde3e73 162 /*
shindo 3:82cf87db7ef4 163 int count_1 = 0;
shindo 3:82cf87db7ef4 164 int t = 0;
shindo 3:82cf87db7ef4 165 P_range_LED = 0;
shindo 4:1247fae2410a 166 D_range_LED = 0.1;
shindo 4:1247fae2410a 167 while(count_1 < 8) {
shindo 3:82cf87db7ef4 168 if (t ==0) {
shindo 4:1247fae2410a 169 wait(10.0);
shindo 3:82cf87db7ef4 170 meter_LED_outside_flashing1();
shindo 3:82cf87db7ef4 171 } else if (t == 1) {
shindo 3:82cf87db7ef4 172 wait_ms(2500-700);
shindo 3:82cf87db7ef4 173 meter_LED_outside_flashing1();
shindo 3:82cf87db7ef4 174 } else if (t == 2) {
shindo 3:82cf87db7ef4 175 wait_ms(2200-700);
shindo 3:82cf87db7ef4 176 meter_LED_outside_flashing1();
shindo 3:82cf87db7ef4 177 } else if (t == 3) {
shindo 3:82cf87db7ef4 178 wait_ms(2500-700);
shindo 3:82cf87db7ef4 179 meter_LED_outside_flashing1();
shindo 3:82cf87db7ef4 180 } else if (t == 4) {
shindo 4:1247fae2410a 181 wait_ms(4000-700);
shindo 3:82cf87db7ef4 182 meter_LED_outside_flashing2();
shindo 3:82cf87db7ef4 183 } else if (t == 5) {
shindo 4:1247fae2410a 184 wait_ms(4000-700);
shindo 3:82cf87db7ef4 185 meter_LED_outside_flashing2();
shindo 3:82cf87db7ef4 186 } else if (t == 6) {
shindo 4:1247fae2410a 187 wait_ms(6000-700);
shindo 3:82cf87db7ef4 188 meter_LED_outside_flashing2();
shindo 4:1247fae2410a 189 } else if (t == 7) {
shindo 4:1247fae2410a 190 wait(36);
shindo 4:1247fae2410a 191 D_range_LED = 0;
shindo 4:1247fae2410a 192 P_range_LED = 0.1;
shindo 3:82cf87db7ef4 193 t = 0;
shindo 3:82cf87db7ef4 194 }
shindo 3:82cf87db7ef4 195 wait_ms(200);
shindo 3:82cf87db7ef4 196
shindo 3:82cf87db7ef4 197 t++;
shindo 3:82cf87db7ef4 198 count_1++;
shindo 3:82cf87db7ef4 199 }
junTMUG 5:4c120fde3e73 200 */
junTMUG 5:4c120fde3e73 201 switch (target) {
junTMUG 5:4c120fde3e73 202 case 0:
junTMUG 5:4c120fde3e73 203 D_range_LED = 0.1;
junTMUG 5:4c120fde3e73 204 P_range_LED = 0;
junTMUG 5:4c120fde3e73 205 break;
junTMUG 5:4c120fde3e73 206
junTMUG 5:4c120fde3e73 207 case 1:
junTMUG 5:4c120fde3e73 208 meter_LED_outside_flashing2();
junTMUG 5:4c120fde3e73 209 break;
junTMUG 5:4c120fde3e73 210
junTMUG 5:4c120fde3e73 211 case 2:
junTMUG 5:4c120fde3e73 212 meter_LED_outside_flashing2();
junTMUG 5:4c120fde3e73 213 break;
junTMUG 5:4c120fde3e73 214
junTMUG 5:4c120fde3e73 215 default:
junTMUG 5:4c120fde3e73 216 D_range_LED = 0;
junTMUG 5:4c120fde3e73 217 P_range_LED = 0.1;
junTMUG 5:4c120fde3e73 218 break;
junTMUG 5:4c120fde3e73 219 }
shindo 3:82cf87db7ef4 220 } else if (buffer[0] == 'K') {
junTMUG 5:4c120fde3e73 221 for (int i = 0; i < 5; i++) {
junTMUG 5:4c120fde3e73 222 signal_LED_L = 1;
junTMUG 5:4c120fde3e73 223 wait (0.5);
junTMUG 5:4c120fde3e73 224 signal_LED_L = 0;
junTMUG 5:4c120fde3e73 225 if (i < 4) wait (0.5);
junTMUG 5:4c120fde3e73 226 }
shindo 3:82cf87db7ef4 227 } else if (buffer[0] == 'L') {
junTMUG 5:4c120fde3e73 228 for (int i = 0; i < 5; i++) {
junTMUG 5:4c120fde3e73 229 signal_LED_L = 1;
junTMUG 5:4c120fde3e73 230 signal_LED_R = 1;
junTMUG 5:4c120fde3e73 231 wait (0.5);
junTMUG 5:4c120fde3e73 232 signal_LED_L = 0;
junTMUG 5:4c120fde3e73 233 signal_LED_R = 0;
junTMUG 5:4c120fde3e73 234 if (i < 4) wait (0.5);
junTMUG 5:4c120fde3e73 235 }
shindo 4:1247fae2410a 236 } else if (buffer[0] == 'M') {
junTMUG 5:4c120fde3e73 237 for (int i = 0; i < 5; i++) {
junTMUG 5:4c120fde3e73 238 signal_LED_R = 1;
junTMUG 5:4c120fde3e73 239 wait (0.5);
junTMUG 5:4c120fde3e73 240 signal_LED_R = 0;
junTMUG 5:4c120fde3e73 241 if (i < 4) wait (0.5);
junTMUG 5:4c120fde3e73 242 }
shindo 4:1247fae2410a 243 } else if (buffer[0] == 'S') {
shindo 4:1247fae2410a 244 meter_LED_outside = 0.1;
shindo 4:1247fae2410a 245 meter_LED_inside = 0.1;
shindo 4:1247fae2410a 246 needle_LED = 1.0;
shindo 1:95407c4ef69e 247 }
shindo 2:c1d4ea63ab89 248 }
shindo 2:c1d4ea63ab89 249 digitalclock_colon = 1;
shindo 2:c1d4ea63ab89 250 wait (0.5);
shindo 2:c1d4ea63ab89 251 digitalclock_colon = 0;
shindo 2:c1d4ea63ab89 252 //wait (0.25);
shindo 2:c1d4ea63ab89 253 }
shindo 0:e0c9a84c55c9 254 }
shindo 1:95407c4ef69e 255 }
shindo 1:95407c4ef69e 256