meter_controller_223_LED

Dependencies:   EthernetInterface mbed-rtos mbed

Committer:
shindo
Date:
Tue Nov 13 13:51:15 2012 +0000
Revision:
3:82cf87db7ef4
Parent:
2:c1d4ea63ab89
Child:
4:1247fae2410a
LED????

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 3:82cf87db7ef4 23 meter_LED_outside = 0.8;
shindo 3:82cf87db7ef4 24 wait_ms(100);
shindo 3:82cf87db7ef4 25 meter_LED_outside = 0;
shindo 3:82cf87db7ef4 26 wait_ms(100);
shindo 3:82cf87db7ef4 27 meter_LED_outside = 0.8;
shindo 3:82cf87db7ef4 28 wait_ms(100);
shindo 3:82cf87db7ef4 29 meter_LED_outside = 0;
shindo 3:82cf87db7ef4 30 wait_ms(100);
shindo 3:82cf87db7ef4 31 meter_LED_outside = 0.8;
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 3:82cf87db7ef4 37 meter_LED_outside = 0.8;
shindo 3:82cf87db7ef4 38 wait_ms(100);
shindo 3:82cf87db7ef4 39 meter_LED_outside = 0;
shindo 3:82cf87db7ef4 40 wait_ms(100);
shindo 3:82cf87db7ef4 41 meter_LED_outside = 0.8;
shindo 3:82cf87db7ef4 42 wait_ms(100);
shindo 3:82cf87db7ef4 43 meter_LED_outside = 0;
shindo 3:82cf87db7ef4 44 wait_ms(100);
shindo 3:82cf87db7ef4 45 meter_LED_outside = 0.8;
shindo 3:82cf87db7ef4 46 wait_ms(100);
shindo 3:82cf87db7ef4 47 meter_LED_outside = 0;
shindo 3:82cf87db7ef4 48 wait_ms(100);
shindo 3:82cf87db7ef4 49 meter_LED_outside = 0.8;
shindo 3:82cf87db7ef4 50 wait_ms(100);
shindo 3:82cf87db7ef4 51 meter_LED_outside = 0;
shindo 3:82cf87db7ef4 52 wait_ms(100);
shindo 3:82cf87db7ef4 53 meter_LED_outside = 0.8;
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 0:e0c9a84c55c9 68
shindo 0:e0c9a84c55c9 69 while (1) {
shindo 0:e0c9a84c55c9 70 TCPSocketConnection client;
shindo 0:e0c9a84c55c9 71 server.accept(client);
shindo 0:e0c9a84c55c9 72 client.set_blocking(false, 1500);
shindo 0:e0c9a84c55c9 73 printf("Client connected %s\n", client.get_address());
shindo 0:e0c9a84c55c9 74
shindo 0:e0c9a84c55c9 75 char buffer[256];
shindo 0:e0c9a84c55c9 76 while (true) {
shindo 0:e0c9a84c55c9 77 int n = client.receive(buffer, sizeof(buffer));
shindo 2:c1d4ea63ab89 78 int mode = (buffer[0] - 'A');
shindo 0:e0c9a84c55c9 79 if (n > 0) {
shindo 2:c1d4ea63ab89 80 int target = (buffer[1] - '0') * 100 + (buffer[2] - '0') * 10 + (buffer[3] - '0');
shindo 1:95407c4ef69e 81
shindo 2:c1d4ea63ab89 82 switch (mode) {
shindo 2:c1d4ea63ab89 83 case 0:
shindo 2:c1d4ea63ab89 84 for(float p = 0.0f; p < 1.0f; p += 0.02f) {
shindo 0:e0c9a84c55c9 85 meter_LED_outside = p;
shindo 0:e0c9a84c55c9 86 wait(0.01);
shindo 0:e0c9a84c55c9 87 }
shindo 2:c1d4ea63ab89 88 for(float p = 0.0f; p < 1.0f; p += 0.02f) {
shindo 0:e0c9a84c55c9 89 meter_LED_inside = p;
shindo 0:e0c9a84c55c9 90 wait(0.01);
shindo 0:e0c9a84c55c9 91 }
shindo 2:c1d4ea63ab89 92 for(float p = 0.0f; p < 1.0f; p += 0.02f) {
shindo 3:82cf87db7ef4 93 P_range_LED = p;
shindo 0:e0c9a84c55c9 94 wait(0.01);
shindo 0:e0c9a84c55c9 95 }
shindo 2:c1d4ea63ab89 96 for(float p = 0.0f; p < 1.0f; p += 0.02f) {
shindo 3:82cf87db7ef4 97 D_range_LED = p;
shindo 0:e0c9a84c55c9 98 wait(0.01);
shindo 0:e0c9a84c55c9 99 }
shindo 2:c1d4ea63ab89 100 for(float p = 0.0f; p < 1.0f; p += 0.02f) {
shindo 3:82cf87db7ef4 101 Other_range_LED = p;
shindo 0:e0c9a84c55c9 102 wait(0.01);
shindo 0:e0c9a84c55c9 103 }
shindo 2:c1d4ea63ab89 104 for(float p = 0.0f; p < 1.0f; p += 0.02f) {
shindo 0:e0c9a84c55c9 105 needle_LED = p;
shindo 0:e0c9a84c55c9 106 wait(0.01);
shindo 0:e0c9a84c55c9 107 }
shindo 2:c1d4ea63ab89 108 for(float p = 1.0f; p > 0.0f; p -= 0.02f) {
shindo 0:e0c9a84c55c9 109 meter_LED_outside = p;
shindo 0:e0c9a84c55c9 110 meter_LED_inside = p;
shindo 3:82cf87db7ef4 111 P_range_LED = p;
shindo 3:82cf87db7ef4 112 D_range_LED = p;
shindo 3:82cf87db7ef4 113 Other_range_LED = p;
shindo 0:e0c9a84c55c9 114 needle_LED = p;
shindo 0:e0c9a84c55c9 115 wait(0.01);
shindo 0:e0c9a84c55c9 116 }
shindo 0:e0c9a84c55c9 117 signal_LED_L = 1;
shindo 0:e0c9a84c55c9 118 signal_LED_R = 1;
shindo 0:e0c9a84c55c9 119 wait (0.5);
shindo 0:e0c9a84c55c9 120 signal_LED_L = 0;
shindo 0:e0c9a84c55c9 121 signal_LED_R = 0;
shindo 0:e0c9a84c55c9 122 wait (0.5);
shindo 3:82cf87db7ef4 123 signal_LED_L = 1;
shindo 2:c1d4ea63ab89 124 signal_LED_R = 1;
shindo 2:c1d4ea63ab89 125 wait (0.5);
shindo 2:c1d4ea63ab89 126 signal_LED_L = 0;
shindo 2:c1d4ea63ab89 127 signal_LED_R = 0;
shindo 3:82cf87db7ef4 128 wait (1);
shindo 0:e0c9a84c55c9 129
shindo 0:e0c9a84c55c9 130 for(float p = 0.0f; p < 0.2f; p += 0.01f) {
shindo 0:e0c9a84c55c9 131 meter_LED_outside = p;
shindo 0:e0c9a84c55c9 132 meter_LED_inside = p;
shindo 3:82cf87db7ef4 133 P_range_LED = p;
shindo 0:e0c9a84c55c9 134 needle_LED = (p + 0.8);
shindo 0:e0c9a84c55c9 135 wait(0.05);
shindo 0:e0c9a84c55c9 136 }
shindo 1:95407c4ef69e 137 digitalclock = 1;
shindo 2:c1d4ea63ab89 138 break;
shindo 2:c1d4ea63ab89 139
shindo 2:c1d4ea63ab89 140 case 1:
shindo 2:c1d4ea63ab89 141 digitalclock = 0;
shindo 2:c1d4ea63ab89 142 digitalclock_colon = 0;
shindo 2:c1d4ea63ab89 143 for(float p = 0.8f; p > 0.0f; p -= 0.01f) {
shindo 2:c1d4ea63ab89 144 meter_LED_outside = p;
shindo 2:c1d4ea63ab89 145 meter_LED_inside = p;
shindo 3:82cf87db7ef4 146 P_range_LED = p;
shindo 3:82cf87db7ef4 147 D_range_LED = p;
shindo 3:82cf87db7ef4 148 Other_range_LED = p;
shindo 2:c1d4ea63ab89 149 needle_LED = p;
shindo 2:c1d4ea63ab89 150 wait(0.01);
shindo 2:c1d4ea63ab89 151 }
shindo 2:c1d4ea63ab89 152 break;
shindo 2:c1d4ea63ab89 153 }
shindo 3:82cf87db7ef4 154 if (buffer[0] == 'P') {
shindo 3:82cf87db7ef4 155 meter_LED_outside = ((target / 10.0)-0.2);
shindo 3:82cf87db7ef4 156 } else if (buffer[0] == 'Q') {
shindo 3:82cf87db7ef4 157 meter_LED_inside = ((target / 10.0)-0.2);
shindo 3:82cf87db7ef4 158 } else if (buffer[0] == 'R') {
shindo 3:82cf87db7ef4 159 needle_LED = ((target / 10.0)-0.2);
shindo 3:82cf87db7ef4 160 } else if (buffer[0] == 'C') {
shindo 3:82cf87db7ef4 161 int count_1 = 0;
shindo 3:82cf87db7ef4 162 int t = 0;
shindo 3:82cf87db7ef4 163 P_range_LED = 0;
shindo 3:82cf87db7ef4 164 D_range_LED = 1;
shindo 3:82cf87db7ef4 165 while(count_1 < 7) {
shindo 3:82cf87db7ef4 166 if (t ==0) {
shindo 3:82cf87db7ef4 167 wait(19.2);
shindo 3:82cf87db7ef4 168 meter_LED_outside_flashing1();
shindo 3:82cf87db7ef4 169 } else if (t == 1) {
shindo 3:82cf87db7ef4 170 wait_ms(2500-700);
shindo 3:82cf87db7ef4 171 meter_LED_outside_flashing1();
shindo 3:82cf87db7ef4 172 } else if (t == 2) {
shindo 3:82cf87db7ef4 173 wait_ms(2200-700);
shindo 3:82cf87db7ef4 174 meter_LED_outside_flashing1();
shindo 3:82cf87db7ef4 175 } else if (t == 3) {
shindo 3:82cf87db7ef4 176 wait_ms(2500-700);
shindo 3:82cf87db7ef4 177 meter_LED_outside_flashing1();
shindo 3:82cf87db7ef4 178 } else if (t == 4) {
shindo 3:82cf87db7ef4 179 wait_ms(4300-700);
shindo 3:82cf87db7ef4 180 meter_LED_outside_flashing2();
shindo 3:82cf87db7ef4 181 } else if (t == 5) {
shindo 3:82cf87db7ef4 182 wait_ms(4600-700);
shindo 3:82cf87db7ef4 183 meter_LED_outside_flashing2();
shindo 3:82cf87db7ef4 184 } else if (t == 6) {
shindo 3:82cf87db7ef4 185 wait_ms(5700-700);
shindo 3:82cf87db7ef4 186 meter_LED_outside_flashing2();
shindo 3:82cf87db7ef4 187 t = 0;
shindo 3:82cf87db7ef4 188 }
shindo 3:82cf87db7ef4 189 wait_ms(200);
shindo 3:82cf87db7ef4 190
shindo 3:82cf87db7ef4 191 t++;
shindo 3:82cf87db7ef4 192 count_1++;
shindo 3:82cf87db7ef4 193 }
shindo 3:82cf87db7ef4 194 } else if (buffer[0] == 'K') {
shindo 3:82cf87db7ef4 195 signal_LED_L = 1;
shindo 3:82cf87db7ef4 196 wait (0.5);
shindo 3:82cf87db7ef4 197 signal_LED_L = 0;
shindo 3:82cf87db7ef4 198 wait (0.5);
shindo 3:82cf87db7ef4 199 signal_LED_L = 1;
shindo 3:82cf87db7ef4 200 wait (0.5);
shindo 3:82cf87db7ef4 201 signal_LED_L = 0;
shindo 3:82cf87db7ef4 202 wait (0.5);
shindo 3:82cf87db7ef4 203 signal_LED_L = 1;
shindo 3:82cf87db7ef4 204 wait (0.5);
shindo 3:82cf87db7ef4 205 signal_LED_L = 0;
shindo 3:82cf87db7ef4 206 wait (0.5);
shindo 3:82cf87db7ef4 207 signal_LED_L = 1;
shindo 3:82cf87db7ef4 208 wait (0.5);
shindo 3:82cf87db7ef4 209 signal_LED_L = 0;
shindo 3:82cf87db7ef4 210 wait (0.5);
shindo 3:82cf87db7ef4 211 signal_LED_L = 1;
shindo 3:82cf87db7ef4 212 wait (0.5);
shindo 3:82cf87db7ef4 213 signal_LED_L = 0;
shindo 3:82cf87db7ef4 214 } else if (buffer[0] == 'L') {
shindo 3:82cf87db7ef4 215 signal_LED_L = 1;
shindo 3:82cf87db7ef4 216 signal_LED_R = 1;
shindo 3:82cf87db7ef4 217 wait (0.5);
shindo 3:82cf87db7ef4 218 signal_LED_L = 0;
shindo 3:82cf87db7ef4 219 signal_LED_R = 0;
shindo 3:82cf87db7ef4 220 wait (0.5);
shindo 3:82cf87db7ef4 221 signal_LED_L = 1;
shindo 3:82cf87db7ef4 222 signal_LED_R = 1;
shindo 3:82cf87db7ef4 223 wait (0.5);
shindo 3:82cf87db7ef4 224 signal_LED_L = 0;
shindo 3:82cf87db7ef4 225 signal_LED_R = 0;
shindo 3:82cf87db7ef4 226 wait (0.5);
shindo 3:82cf87db7ef4 227 signal_LED_L = 1;
shindo 3:82cf87db7ef4 228 signal_LED_R = 1;
shindo 3:82cf87db7ef4 229 wait (0.5);
shindo 3:82cf87db7ef4 230 signal_LED_L = 0;
shindo 3:82cf87db7ef4 231 signal_LED_R = 0;
shindo 3:82cf87db7ef4 232 wait (0.5);
shindo 3:82cf87db7ef4 233 signal_LED_L = 1;
shindo 3:82cf87db7ef4 234 signal_LED_R = 1;
shindo 3:82cf87db7ef4 235 wait (0.5);
shindo 3:82cf87db7ef4 236 signal_LED_L = 0;
shindo 3:82cf87db7ef4 237 signal_LED_R = 0;
shindo 3:82cf87db7ef4 238 wait (0.5);
shindo 3:82cf87db7ef4 239 signal_LED_L = 1;
shindo 3:82cf87db7ef4 240 signal_LED_R = 1;
shindo 3:82cf87db7ef4 241 wait (0.5);
shindo 3:82cf87db7ef4 242 signal_LED_L = 0;
shindo 3:82cf87db7ef4 243 signal_LED_R = 0;
shindo 3:82cf87db7ef4 244 } else if (buffer[0] == 'L') {
shindo 3:82cf87db7ef4 245 signal_LED_R = 1;
shindo 3:82cf87db7ef4 246 wait (0.5);
shindo 3:82cf87db7ef4 247 signal_LED_R = 0;
shindo 3:82cf87db7ef4 248 wait (0.5);
shindo 3:82cf87db7ef4 249 signal_LED_R = 1;
shindo 3:82cf87db7ef4 250 wait (0.5);
shindo 3:82cf87db7ef4 251 signal_LED_R = 0;
shindo 3:82cf87db7ef4 252 wait (0.5);
shindo 3:82cf87db7ef4 253 signal_LED_R = 1;
shindo 3:82cf87db7ef4 254 wait (0.5);
shindo 3:82cf87db7ef4 255 signal_LED_R = 0;
shindo 3:82cf87db7ef4 256 wait (0.5);
shindo 3:82cf87db7ef4 257 signal_LED_R = 1;
shindo 3:82cf87db7ef4 258 wait (0.5);
shindo 3:82cf87db7ef4 259 signal_LED_R = 0;
shindo 3:82cf87db7ef4 260 wait (0.5);
shindo 3:82cf87db7ef4 261 signal_LED_R = 1;
shindo 3:82cf87db7ef4 262 wait (0.5);
shindo 3:82cf87db7ef4 263 signal_LED_R = 0;
shindo 1:95407c4ef69e 264 }
shindo 2:c1d4ea63ab89 265 }
shindo 2:c1d4ea63ab89 266 digitalclock_colon = 1;
shindo 2:c1d4ea63ab89 267 wait (0.5);
shindo 2:c1d4ea63ab89 268 digitalclock_colon = 0;
shindo 2:c1d4ea63ab89 269 //wait (0.25);
shindo 2:c1d4ea63ab89 270 }
shindo 0:e0c9a84c55c9 271 }
shindo 1:95407c4ef69e 272 }
shindo 1:95407c4ef69e 273