meter_controller_223_LED

Dependencies:   EthernetInterface mbed-rtos mbed

Committer:
shindo
Date:
Fri Nov 16 05:42:17 2012 +0000
Revision:
4:1247fae2410a
Parent:
3:82cf87db7ef4
Child:
5:4c120fde3e73
11.16??

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);
shindo 4:1247fae2410a 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 2:c1d4ea63ab89 85 int mode = (buffer[0] - 'A');
shindo 0:e0c9a84c55c9 86 if (n > 0) {
shindo 2:c1d4ea63ab89 87 int target = (buffer[1] - '0') * 100 + (buffer[2] - '0') * 10 + (buffer[3] - '0');
shindo 1:95407c4ef69e 88
shindo 2:c1d4ea63ab89 89 switch (mode) {
shindo 2:c1d4ea63ab89 90 case 0:
shindo 4:1247fae2410a 91 for(float p = 0.0f; p < 0.8f; p += 0.02f) {
shindo 0:e0c9a84c55c9 92 meter_LED_outside = p;
shindo 0:e0c9a84c55c9 93 wait(0.01);
shindo 0:e0c9a84c55c9 94 }
shindo 4:1247fae2410a 95 for(float p = 0.0f; p < 0.8f; p += 0.02f) {
shindo 0:e0c9a84c55c9 96 meter_LED_inside = p;
shindo 0:e0c9a84c55c9 97 wait(0.01);
shindo 0:e0c9a84c55c9 98 }
shindo 4:1247fae2410a 99 for(float p = 0.0f; p < 0.8f; p += 0.02f) {
shindo 3:82cf87db7ef4 100 P_range_LED = p;
shindo 0:e0c9a84c55c9 101 wait(0.01);
shindo 0:e0c9a84c55c9 102 }
shindo 4:1247fae2410a 103 for(float p = 0.0f; p < 0.8f; p += 0.02f) {
shindo 3:82cf87db7ef4 104 D_range_LED = p;
shindo 0:e0c9a84c55c9 105 wait(0.01);
shindo 0:e0c9a84c55c9 106 }
shindo 4:1247fae2410a 107 for(float p = 0.0f; p < 0.8f; p += 0.02f) {
shindo 3:82cf87db7ef4 108 Other_range_LED = p;
shindo 0:e0c9a84c55c9 109 wait(0.01);
shindo 0:e0c9a84c55c9 110 }
shindo 4:1247fae2410a 111 for(float p = 0.0f; p < 0.8f; p += 0.02f) {
shindo 0:e0c9a84c55c9 112 needle_LED = p;
shindo 0:e0c9a84c55c9 113 wait(0.01);
shindo 0:e0c9a84c55c9 114 }
shindo 2:c1d4ea63ab89 115 for(float p = 1.0f; p > 0.0f; p -= 0.02f) {
shindo 0:e0c9a84c55c9 116 meter_LED_outside = p;
shindo 0:e0c9a84c55c9 117 meter_LED_inside = p;
shindo 3:82cf87db7ef4 118 P_range_LED = p;
shindo 3:82cf87db7ef4 119 D_range_LED = p;
shindo 3:82cf87db7ef4 120 Other_range_LED = p;
shindo 0:e0c9a84c55c9 121 needle_LED = p;
shindo 0:e0c9a84c55c9 122 wait(0.01);
shindo 0:e0c9a84c55c9 123 }
shindo 0:e0c9a84c55c9 124 signal_LED_L = 1;
shindo 0:e0c9a84c55c9 125 signal_LED_R = 1;
shindo 0:e0c9a84c55c9 126 wait (0.5);
shindo 0:e0c9a84c55c9 127 signal_LED_L = 0;
shindo 0:e0c9a84c55c9 128 signal_LED_R = 0;
shindo 0:e0c9a84c55c9 129 wait (0.5);
shindo 3:82cf87db7ef4 130 signal_LED_L = 1;
shindo 2:c1d4ea63ab89 131 signal_LED_R = 1;
shindo 2:c1d4ea63ab89 132 wait (0.5);
shindo 2:c1d4ea63ab89 133 signal_LED_L = 0;
shindo 2:c1d4ea63ab89 134 signal_LED_R = 0;
shindo 4:1247fae2410a 135 needle_LED = (1.0);
shindo 4:1247fae2410a 136 wait (3.5);
shindo 0:e0c9a84c55c9 137
shindo 4:1247fae2410a 138 for(float p = 0.0f; p < 0.1f; p += 0.01f) {
shindo 0:e0c9a84c55c9 139 meter_LED_outside = p;
shindo 0:e0c9a84c55c9 140 meter_LED_inside = p;
shindo 3:82cf87db7ef4 141 P_range_LED = p;
shindo 0:e0c9a84c55c9 142 wait(0.05);
shindo 0:e0c9a84c55c9 143 }
shindo 1:95407c4ef69e 144 digitalclock = 1;
shindo 2:c1d4ea63ab89 145 break;
shindo 2:c1d4ea63ab89 146
shindo 2:c1d4ea63ab89 147 case 1:
shindo 2:c1d4ea63ab89 148 digitalclock = 0;
shindo 2:c1d4ea63ab89 149 digitalclock_colon = 0;
shindo 2:c1d4ea63ab89 150 for(float p = 0.8f; p > 0.0f; p -= 0.01f) {
shindo 2:c1d4ea63ab89 151 meter_LED_outside = p;
shindo 2:c1d4ea63ab89 152 meter_LED_inside = p;
shindo 3:82cf87db7ef4 153 P_range_LED = p;
shindo 3:82cf87db7ef4 154 D_range_LED = p;
shindo 3:82cf87db7ef4 155 Other_range_LED = p;
shindo 2:c1d4ea63ab89 156 needle_LED = p;
shindo 2:c1d4ea63ab89 157 wait(0.01);
shindo 2:c1d4ea63ab89 158 }
shindo 2:c1d4ea63ab89 159 break;
shindo 2:c1d4ea63ab89 160 }
shindo 3:82cf87db7ef4 161 if (buffer[0] == 'P') {
shindo 4:1247fae2410a 162 meter_LED_outside = ((target / 10.0));
shindo 3:82cf87db7ef4 163 } else if (buffer[0] == 'Q') {
shindo 4:1247fae2410a 164 meter_LED_inside = ((target / 10.0));
shindo 3:82cf87db7ef4 165 } else if (buffer[0] == 'R') {
shindo 4:1247fae2410a 166 needle_LED = ((target / 10.0));
shindo 3:82cf87db7ef4 167 } else if (buffer[0] == 'C') {
shindo 3:82cf87db7ef4 168 int count_1 = 0;
shindo 3:82cf87db7ef4 169 int t = 0;
shindo 3:82cf87db7ef4 170 P_range_LED = 0;
shindo 4:1247fae2410a 171 D_range_LED = 0.1;
shindo 4:1247fae2410a 172 while(count_1 < 8) {
shindo 3:82cf87db7ef4 173 if (t ==0) {
shindo 4:1247fae2410a 174 wait(10.0);
shindo 3:82cf87db7ef4 175 meter_LED_outside_flashing1();
shindo 3:82cf87db7ef4 176 } else if (t == 1) {
shindo 3:82cf87db7ef4 177 wait_ms(2500-700);
shindo 3:82cf87db7ef4 178 meter_LED_outside_flashing1();
shindo 3:82cf87db7ef4 179 } else if (t == 2) {
shindo 3:82cf87db7ef4 180 wait_ms(2200-700);
shindo 3:82cf87db7ef4 181 meter_LED_outside_flashing1();
shindo 3:82cf87db7ef4 182 } else if (t == 3) {
shindo 3:82cf87db7ef4 183 wait_ms(2500-700);
shindo 3:82cf87db7ef4 184 meter_LED_outside_flashing1();
shindo 3:82cf87db7ef4 185 } else if (t == 4) {
shindo 4:1247fae2410a 186 wait_ms(4000-700);
shindo 3:82cf87db7ef4 187 meter_LED_outside_flashing2();
shindo 3:82cf87db7ef4 188 } else if (t == 5) {
shindo 4:1247fae2410a 189 wait_ms(4000-700);
shindo 3:82cf87db7ef4 190 meter_LED_outside_flashing2();
shindo 3:82cf87db7ef4 191 } else if (t == 6) {
shindo 4:1247fae2410a 192 wait_ms(6000-700);
shindo 3:82cf87db7ef4 193 meter_LED_outside_flashing2();
shindo 4:1247fae2410a 194 } else if (t == 7) {
shindo 4:1247fae2410a 195 wait(36);
shindo 4:1247fae2410a 196 D_range_LED = 0;
shindo 4:1247fae2410a 197 P_range_LED = 0.1;
shindo 3:82cf87db7ef4 198 t = 0;
shindo 3:82cf87db7ef4 199 }
shindo 3:82cf87db7ef4 200 wait_ms(200);
shindo 3:82cf87db7ef4 201
shindo 3:82cf87db7ef4 202 t++;
shindo 3:82cf87db7ef4 203 count_1++;
shindo 3:82cf87db7ef4 204 }
shindo 3:82cf87db7ef4 205 } else if (buffer[0] == 'K') {
shindo 3:82cf87db7ef4 206 signal_LED_L = 1;
shindo 3:82cf87db7ef4 207 wait (0.5);
shindo 3:82cf87db7ef4 208 signal_LED_L = 0;
shindo 3:82cf87db7ef4 209 wait (0.5);
shindo 3:82cf87db7ef4 210 signal_LED_L = 1;
shindo 3:82cf87db7ef4 211 wait (0.5);
shindo 3:82cf87db7ef4 212 signal_LED_L = 0;
shindo 3:82cf87db7ef4 213 wait (0.5);
shindo 3:82cf87db7ef4 214 signal_LED_L = 1;
shindo 3:82cf87db7ef4 215 wait (0.5);
shindo 3:82cf87db7ef4 216 signal_LED_L = 0;
shindo 3:82cf87db7ef4 217 wait (0.5);
shindo 3:82cf87db7ef4 218 signal_LED_L = 1;
shindo 3:82cf87db7ef4 219 wait (0.5);
shindo 3:82cf87db7ef4 220 signal_LED_L = 0;
shindo 3:82cf87db7ef4 221 wait (0.5);
shindo 3:82cf87db7ef4 222 signal_LED_L = 1;
shindo 3:82cf87db7ef4 223 wait (0.5);
shindo 3:82cf87db7ef4 224 signal_LED_L = 0;
shindo 3:82cf87db7ef4 225 } else if (buffer[0] == 'L') {
shindo 3:82cf87db7ef4 226 signal_LED_L = 1;
shindo 3:82cf87db7ef4 227 signal_LED_R = 1;
shindo 3:82cf87db7ef4 228 wait (0.5);
shindo 3:82cf87db7ef4 229 signal_LED_L = 0;
shindo 3:82cf87db7ef4 230 signal_LED_R = 0;
shindo 3:82cf87db7ef4 231 wait (0.5);
shindo 3:82cf87db7ef4 232 signal_LED_L = 1;
shindo 3:82cf87db7ef4 233 signal_LED_R = 1;
shindo 3:82cf87db7ef4 234 wait (0.5);
shindo 3:82cf87db7ef4 235 signal_LED_L = 0;
shindo 3:82cf87db7ef4 236 signal_LED_R = 0;
shindo 3:82cf87db7ef4 237 wait (0.5);
shindo 3:82cf87db7ef4 238 signal_LED_L = 1;
shindo 3:82cf87db7ef4 239 signal_LED_R = 1;
shindo 3:82cf87db7ef4 240 wait (0.5);
shindo 3:82cf87db7ef4 241 signal_LED_L = 0;
shindo 3:82cf87db7ef4 242 signal_LED_R = 0;
shindo 3:82cf87db7ef4 243 wait (0.5);
shindo 3:82cf87db7ef4 244 signal_LED_L = 1;
shindo 3:82cf87db7ef4 245 signal_LED_R = 1;
shindo 3:82cf87db7ef4 246 wait (0.5);
shindo 3:82cf87db7ef4 247 signal_LED_L = 0;
shindo 3:82cf87db7ef4 248 signal_LED_R = 0;
shindo 3:82cf87db7ef4 249 wait (0.5);
shindo 3:82cf87db7ef4 250 signal_LED_L = 1;
shindo 3:82cf87db7ef4 251 signal_LED_R = 1;
shindo 3:82cf87db7ef4 252 wait (0.5);
shindo 3:82cf87db7ef4 253 signal_LED_L = 0;
shindo 3:82cf87db7ef4 254 signal_LED_R = 0;
shindo 4:1247fae2410a 255 } else if (buffer[0] == 'M') {
shindo 3:82cf87db7ef4 256 signal_LED_R = 1;
shindo 3:82cf87db7ef4 257 wait (0.5);
shindo 3:82cf87db7ef4 258 signal_LED_R = 0;
shindo 3:82cf87db7ef4 259 wait (0.5);
shindo 3:82cf87db7ef4 260 signal_LED_R = 1;
shindo 3:82cf87db7ef4 261 wait (0.5);
shindo 3:82cf87db7ef4 262 signal_LED_R = 0;
shindo 3:82cf87db7ef4 263 wait (0.5);
shindo 3:82cf87db7ef4 264 signal_LED_R = 1;
shindo 3:82cf87db7ef4 265 wait (0.5);
shindo 3:82cf87db7ef4 266 signal_LED_R = 0;
shindo 3:82cf87db7ef4 267 wait (0.5);
shindo 3:82cf87db7ef4 268 signal_LED_R = 1;
shindo 3:82cf87db7ef4 269 wait (0.5);
shindo 3:82cf87db7ef4 270 signal_LED_R = 0;
shindo 3:82cf87db7ef4 271 wait (0.5);
shindo 3:82cf87db7ef4 272 signal_LED_R = 1;
shindo 3:82cf87db7ef4 273 wait (0.5);
shindo 3:82cf87db7ef4 274 signal_LED_R = 0;
shindo 4:1247fae2410a 275 } else if (buffer[0] == 'S') {
shindo 4:1247fae2410a 276 meter_LED_outside = 0.1;
shindo 4:1247fae2410a 277 meter_LED_inside = 0.1;
shindo 4:1247fae2410a 278 needle_LED = 1.0;
shindo 1:95407c4ef69e 279 }
shindo 2:c1d4ea63ab89 280 }
shindo 2:c1d4ea63ab89 281 digitalclock_colon = 1;
shindo 2:c1d4ea63ab89 282 wait (0.5);
shindo 2:c1d4ea63ab89 283 digitalclock_colon = 0;
shindo 2:c1d4ea63ab89 284 //wait (0.25);
shindo 2:c1d4ea63ab89 285 }
shindo 0:e0c9a84c55c9 286 }
shindo 1:95407c4ef69e 287 }
shindo 1:95407c4ef69e 288