Is it working Ben?
Dependencies: EthernetInterface WebSocketClient mbed-rtos mbed ID12RFID XBeeLib
Diff: main.cpp
- Revision:
- 1:30d760c7478e
- Parent:
- 0:634fbc4f9bc7
- Child:
- 2:28d134cf84f8
--- a/main.cpp Fri Mar 31 02:01:35 2017 +0000 +++ b/main.cpp Mon Apr 10 19:00:02 2017 +0000 @@ -2,7 +2,11 @@ #include "rtos.h" #include "EthernetInterface.h" #include "Websocket.h" +#include "ID12RFID.h" +#include "XBeeLib.h" +#include "DigiLoggerMbedSerial.h" +using namespace XBeeLib; //static const char* mbedIp = "192.168.1.2"; //static const char* mbedMask = "255.255.255.0"; //static const char* mbedGateway = "192.168.1.1"; @@ -12,45 +16,74 @@ static char* WEBSOCKET_URL = "ws://24.203.139.78:8080/"; // Adresse Serveur M-A bool IsReponseRecu; char* Reponse = ""; -Thread ThreadLecture; +bool frameIsOk = true; + +ID12RFID rfid(p10); // uart rx -void wsocket_message_recu() +Websocket ws(WEBSOCKET_URL); + +static void receive_cb(const RemoteXBeeZB& remote, bool broadcast, const uint8_t *const data, uint16_t len) { - while (true) - { - ThreadLecture.signal_wait(1); - myled = !myled; - pc.printf("Message Recu :\n\r"); - pc.printf(Reponse); - pc.printf("\n\rFin Message\n\r"); - } + const uint64_t remote_addr64 = remote.get_addr64(); + + //pc.printf("\r\nGot a %s RX packet [%08x:%08x|%04x], len %d\r\nData: ", broadcast ? "BROADCAST" : "UNICAST", UINT64_HI32(remote_addr64), UINT64_LO32(remote_addr64), remote.get_addr16(), len); + + for (int i = 0; i < len; i++) + pc.printf("%02x ", data[i]); + int x ; + ((char*)&x)[2] = data[1]; + ((char*)&x)[1] = data[2]; + ((char*)&x)[0] = data[3]; + pc.printf("%d ", x); + ws.send("WS Test"); //envoie de message de chute + pc.printf("\r\n"); } -int main() { + + +int main() +{ // Setup du port ethernet - EthernetInterface eth; + EthernetInterface eth; eth.init(); //Use DHCP //eth.init(mbedIp, mbedMask, mbedGateway); //Use config eth.connect(); - + + IsReponseRecu = false; - Websocket ws(WEBSOCKET_URL); - ws.connect(); - + XBeeZB xbee = XBeeZB(RADIO_TX, RADIO_RX, RADIO_RESET, NC, NC, 9600); + + /* Register callbacks */ + xbee.register_receive_cb(&receive_cb); + + RadioStatus const radioStatus = xbee.init(); + if(ws.connect()) + { + pc.printf("ok"); + } + else{ + pc.printf("bad"); + } + myled = false; - ThreadLecture.start(wsocket_message_recu); - + while (1) { - IsReponseRecu = false; - ws.send("WS Test"); - while(IsReponseRecu == false) - { - if(ws.read(Reponse)) - { - ThreadLecture.signal_set(1); - //printf("We Got Something : %v", Reponse); - IsReponseRecu = true; - } + xbee.process_rx_frames(); + + if(rfid.readable()) { + int i = rfid.read(); + printf("RFID Tag number : %d\n", i); + ws.send("WS Test"); //envoie de commande rfid } + wait_ms(100); + // IsReponseRecu = false; +// ws.send("WS Test"); +// while(IsReponseRecu == false) { +// if(ws.read(Reponse)) { +// ThreadLecture.signal_set(1); +// //printf("We Got Something : %v", Reponse); +// IsReponseRecu = true; +// } +// } } }