traffic light controller with RPC over http interrupter

Dependencies:   EthernetInterface HTTPClient HTTPServer mbed-rpc mbed-rtos mbed

Committer:
daklowprofile
Date:
Mon Jul 16 08:51:46 2018 +0000
Revision:
0:36fbb19fb8fb
Child:
1:2c577df21639
working code but still need improvement on interrupter response time

Who changed what in which revision?

UserRevisionLine numberNew contents of line
daklowprofile 0:36fbb19fb8fb 1 #include "mbed.h"
daklowprofile 0:36fbb19fb8fb 2 #include "EthernetInterface.h"
daklowprofile 0:36fbb19fb8fb 3 #include "HTTPServer.h"
daklowprofile 0:36fbb19fb8fb 4 #include "HTTPClient.h"
daklowprofile 0:36fbb19fb8fb 5 #include "mbed_rpc.h"
daklowprofile 0:36fbb19fb8fb 6
daklowprofile 0:36fbb19fb8fb 7 Timer timer_tf;
daklowprofile 0:36fbb19fb8fb 8
daklowprofile 0:36fbb19fb8fb 9 Serial pc(USBTX, USBRX);
daklowprofile 0:36fbb19fb8fb 10
daklowprofile 0:36fbb19fb8fb 11 DigitalOut led1(LED1);
daklowprofile 0:36fbb19fb8fb 12 DigitalOut led2(LED2);
daklowprofile 0:36fbb19fb8fb 13 DigitalOut led3(LED3);
daklowprofile 0:36fbb19fb8fb 14
daklowprofile 0:36fbb19fb8fb 15 //DigitalIn button1(p14);
daklowprofile 0:36fbb19fb8fb 16 //DigitalIn button2(p27);
daklowprofile 0:36fbb19fb8fb 17 //DigitalIn button3(p28);
daklowprofile 0:36fbb19fb8fb 18
daklowprofile 0:36fbb19fb8fb 19 RpcDigitalOut button1(LED1,"button1");
daklowprofile 0:36fbb19fb8fb 20 RpcDigitalOut button2(LED2,"button2");
daklowprofile 0:36fbb19fb8fb 21 RpcDigitalOut button3(LED3,"button3");
daklowprofile 0:36fbb19fb8fb 22
daklowprofile 0:36fbb19fb8fb 23 //T1
daklowprofile 0:36fbb19fb8fb 24 DigitalOut t1red(p5);
daklowprofile 0:36fbb19fb8fb 25 DigitalOut t1yellow(p6);
daklowprofile 0:36fbb19fb8fb 26 DigitalOut t1green(p7);
daklowprofile 0:36fbb19fb8fb 27 //T2
daklowprofile 0:36fbb19fb8fb 28 DigitalOut t2red(p11);
daklowprofile 0:36fbb19fb8fb 29 DigitalOut t2yellow(p12);
daklowprofile 0:36fbb19fb8fb 30 DigitalOut t2green(p13);
daklowprofile 0:36fbb19fb8fb 31 //T3
daklowprofile 0:36fbb19fb8fb 32 DigitalOut t3red(p18);
daklowprofile 0:36fbb19fb8fb 33 DigitalOut t3yellow(p19);
daklowprofile 0:36fbb19fb8fb 34 DigitalOut t3green(p17);
daklowprofile 0:36fbb19fb8fb 35 //pin 20 cannot use for led
daklowprofile 0:36fbb19fb8fb 36
daklowprofile 0:36fbb19fb8fb 37 void t1light(char a){
daklowprofile 0:36fbb19fb8fb 38 t1red = 0;
daklowprofile 0:36fbb19fb8fb 39 t1yellow = 0;
daklowprofile 0:36fbb19fb8fb 40 t1green = 0;
daklowprofile 0:36fbb19fb8fb 41 if (a == 'R'){
daklowprofile 0:36fbb19fb8fb 42 t1red = 1;
daklowprofile 0:36fbb19fb8fb 43 t1yellow = 0;
daklowprofile 0:36fbb19fb8fb 44 t1green = 0;
daklowprofile 0:36fbb19fb8fb 45 }else if(a == 'Y'){
daklowprofile 0:36fbb19fb8fb 46 t1red = 0;
daklowprofile 0:36fbb19fb8fb 47 t1yellow = 1;
daklowprofile 0:36fbb19fb8fb 48 t1green = 0;
daklowprofile 0:36fbb19fb8fb 49 }else if(a == 'G'){
daklowprofile 0:36fbb19fb8fb 50 t1red = 0;
daklowprofile 0:36fbb19fb8fb 51 t1yellow = 0;
daklowprofile 0:36fbb19fb8fb 52 t1green = 1;
daklowprofile 0:36fbb19fb8fb 53 }else{
daklowprofile 0:36fbb19fb8fb 54 t1red = 0;
daklowprofile 0:36fbb19fb8fb 55 t1yellow = 0;
daklowprofile 0:36fbb19fb8fb 56 t1green = 0;
daklowprofile 0:36fbb19fb8fb 57 }
daklowprofile 0:36fbb19fb8fb 58 }
daklowprofile 0:36fbb19fb8fb 59
daklowprofile 0:36fbb19fb8fb 60 void t2light(char a){
daklowprofile 0:36fbb19fb8fb 61 t2red = 0;
daklowprofile 0:36fbb19fb8fb 62 t2yellow = 0;
daklowprofile 0:36fbb19fb8fb 63 t2green = 0;
daklowprofile 0:36fbb19fb8fb 64 if (a == 'R'){
daklowprofile 0:36fbb19fb8fb 65 t2red = 1;
daklowprofile 0:36fbb19fb8fb 66 t2yellow = 0;
daklowprofile 0:36fbb19fb8fb 67 t2green = 0;
daklowprofile 0:36fbb19fb8fb 68 }else if(a == 'Y'){
daklowprofile 0:36fbb19fb8fb 69 t2red = 0;
daklowprofile 0:36fbb19fb8fb 70 t2yellow = 1;
daklowprofile 0:36fbb19fb8fb 71 t2green = 0;
daklowprofile 0:36fbb19fb8fb 72 }else if(a == 'G'){
daklowprofile 0:36fbb19fb8fb 73 t2red = 0;
daklowprofile 0:36fbb19fb8fb 74 t2yellow = 0;
daklowprofile 0:36fbb19fb8fb 75 t2green = 1;
daklowprofile 0:36fbb19fb8fb 76 }else{
daklowprofile 0:36fbb19fb8fb 77 t2red = 0;
daklowprofile 0:36fbb19fb8fb 78 t2yellow = 0;
daklowprofile 0:36fbb19fb8fb 79 t2green = 0;
daklowprofile 0:36fbb19fb8fb 80 }
daklowprofile 0:36fbb19fb8fb 81 }
daklowprofile 0:36fbb19fb8fb 82
daklowprofile 0:36fbb19fb8fb 83 void t3light(char a){
daklowprofile 0:36fbb19fb8fb 84 t3red = 0;
daklowprofile 0:36fbb19fb8fb 85 t3yellow = 0;
daklowprofile 0:36fbb19fb8fb 86 t3green = 0;
daklowprofile 0:36fbb19fb8fb 87 if (a == 'R'){
daklowprofile 0:36fbb19fb8fb 88 t3red = 1;
daklowprofile 0:36fbb19fb8fb 89 t3yellow = 0;
daklowprofile 0:36fbb19fb8fb 90 t3green = 0;
daklowprofile 0:36fbb19fb8fb 91 }else if(a == 'Y'){
daklowprofile 0:36fbb19fb8fb 92 t3red = 0;
daklowprofile 0:36fbb19fb8fb 93 t3yellow = 1;
daklowprofile 0:36fbb19fb8fb 94 t3green = 0;
daklowprofile 0:36fbb19fb8fb 95 }else if(a == 'G'){
daklowprofile 0:36fbb19fb8fb 96 t3red = 0;
daklowprofile 0:36fbb19fb8fb 97 t3yellow = 0;
daklowprofile 0:36fbb19fb8fb 98 t3green = 1;
daklowprofile 0:36fbb19fb8fb 99 }else{
daklowprofile 0:36fbb19fb8fb 100 t3red = 0;
daklowprofile 0:36fbb19fb8fb 101 t3yellow = 0;
daklowprofile 0:36fbb19fb8fb 102 t3green = 0;
daklowprofile 0:36fbb19fb8fb 103 }
daklowprofile 0:36fbb19fb8fb 104 }
daklowprofile 0:36fbb19fb8fb 105
daklowprofile 0:36fbb19fb8fb 106 void traffic_timer (char t1, char t2, char t3){
daklowprofile 0:36fbb19fb8fb 107 t1light(t1);
daklowprofile 0:36fbb19fb8fb 108 t2light(t2);
daklowprofile 0:36fbb19fb8fb 109 t3light(t3);
daklowprofile 0:36fbb19fb8fb 110 }
daklowprofile 0:36fbb19fb8fb 111
daklowprofile 0:36fbb19fb8fb 112
daklowprofile 0:36fbb19fb8fb 113 void http_get(){
daklowprofile 0:36fbb19fb8fb 114 char* Server = "http://192.168.1.111/PDRM/api/api_update.php";
daklowprofile 0:36fbb19fb8fb 115 char buffer[256];
daklowprofile 0:36fbb19fb8fb 116 HTTPClient http;
daklowprofile 0:36fbb19fb8fb 117 buffer[0] = 0;
daklowprofile 0:36fbb19fb8fb 118 sprintf(buffer,"%s?t1=%d,%d,%d&t2=%d,%d,%d&t3=%d,%d,%d",Server,t1red.read(),t1yellow.read(),t1green.read(),t2red.read(),t2yellow.read(),t2green.read(),t3red.read(),t3yellow.read(),t3green.read());
daklowprofile 0:36fbb19fb8fb 119 printf("Send to %s\r\n", buffer);
daklowprofile 0:36fbb19fb8fb 120 http.get(buffer, buffer , 10); // Execute the URL of urlBuffer
daklowprofile 0:36fbb19fb8fb 121 }
daklowprofile 0:36fbb19fb8fb 122
daklowprofile 0:36fbb19fb8fb 123 void traffic_interrupt (char t1, char t2, char t3, int time){
daklowprofile 0:36fbb19fb8fb 124 t1light(t1);
daklowprofile 0:36fbb19fb8fb 125 t2light(t2);
daklowprofile 0:36fbb19fb8fb 126 t3light(t3);
daklowprofile 0:36fbb19fb8fb 127 http_get();
daklowprofile 0:36fbb19fb8fb 128 wait(time);
daklowprofile 0:36fbb19fb8fb 129 }
daklowprofile 0:36fbb19fb8fb 130
daklowprofile 0:36fbb19fb8fb 131 void interrupt(int buffer){
daklowprofile 0:36fbb19fb8fb 132 switch(buffer){
daklowprofile 0:36fbb19fb8fb 133 case 1 :
daklowprofile 0:36fbb19fb8fb 134 timer_tf.stop();
daklowprofile 0:36fbb19fb8fb 135 if(timer_tf.read() >= 0 && timer_tf.read() <= 51){
daklowprofile 0:36fbb19fb8fb 136 wait(15);
daklowprofile 0:36fbb19fb8fb 137 }else if(timer_tf.read() >= 52 && timer_tf.read() <= 90){
daklowprofile 0:36fbb19fb8fb 138 traffic_interrupt('R','Y','R',3);
daklowprofile 0:36fbb19fb8fb 139 traffic_interrupt('G','R','R',15);
daklowprofile 0:36fbb19fb8fb 140 traffic_interrupt('Y','R','R',3);
daklowprofile 0:36fbb19fb8fb 141 }else if(timer_tf.read() >= 91 && timer_tf.read() <= 94){
daklowprofile 0:36fbb19fb8fb 142 wait(3);
daklowprofile 0:36fbb19fb8fb 143 traffic_interrupt('G','R','R',15);
daklowprofile 0:36fbb19fb8fb 144 traffic_interrupt('Y','R','R',3);
daklowprofile 0:36fbb19fb8fb 145 }else if(timer_tf.read() >= 95 && timer_tf.read() <= 165){
daklowprofile 0:36fbb19fb8fb 146 traffic_interrupt('R','R','Y',3);
daklowprofile 0:36fbb19fb8fb 147 traffic_interrupt('G','R','R',15);
daklowprofile 0:36fbb19fb8fb 148 traffic_interrupt('Y','R','R',3);
daklowprofile 0:36fbb19fb8fb 149 }else if(timer_tf.read() >= 166 && timer_tf.read() <= 169){
daklowprofile 0:36fbb19fb8fb 150 wait(3);
daklowprofile 0:36fbb19fb8fb 151 traffic_interrupt('G','R','R',15);
daklowprofile 0:36fbb19fb8fb 152 traffic_interrupt('Y','R','R',3);
daklowprofile 0:36fbb19fb8fb 153 }
daklowprofile 0:36fbb19fb8fb 154 timer_tf.start();
daklowprofile 0:36fbb19fb8fb 155 break;
daklowprofile 0:36fbb19fb8fb 156
daklowprofile 0:36fbb19fb8fb 157 case 2 :
daklowprofile 0:36fbb19fb8fb 158 timer_tf.stop();
daklowprofile 0:36fbb19fb8fb 159 if(timer_tf.read() >= 0 && timer_tf.read() <= 47){
daklowprofile 0:36fbb19fb8fb 160 traffic_interrupt('Y','R','R',3);
daklowprofile 0:36fbb19fb8fb 161 traffic_interrupt('R','G','R',15);
daklowprofile 0:36fbb19fb8fb 162 traffic_interrupt('R','Y','R',3);
daklowprofile 0:36fbb19fb8fb 163 }else if(timer_tf.read() >= 48 && timer_tf.read() <= 51){
daklowprofile 0:36fbb19fb8fb 164 wait(3);
daklowprofile 0:36fbb19fb8fb 165 traffic_interrupt('R','G','R',15);
daklowprofile 0:36fbb19fb8fb 166 traffic_interrupt('R','Y','R',3);
daklowprofile 0:36fbb19fb8fb 167 }else if(timer_tf.read() >= 52 && timer_tf.read() <= 94){
daklowprofile 0:36fbb19fb8fb 168 wait(15);
daklowprofile 0:36fbb19fb8fb 169 }else if(timer_tf.read() >= 95 && timer_tf.read() <= 165){
daklowprofile 0:36fbb19fb8fb 170 traffic_interrupt('R','R','Y',3);
daklowprofile 0:36fbb19fb8fb 171 traffic_interrupt('R','G','R',15);
daklowprofile 0:36fbb19fb8fb 172 traffic_interrupt('R','Y','R',3);
daklowprofile 0:36fbb19fb8fb 173 }else if(timer_tf.read() >= 166 && timer_tf.read() <= 169){
daklowprofile 0:36fbb19fb8fb 174 wait(3);
daklowprofile 0:36fbb19fb8fb 175 traffic_interrupt('R','G','R',15);
daklowprofile 0:36fbb19fb8fb 176 traffic_interrupt('R','Y','R',3);
daklowprofile 0:36fbb19fb8fb 177 }
daklowprofile 0:36fbb19fb8fb 178 timer_tf.start();
daklowprofile 0:36fbb19fb8fb 179 break;
daklowprofile 0:36fbb19fb8fb 180
daklowprofile 0:36fbb19fb8fb 181 case 3 :
daklowprofile 0:36fbb19fb8fb 182 timer_tf.stop();
daklowprofile 0:36fbb19fb8fb 183 if(timer_tf.read() >= 0 && timer_tf.read() <= 47){
daklowprofile 0:36fbb19fb8fb 184 traffic_interrupt('Y','R','R',3);
daklowprofile 0:36fbb19fb8fb 185 traffic_interrupt('R','R','G',15);
daklowprofile 0:36fbb19fb8fb 186 traffic_interrupt('R','R','Y',3);
daklowprofile 0:36fbb19fb8fb 187 }else if(timer_tf.read() >= 48 && timer_tf.read() <= 51){
daklowprofile 0:36fbb19fb8fb 188 wait(3);
daklowprofile 0:36fbb19fb8fb 189 traffic_interrupt('R','R','G',15);
daklowprofile 0:36fbb19fb8fb 190 traffic_interrupt('R','R','Y',3);
daklowprofile 0:36fbb19fb8fb 191 }else if(timer_tf.read() >= 52 && timer_tf.read() <= 90){
daklowprofile 0:36fbb19fb8fb 192 traffic_interrupt('R','Y','R',3);
daklowprofile 0:36fbb19fb8fb 193 traffic_interrupt('R','R','G',15);
daklowprofile 0:36fbb19fb8fb 194 traffic_interrupt('R','R','Y',3);
daklowprofile 0:36fbb19fb8fb 195 }else if(timer_tf.read() >= 91 && timer_tf.read() <= 94){
daklowprofile 0:36fbb19fb8fb 196 wait(3);
daklowprofile 0:36fbb19fb8fb 197 traffic_interrupt('R','R','G',15);
daklowprofile 0:36fbb19fb8fb 198 traffic_interrupt('R','R','Y',3);
daklowprofile 0:36fbb19fb8fb 199 }else if(timer_tf.read() >= 95 && timer_tf.read() <= 169){
daklowprofile 0:36fbb19fb8fb 200 wait(15);
daklowprofile 0:36fbb19fb8fb 201 }
daklowprofile 0:36fbb19fb8fb 202 timer_tf.start();
daklowprofile 0:36fbb19fb8fb 203 break;
daklowprofile 0:36fbb19fb8fb 204 }
daklowprofile 0:36fbb19fb8fb 205
daklowprofile 0:36fbb19fb8fb 206 }
daklowprofile 0:36fbb19fb8fb 207
daklowprofile 0:36fbb19fb8fb 208 //post when changed
daklowprofile 0:36fbb19fb8fb 209 int t1red_o,t1yellow_o,t1green_o,t2red_o,t2yellow_o,t2green_o,t3red_o,t3yellow_o,t3green_o = 0;
daklowprofile 0:36fbb19fb8fb 210 void change(int t1red_n, int t1yellow_n,int t1green_n, int t2red_n, int t2yellow_n, int t2green_n, int t3red_n, int t3yellow_n, int t3green_n){
daklowprofile 0:36fbb19fb8fb 211
daklowprofile 0:36fbb19fb8fb 212 if(t1red_o != t1red_n || t1yellow_o != t1yellow_n || t1green_o != t1green_n || t2red_o != t2red_n || t2yellow_o != t2yellow_n || t2green_o != t2green_n || t3red_o != t3red_n || t3yellow_o != t3yellow_n || t3green_o != t3green_n){
daklowprofile 0:36fbb19fb8fb 213 http_get();
daklowprofile 0:36fbb19fb8fb 214 t1red_o = t1red_n;
daklowprofile 0:36fbb19fb8fb 215 t1yellow_o = t1yellow_n;
daklowprofile 0:36fbb19fb8fb 216 t1green_o = t1green_n;
daklowprofile 0:36fbb19fb8fb 217 t2red_o = t2red_n;
daklowprofile 0:36fbb19fb8fb 218 t2yellow_o = t2yellow_n;
daklowprofile 0:36fbb19fb8fb 219 t2green_o = t2green_n;
daklowprofile 0:36fbb19fb8fb 220 t3red_o = t3red_n;
daklowprofile 0:36fbb19fb8fb 221 t3yellow_o = t3yellow_n;
daklowprofile 0:36fbb19fb8fb 222 t3green_o = t3green_n;
daklowprofile 0:36fbb19fb8fb 223 }else{}
daklowprofile 0:36fbb19fb8fb 224 }
daklowprofile 0:36fbb19fb8fb 225
daklowprofile 0:36fbb19fb8fb 226
daklowprofile 0:36fbb19fb8fb 227 void normal_traffic(){
daklowprofile 0:36fbb19fb8fb 228 if(timer_tf.read() >= 0 && timer_tf.read() <= 47){
daklowprofile 0:36fbb19fb8fb 229 traffic_timer('G','R','R');
daklowprofile 0:36fbb19fb8fb 230 }else if(timer_tf.read() >= 48 && timer_tf.read() <= 51){
daklowprofile 0:36fbb19fb8fb 231 traffic_timer('Y','R','R');
daklowprofile 0:36fbb19fb8fb 232 }else if(timer_tf.read() >= 52 && timer_tf.read() <= 90){
daklowprofile 0:36fbb19fb8fb 233 traffic_timer('R','G','R');
daklowprofile 0:36fbb19fb8fb 234 }else if(timer_tf.read() >= 91 && timer_tf.read() <= 94){
daklowprofile 0:36fbb19fb8fb 235 traffic_timer('R','Y','R');
daklowprofile 0:36fbb19fb8fb 236 }else if(timer_tf.read() >= 95 && timer_tf.read() <= 165){
daklowprofile 0:36fbb19fb8fb 237 traffic_timer('R','R','G');
daklowprofile 0:36fbb19fb8fb 238 }else if(timer_tf.read() >= 166 && timer_tf.read() <= 169){
daklowprofile 0:36fbb19fb8fb 239 traffic_timer('R','R','Y');
daklowprofile 0:36fbb19fb8fb 240 }else if(timer_tf.read() >= 170){
daklowprofile 0:36fbb19fb8fb 241 timer_tf.reset();
daklowprofile 0:36fbb19fb8fb 242 }
daklowprofile 0:36fbb19fb8fb 243
daklowprofile 0:36fbb19fb8fb 244 if(button1.read()==1){
daklowprofile 0:36fbb19fb8fb 245 interrupt(1);
daklowprofile 0:36fbb19fb8fb 246 button1.write(0);
daklowprofile 0:36fbb19fb8fb 247 }else if(button2.read()==1){
daklowprofile 0:36fbb19fb8fb 248 interrupt(2);
daklowprofile 0:36fbb19fb8fb 249 button2.write(0);
daklowprofile 0:36fbb19fb8fb 250 }else if(button3.read()==1){
daklowprofile 0:36fbb19fb8fb 251 interrupt(3);
daklowprofile 0:36fbb19fb8fb 252 button3.write(0);
daklowprofile 0:36fbb19fb8fb 253 }
daklowprofile 0:36fbb19fb8fb 254 change(t1red.read(),t1yellow.read(),t1green.read(),t2red.read(),t2yellow.read(),t2green.read(),t3red.read(),t3yellow.read(),t3green.read());
daklowprofile 0:36fbb19fb8fb 255
daklowprofile 0:36fbb19fb8fb 256 }
daklowprofile 0:36fbb19fb8fb 257
daklowprofile 0:36fbb19fb8fb 258
daklowprofile 0:36fbb19fb8fb 259 int main() {
daklowprofile 0:36fbb19fb8fb 260 EthernetInterface eth;
daklowprofile 0:36fbb19fb8fb 261 HTTPServer svr;
daklowprofile 0:36fbb19fb8fb 262
daklowprofile 0:36fbb19fb8fb 263 button1.write(0);
daklowprofile 0:36fbb19fb8fb 264 button2.write(0);
daklowprofile 0:36fbb19fb8fb 265 button3.write(0);
daklowprofile 0:36fbb19fb8fb 266
daklowprofile 0:36fbb19fb8fb 267 RPC::add_rpc_class<RpcDigitalOut>();
daklowprofile 0:36fbb19fb8fb 268
daklowprofile 0:36fbb19fb8fb 269 printf("Setting up...\r\n");
daklowprofile 0:36fbb19fb8fb 270 eth.init();
daklowprofile 0:36fbb19fb8fb 271 int ethErr = eth.connect();
daklowprofile 0:36fbb19fb8fb 272 if(ethErr < 0)
daklowprofile 0:36fbb19fb8fb 273 {
daklowprofile 0:36fbb19fb8fb 274 printf("Error %d in setup.\r\n", ethErr);
daklowprofile 0:36fbb19fb8fb 275 return -1;
daklowprofile 0:36fbb19fb8fb 276 }
daklowprofile 0:36fbb19fb8fb 277
daklowprofile 0:36fbb19fb8fb 278 svr.addHandler<HTTPRpcRequestHandler>("/rpc");
daklowprofile 0:36fbb19fb8fb 279
daklowprofile 0:36fbb19fb8fb 280 //attach server to port 80
daklowprofile 0:36fbb19fb8fb 281 svr.start(80, &eth);
daklowprofile 0:36fbb19fb8fb 282
daklowprofile 0:36fbb19fb8fb 283 printf("Listening...\n");
daklowprofile 0:36fbb19fb8fb 284
daklowprofile 0:36fbb19fb8fb 285 //Listen indefinitely
daklowprofile 0:36fbb19fb8fb 286 Timer tm;
daklowprofile 0:36fbb19fb8fb 287 tm.start();
daklowprofile 0:36fbb19fb8fb 288 timer_tf.start();
daklowprofile 0:36fbb19fb8fb 289
daklowprofile 0:36fbb19fb8fb 290 while(1)
daklowprofile 0:36fbb19fb8fb 291 {
daklowprofile 0:36fbb19fb8fb 292 //while(button1.read()==0&&button2.read()==0&&button3.read()==0){
daklowprofile 0:36fbb19fb8fb 293 normal_traffic();
daklowprofile 0:36fbb19fb8fb 294 //}
daklowprofile 0:36fbb19fb8fb 295 //wait(20);
daklowprofile 0:36fbb19fb8fb 296 svr.poll();
daklowprofile 0:36fbb19fb8fb 297 if(tm.read()>.5)
daklowprofile 0:36fbb19fb8fb 298 {
daklowprofile 0:36fbb19fb8fb 299 tm.start();
daklowprofile 0:36fbb19fb8fb 300 }
daklowprofile 0:36fbb19fb8fb 301
daklowprofile 0:36fbb19fb8fb 302
daklowprofile 0:36fbb19fb8fb 303
daklowprofile 0:36fbb19fb8fb 304 }
daklowprofile 0:36fbb19fb8fb 305
daklowprofile 0:36fbb19fb8fb 306 }