Is it working Ben?
Dependencies: EthernetInterface WebSocketClient mbed-rtos mbed ID12RFID XBeeLib
main.cpp
- Committer:
- bellavanceo
- Date:
- 2017-04-12
- Revision:
- 3:030d126dabab
- Parent:
- 2:28d134cf84f8
File content as of revision 3:030d126dabab:
#include "mbed.h" #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"; DigitalOut myled(LED1); Serial pc(USBTX, USBRX); //static char* WEBSOCKET_URL= "ws://braceletus.herokuapp.com:8080/"; // Adresse Serveur M-A //static char* WEBSOCKET_URL = "ws://24.203.139.78:8080/"; // Adresse Serveur M-A static char* WEBSOCKET_URL = "ws://192.168.0.20:3000/"; // Adresse Serveur M-A DigitalOut sw(p20); void keep_alive(); Thread thread_alive(keep_alive); ID12RFID rfid(p10); // uart rx //EthernetInterface eth; Websocket ws(WEBSOCKET_URL); static void receive_cb(const RemoteXBeeZB& remote, bool broadcast, const uint8_t *const data, uint16_t len) { const uint64_t remote_addr64 = remote.get_addr64(); for (int i = 0; i < len; i++) pc.printf("%02x ", data[i]); sw = (bool)data[0]; uint32_t x ; //Construire le ID avec les 3 char recu x = data[1]; x= (x<<8)|data[2]; x= (x<<8)|data[3]; pc.printf("%d %02x %02x %02x", x, data[1], data[2], data[3]); char message[64]; sprintf(message,"1,%d,%d",x,data[0]) ; if(ws.send(message)==-1) { ws.close(); ws.connect(); ws.send(message); } //envoie de message de chute pc.printf("\r\n"); } void keep_alive() { Thread::signal_wait(0x1); //signal keep alive pouvant être utilisé plus tard pour vérifier que les poste fixe sont fonctionnel ws.send("2"); } void sendSignal() { thread_alive.signal_set(0x1); } int main() { // Setup du port ethernet EthernetInterface eth; eth.init(); //Use DHCP //eth.init(mbedIp, mbedMask, mbedGateway); //Use config eth.connect(); //printf("IP Address is %s\n\r", eth.getIPAddress()); XBeeZB xbee = XBeeZB(RADIO_TX, RADIO_RX, RADIO_RESET, NC, NC, 9600); /* Register callbacks */ xbee.register_receive_cb(&receive_cb); Ticker ticker_num; RadioStatus const radioStatus = xbee.init(); if(ws.connect()) { pc.printf("ok"); } else { pc.printf("bad"); } ticker_num.attach(&sendSignal, 15); //tick a chaque 50ms pour la thread numerique myled = false; while (1) { xbee.process_rx_frames(); if(rfid.readable()) { int i = rfid.read(); printf("RFID Tag number : %d\n", i); char message[64]; sprintf(message,"0,%d,1",i) ; if(ws.send(message)==-1) { ws.close(); ws.connect(); ws.send(message); } //envoie de commande rfid } wait_ms(100); } }