traffic light controller with RPC over http interrupter
Dependencies: EthernetInterface HTTPClient HTTPServer mbed-rpc mbed-rtos mbed
main.cpp@0:36fbb19fb8fb, 2018-07-16 (annotated)
- 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?
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 | 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, ð); |
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 | } |