traffic light controller with RPC over http interrupter
Dependencies: EthernetInterface HTTPClient HTTPServer mbed-rpc mbed-rtos mbed
main.cpp@1:2c577df21639, 2018-07-17 (annotated)
- Committer:
- daklowprofile
- Date:
- Tue Jul 17 06:08:30 2018 +0000
- Revision:
- 1:2c577df21639
- Parent:
- 0:36fbb19fb8fb
- Child:
- 2:bf0da8f925e0
included with thingsboard connection draft in http_get ; -still not working for thingsboard
Who changed what in which revision?
User | Revision | Line number | New 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 | 1:2c577df21639 | 115 | //char* Server = "http://demo.thingsboard.io/api/v1/aq8Xr1qkEzo1ANb4VQHa/telemetry"; |
daklowprofile | 0:36fbb19fb8fb | 116 | char buffer[256]; |
daklowprofile | 0:36fbb19fb8fb | 117 | HTTPClient http; |
daklowprofile | 1:2c577df21639 | 118 | //HTTPMap map; |
daklowprofile | 1:2c577df21639 | 119 | //map.put("t1r", "application/json"); |
daklowprofile | 1:2c577df21639 | 120 | |
daklowprofile | 0:36fbb19fb8fb | 121 | buffer[0] = 0; |
daklowprofile | 0:36fbb19fb8fb | 122 | 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 | 123 | printf("Send to %s\r\n", buffer); |
daklowprofile | 0:36fbb19fb8fb | 124 | http.get(buffer, buffer , 10); // Execute the URL of urlBuffer |
daklowprofile | 1:2c577df21639 | 125 | /* |
daklowprofile | 1:2c577df21639 | 126 | sprintf(buffer,"{\"t1r\":%d, \"t1y\":%d, \"t1g\":%d, \"t2r\":%d, \"t2y\":%d, \"t2g\":%d, \"t3r\":%d, \"t3y\":%d, \"t3g\":%d, \"active\": false}",t1red.read(),t1yellow.read(),t1green.read(),t2red.read(),t2yellow.read(),t2green.read(),t3red.read(),t3yellow.read(),t3green.read()); |
daklowprofile | 1:2c577df21639 | 127 | printf("Send to %s\r\n", buffer); |
daklowprofile | 1:2c577df21639 | 128 | HTTPText inText(buffer, 512); |
daklowprofile | 1:2c577df21639 | 129 | http.post(Server,map,&inText,10); |
daklowprofile | 1:2c577df21639 | 130 | */ |
daklowprofile | 0:36fbb19fb8fb | 131 | } |
daklowprofile | 0:36fbb19fb8fb | 132 | |
daklowprofile | 0:36fbb19fb8fb | 133 | void traffic_interrupt (char t1, char t2, char t3, int time){ |
daklowprofile | 0:36fbb19fb8fb | 134 | t1light(t1); |
daklowprofile | 0:36fbb19fb8fb | 135 | t2light(t2); |
daklowprofile | 0:36fbb19fb8fb | 136 | t3light(t3); |
daklowprofile | 0:36fbb19fb8fb | 137 | http_get(); |
daklowprofile | 0:36fbb19fb8fb | 138 | wait(time); |
daklowprofile | 0:36fbb19fb8fb | 139 | } |
daklowprofile | 0:36fbb19fb8fb | 140 | |
daklowprofile | 0:36fbb19fb8fb | 141 | void interrupt(int buffer){ |
daklowprofile | 0:36fbb19fb8fb | 142 | switch(buffer){ |
daklowprofile | 0:36fbb19fb8fb | 143 | case 1 : |
daklowprofile | 0:36fbb19fb8fb | 144 | timer_tf.stop(); |
daklowprofile | 0:36fbb19fb8fb | 145 | if(timer_tf.read() >= 0 && timer_tf.read() <= 51){ |
daklowprofile | 0:36fbb19fb8fb | 146 | wait(15); |
daklowprofile | 0:36fbb19fb8fb | 147 | }else if(timer_tf.read() >= 52 && timer_tf.read() <= 90){ |
daklowprofile | 0:36fbb19fb8fb | 148 | traffic_interrupt('R','Y','R',3); |
daklowprofile | 0:36fbb19fb8fb | 149 | traffic_interrupt('G','R','R',15); |
daklowprofile | 0:36fbb19fb8fb | 150 | traffic_interrupt('Y','R','R',3); |
daklowprofile | 0:36fbb19fb8fb | 151 | }else if(timer_tf.read() >= 91 && timer_tf.read() <= 94){ |
daklowprofile | 0:36fbb19fb8fb | 152 | wait(3); |
daklowprofile | 0:36fbb19fb8fb | 153 | traffic_interrupt('G','R','R',15); |
daklowprofile | 0:36fbb19fb8fb | 154 | traffic_interrupt('Y','R','R',3); |
daklowprofile | 0:36fbb19fb8fb | 155 | }else if(timer_tf.read() >= 95 && timer_tf.read() <= 165){ |
daklowprofile | 0:36fbb19fb8fb | 156 | traffic_interrupt('R','R','Y',3); |
daklowprofile | 0:36fbb19fb8fb | 157 | traffic_interrupt('G','R','R',15); |
daklowprofile | 0:36fbb19fb8fb | 158 | traffic_interrupt('Y','R','R',3); |
daklowprofile | 0:36fbb19fb8fb | 159 | }else if(timer_tf.read() >= 166 && timer_tf.read() <= 169){ |
daklowprofile | 0:36fbb19fb8fb | 160 | wait(3); |
daklowprofile | 0:36fbb19fb8fb | 161 | traffic_interrupt('G','R','R',15); |
daklowprofile | 0:36fbb19fb8fb | 162 | traffic_interrupt('Y','R','R',3); |
daklowprofile | 0:36fbb19fb8fb | 163 | } |
daklowprofile | 0:36fbb19fb8fb | 164 | timer_tf.start(); |
daklowprofile | 0:36fbb19fb8fb | 165 | break; |
daklowprofile | 0:36fbb19fb8fb | 166 | |
daklowprofile | 0:36fbb19fb8fb | 167 | case 2 : |
daklowprofile | 0:36fbb19fb8fb | 168 | timer_tf.stop(); |
daklowprofile | 0:36fbb19fb8fb | 169 | if(timer_tf.read() >= 0 && timer_tf.read() <= 47){ |
daklowprofile | 0:36fbb19fb8fb | 170 | traffic_interrupt('Y','R','R',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() >= 48 && timer_tf.read() <= 51){ |
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 | }else if(timer_tf.read() >= 52 && timer_tf.read() <= 94){ |
daklowprofile | 0:36fbb19fb8fb | 178 | wait(15); |
daklowprofile | 0:36fbb19fb8fb | 179 | }else if(timer_tf.read() >= 95 && timer_tf.read() <= 165){ |
daklowprofile | 0:36fbb19fb8fb | 180 | traffic_interrupt('R','R','Y',3); |
daklowprofile | 0:36fbb19fb8fb | 181 | traffic_interrupt('R','G','R',15); |
daklowprofile | 0:36fbb19fb8fb | 182 | traffic_interrupt('R','Y','R',3); |
daklowprofile | 0:36fbb19fb8fb | 183 | }else if(timer_tf.read() >= 166 && timer_tf.read() <= 169){ |
daklowprofile | 0:36fbb19fb8fb | 184 | wait(3); |
daklowprofile | 0:36fbb19fb8fb | 185 | traffic_interrupt('R','G','R',15); |
daklowprofile | 0:36fbb19fb8fb | 186 | traffic_interrupt('R','Y','R',3); |
daklowprofile | 0:36fbb19fb8fb | 187 | } |
daklowprofile | 0:36fbb19fb8fb | 188 | timer_tf.start(); |
daklowprofile | 0:36fbb19fb8fb | 189 | break; |
daklowprofile | 0:36fbb19fb8fb | 190 | |
daklowprofile | 0:36fbb19fb8fb | 191 | case 3 : |
daklowprofile | 0:36fbb19fb8fb | 192 | timer_tf.stop(); |
daklowprofile | 0:36fbb19fb8fb | 193 | if(timer_tf.read() >= 0 && timer_tf.read() <= 47){ |
daklowprofile | 0:36fbb19fb8fb | 194 | traffic_interrupt('Y','R','R',3); |
daklowprofile | 0:36fbb19fb8fb | 195 | traffic_interrupt('R','R','G',15); |
daklowprofile | 0:36fbb19fb8fb | 196 | traffic_interrupt('R','R','Y',3); |
daklowprofile | 0:36fbb19fb8fb | 197 | }else if(timer_tf.read() >= 48 && timer_tf.read() <= 51){ |
daklowprofile | 0:36fbb19fb8fb | 198 | wait(3); |
daklowprofile | 0:36fbb19fb8fb | 199 | traffic_interrupt('R','R','G',15); |
daklowprofile | 0:36fbb19fb8fb | 200 | traffic_interrupt('R','R','Y',3); |
daklowprofile | 0:36fbb19fb8fb | 201 | }else if(timer_tf.read() >= 52 && timer_tf.read() <= 90){ |
daklowprofile | 0:36fbb19fb8fb | 202 | traffic_interrupt('R','Y','R',3); |
daklowprofile | 0:36fbb19fb8fb | 203 | traffic_interrupt('R','R','G',15); |
daklowprofile | 0:36fbb19fb8fb | 204 | traffic_interrupt('R','R','Y',3); |
daklowprofile | 0:36fbb19fb8fb | 205 | }else if(timer_tf.read() >= 91 && timer_tf.read() <= 94){ |
daklowprofile | 0:36fbb19fb8fb | 206 | wait(3); |
daklowprofile | 0:36fbb19fb8fb | 207 | traffic_interrupt('R','R','G',15); |
daklowprofile | 0:36fbb19fb8fb | 208 | traffic_interrupt('R','R','Y',3); |
daklowprofile | 0:36fbb19fb8fb | 209 | }else if(timer_tf.read() >= 95 && timer_tf.read() <= 169){ |
daklowprofile | 0:36fbb19fb8fb | 210 | wait(15); |
daklowprofile | 0:36fbb19fb8fb | 211 | } |
daklowprofile | 0:36fbb19fb8fb | 212 | timer_tf.start(); |
daklowprofile | 0:36fbb19fb8fb | 213 | break; |
daklowprofile | 0:36fbb19fb8fb | 214 | } |
daklowprofile | 0:36fbb19fb8fb | 215 | |
daklowprofile | 0:36fbb19fb8fb | 216 | } |
daklowprofile | 0:36fbb19fb8fb | 217 | |
daklowprofile | 0:36fbb19fb8fb | 218 | //post when changed |
daklowprofile | 0:36fbb19fb8fb | 219 | int t1red_o,t1yellow_o,t1green_o,t2red_o,t2yellow_o,t2green_o,t3red_o,t3yellow_o,t3green_o = 0; |
daklowprofile | 0:36fbb19fb8fb | 220 | 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 | 221 | |
daklowprofile | 0:36fbb19fb8fb | 222 | 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 | 223 | http_get(); |
daklowprofile | 0:36fbb19fb8fb | 224 | t1red_o = t1red_n; |
daklowprofile | 0:36fbb19fb8fb | 225 | t1yellow_o = t1yellow_n; |
daklowprofile | 0:36fbb19fb8fb | 226 | t1green_o = t1green_n; |
daklowprofile | 0:36fbb19fb8fb | 227 | t2red_o = t2red_n; |
daklowprofile | 0:36fbb19fb8fb | 228 | t2yellow_o = t2yellow_n; |
daklowprofile | 0:36fbb19fb8fb | 229 | t2green_o = t2green_n; |
daklowprofile | 0:36fbb19fb8fb | 230 | t3red_o = t3red_n; |
daklowprofile | 0:36fbb19fb8fb | 231 | t3yellow_o = t3yellow_n; |
daklowprofile | 0:36fbb19fb8fb | 232 | t3green_o = t3green_n; |
daklowprofile | 0:36fbb19fb8fb | 233 | }else{} |
daklowprofile | 0:36fbb19fb8fb | 234 | } |
daklowprofile | 0:36fbb19fb8fb | 235 | |
daklowprofile | 0:36fbb19fb8fb | 236 | |
daklowprofile | 0:36fbb19fb8fb | 237 | void normal_traffic(){ |
daklowprofile | 0:36fbb19fb8fb | 238 | if(timer_tf.read() >= 0 && timer_tf.read() <= 47){ |
daklowprofile | 0:36fbb19fb8fb | 239 | traffic_timer('G','R','R'); |
daklowprofile | 0:36fbb19fb8fb | 240 | }else if(timer_tf.read() >= 48 && timer_tf.read() <= 51){ |
daklowprofile | 0:36fbb19fb8fb | 241 | traffic_timer('Y','R','R'); |
daklowprofile | 0:36fbb19fb8fb | 242 | }else if(timer_tf.read() >= 52 && timer_tf.read() <= 90){ |
daklowprofile | 0:36fbb19fb8fb | 243 | traffic_timer('R','G','R'); |
daklowprofile | 0:36fbb19fb8fb | 244 | }else if(timer_tf.read() >= 91 && timer_tf.read() <= 94){ |
daklowprofile | 0:36fbb19fb8fb | 245 | traffic_timer('R','Y','R'); |
daklowprofile | 0:36fbb19fb8fb | 246 | }else if(timer_tf.read() >= 95 && timer_tf.read() <= 165){ |
daklowprofile | 0:36fbb19fb8fb | 247 | traffic_timer('R','R','G'); |
daklowprofile | 0:36fbb19fb8fb | 248 | }else if(timer_tf.read() >= 166 && timer_tf.read() <= 169){ |
daklowprofile | 0:36fbb19fb8fb | 249 | traffic_timer('R','R','Y'); |
daklowprofile | 0:36fbb19fb8fb | 250 | }else if(timer_tf.read() >= 170){ |
daklowprofile | 0:36fbb19fb8fb | 251 | timer_tf.reset(); |
daklowprofile | 0:36fbb19fb8fb | 252 | } |
daklowprofile | 0:36fbb19fb8fb | 253 | |
daklowprofile | 0:36fbb19fb8fb | 254 | if(button1.read()==1){ |
daklowprofile | 0:36fbb19fb8fb | 255 | interrupt(1); |
daklowprofile | 0:36fbb19fb8fb | 256 | button1.write(0); |
daklowprofile | 0:36fbb19fb8fb | 257 | }else if(button2.read()==1){ |
daklowprofile | 0:36fbb19fb8fb | 258 | interrupt(2); |
daklowprofile | 0:36fbb19fb8fb | 259 | button2.write(0); |
daklowprofile | 0:36fbb19fb8fb | 260 | }else if(button3.read()==1){ |
daklowprofile | 0:36fbb19fb8fb | 261 | interrupt(3); |
daklowprofile | 0:36fbb19fb8fb | 262 | button3.write(0); |
daklowprofile | 0:36fbb19fb8fb | 263 | } |
daklowprofile | 0:36fbb19fb8fb | 264 | change(t1red.read(),t1yellow.read(),t1green.read(),t2red.read(),t2yellow.read(),t2green.read(),t3red.read(),t3yellow.read(),t3green.read()); |
daklowprofile | 0:36fbb19fb8fb | 265 | |
daklowprofile | 0:36fbb19fb8fb | 266 | } |
daklowprofile | 0:36fbb19fb8fb | 267 | |
daklowprofile | 0:36fbb19fb8fb | 268 | |
daklowprofile | 0:36fbb19fb8fb | 269 | int main() { |
daklowprofile | 0:36fbb19fb8fb | 270 | EthernetInterface eth; |
daklowprofile | 0:36fbb19fb8fb | 271 | HTTPServer svr; |
daklowprofile | 0:36fbb19fb8fb | 272 | |
daklowprofile | 0:36fbb19fb8fb | 273 | button1.write(0); |
daklowprofile | 0:36fbb19fb8fb | 274 | button2.write(0); |
daklowprofile | 0:36fbb19fb8fb | 275 | button3.write(0); |
daklowprofile | 0:36fbb19fb8fb | 276 | |
daklowprofile | 0:36fbb19fb8fb | 277 | RPC::add_rpc_class<RpcDigitalOut>(); |
daklowprofile | 0:36fbb19fb8fb | 278 | |
daklowprofile | 0:36fbb19fb8fb | 279 | printf("Setting up...\r\n"); |
daklowprofile | 0:36fbb19fb8fb | 280 | eth.init(); |
daklowprofile | 0:36fbb19fb8fb | 281 | int ethErr = eth.connect(); |
daklowprofile | 0:36fbb19fb8fb | 282 | if(ethErr < 0) |
daklowprofile | 0:36fbb19fb8fb | 283 | { |
daklowprofile | 0:36fbb19fb8fb | 284 | printf("Error %d in setup.\r\n", ethErr); |
daklowprofile | 0:36fbb19fb8fb | 285 | return -1; |
daklowprofile | 0:36fbb19fb8fb | 286 | } |
daklowprofile | 0:36fbb19fb8fb | 287 | |
daklowprofile | 0:36fbb19fb8fb | 288 | svr.addHandler<HTTPRpcRequestHandler>("/rpc"); |
daklowprofile | 0:36fbb19fb8fb | 289 | |
daklowprofile | 0:36fbb19fb8fb | 290 | //attach server to port 80 |
daklowprofile | 0:36fbb19fb8fb | 291 | svr.start(80, ð); |
daklowprofile | 0:36fbb19fb8fb | 292 | |
daklowprofile | 0:36fbb19fb8fb | 293 | printf("Listening...\n"); |
daklowprofile | 0:36fbb19fb8fb | 294 | |
daklowprofile | 0:36fbb19fb8fb | 295 | //Listen indefinitely |
daklowprofile | 0:36fbb19fb8fb | 296 | Timer tm; |
daklowprofile | 0:36fbb19fb8fb | 297 | tm.start(); |
daklowprofile | 0:36fbb19fb8fb | 298 | timer_tf.start(); |
daklowprofile | 0:36fbb19fb8fb | 299 | |
daklowprofile | 0:36fbb19fb8fb | 300 | while(1) |
daklowprofile | 0:36fbb19fb8fb | 301 | { |
daklowprofile | 0:36fbb19fb8fb | 302 | //while(button1.read()==0&&button2.read()==0&&button3.read()==0){ |
daklowprofile | 0:36fbb19fb8fb | 303 | normal_traffic(); |
daklowprofile | 0:36fbb19fb8fb | 304 | //} |
daklowprofile | 0:36fbb19fb8fb | 305 | //wait(20); |
daklowprofile | 0:36fbb19fb8fb | 306 | svr.poll(); |
daklowprofile | 0:36fbb19fb8fb | 307 | if(tm.read()>.5) |
daklowprofile | 0:36fbb19fb8fb | 308 | { |
daklowprofile | 0:36fbb19fb8fb | 309 | tm.start(); |
daklowprofile | 0:36fbb19fb8fb | 310 | } |
daklowprofile | 0:36fbb19fb8fb | 311 | |
daklowprofile | 0:36fbb19fb8fb | 312 | |
daklowprofile | 0:36fbb19fb8fb | 313 | |
daklowprofile | 0:36fbb19fb8fb | 314 | } |
daklowprofile | 0:36fbb19fb8fb | 315 | |
daklowprofile | 0:36fbb19fb8fb | 316 | } |