Gestion du Traffic Adaptatif- Code du mbed coordinateur
Dependencies: XBeeLib mbed mbed-rtos EthernetInterface
Diff: main.cpp
- Revision:
- 27:0085fca436e1
- Parent:
- 26:e9fc7e552c88
- Child:
- 28:50d89e4255da
--- a/main.cpp Mon Dec 03 20:28:23 2018 +0000 +++ b/main.cpp Mon Dec 03 22:42:37 2018 +0000 @@ -43,6 +43,8 @@ char set_rouge[]="r"; // demande a un recepteur de passer au rouge char set_vert[]="v"; // demande a un recepteur de passer au vert +int whosred=0; + static void send_explicit_data_to_remote_node(XBeeZB& xbee, const RemoteXBeeZB& RemoteDevice,const char * data) { @@ -88,11 +90,13 @@ if ( UINT64_LO32(remote_addr64) == UINT64_LO32(REMOTE_NODE_ADDR64_LSB1)){ log_serial->printf("r2 passe au vert"); send_explicit_data_to_remote_node(xbee, remoteDevice2,set_vert); + whosred = 1; } // demande au r1 de passer au vert else if ( UINT64_LO32(remote_addr64) == UINT64_LO32(REMOTE_NODE_ADDR64_LSB2)){ log_serial->printf("r1 passe au vert"); send_explicit_data_to_remote_node(xbee, remoteDevice1,set_vert); + whosred = 2; } } log_serial->printf("\r\n"); @@ -126,7 +130,7 @@ void gestion() { - int i=0; + //int i=0; bool stay1=0; bool stay2=0; while(1) @@ -137,6 +141,7 @@ stay2=0; stay1=1; send_explicit_data_to_remote_node(xbee, remoteDevice1,set_rouge); + Thread::wait(100); } } else if ((voituresFeu2==0) && (voituresFeu1!=0)){ @@ -144,20 +149,19 @@ stay1=0; stay2=1; send_explicit_data_to_remote_node(xbee, remoteDevice2,set_rouge); + Thread::wait(100); } } else{ stay1=0; stay2=0; - Thread::wait(4000); - if(i==0){ + if(whosred==1){ send_explicit_data_to_remote_node(xbee, remoteDevice2,set_rouge); - i=1; } - else if(i==1){ + else if(whosred==2){ send_explicit_data_to_remote_node(xbee, remoteDevice1,set_rouge); - i=0; } + Thread::wait(4000); } } }