Is it working Ben?

Dependencies:   EthernetInterface WebSocketClient mbed-rtos mbed ID12RFID XBeeLib

Committer:
bellavanceo
Date:
Wed Apr 12 17:53:31 2017 +0000
Revision:
3:030d126dabab
Parent:
2:28d134cf84f8
Final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JoeyDionne 0:634fbc4f9bc7 1 #include "mbed.h"
JoeyDionne 0:634fbc4f9bc7 2 #include "rtos.h"
JoeyDionne 0:634fbc4f9bc7 3 #include "EthernetInterface.h"
JoeyDionne 0:634fbc4f9bc7 4 #include "Websocket.h"
bellavanceo 1:30d760c7478e 5 #include "ID12RFID.h"
bellavanceo 1:30d760c7478e 6 #include "XBeeLib.h"
bellavanceo 1:30d760c7478e 7 #include "DigiLoggerMbedSerial.h"
JoeyDionne 0:634fbc4f9bc7 8
bellavanceo 1:30d760c7478e 9 using namespace XBeeLib;
JoeyDionne 0:634fbc4f9bc7 10 //static const char* mbedIp = "192.168.1.2";
JoeyDionne 0:634fbc4f9bc7 11 //static const char* mbedMask = "255.255.255.0";
JoeyDionne 0:634fbc4f9bc7 12 //static const char* mbedGateway = "192.168.1.1";
JoeyDionne 0:634fbc4f9bc7 13 DigitalOut myled(LED1);
JoeyDionne 0:634fbc4f9bc7 14 Serial pc(USBTX, USBRX);
JoeyDionne 0:634fbc4f9bc7 15 //static char* WEBSOCKET_URL= "ws://braceletus.herokuapp.com:8080/"; // Adresse Serveur M-A
bellavanceo 2:28d134cf84f8 16 //static char* WEBSOCKET_URL = "ws://24.203.139.78:8080/"; // Adresse Serveur M-A
bellavanceo 2:28d134cf84f8 17 static char* WEBSOCKET_URL = "ws://192.168.0.20:3000/"; // Adresse Serveur M-A
bellavanceo 3:030d126dabab 18 DigitalOut sw(p20);
bellavanceo 3:030d126dabab 19 void keep_alive();
bellavanceo 3:030d126dabab 20 Thread thread_alive(keep_alive);
bellavanceo 2:28d134cf84f8 21
bellavanceo 1:30d760c7478e 22
bellavanceo 1:30d760c7478e 23 ID12RFID rfid(p10); // uart rx
bellavanceo 2:28d134cf84f8 24 //EthernetInterface eth;
bellavanceo 1:30d760c7478e 25 Websocket ws(WEBSOCKET_URL);
bellavanceo 1:30d760c7478e 26
bellavanceo 1:30d760c7478e 27 static void receive_cb(const RemoteXBeeZB& remote, bool broadcast, const uint8_t *const data, uint16_t len)
JoeyDionne 0:634fbc4f9bc7 28 {
bellavanceo 1:30d760c7478e 29 const uint64_t remote_addr64 = remote.get_addr64();
bellavanceo 1:30d760c7478e 30
bellavanceo 1:30d760c7478e 31 for (int i = 0; i < len; i++)
bellavanceo 1:30d760c7478e 32 pc.printf("%02x ", data[i]);
bellavanceo 3:030d126dabab 33 sw = (bool)data[0];
bellavanceo 3:030d126dabab 34 uint32_t x ; //Construire le ID avec les 3 char recu
bellavanceo 3:030d126dabab 35 x = data[1];
bellavanceo 3:030d126dabab 36 x= (x<<8)|data[2];
bellavanceo 3:030d126dabab 37 x= (x<<8)|data[3];
bellavanceo 3:030d126dabab 38
bellavanceo 3:030d126dabab 39 pc.printf("%d %02x %02x %02x", x, data[1], data[2], data[3]);
bellavanceo 3:030d126dabab 40
bellavanceo 2:28d134cf84f8 41 char message[64];
bellavanceo 2:28d134cf84f8 42 sprintf(message,"1,%d,%d",x,data[0]) ;
bellavanceo 3:030d126dabab 43
bellavanceo 3:030d126dabab 44 if(ws.send(message)==-1) {
bellavanceo 3:030d126dabab 45 ws.close();
bellavanceo 3:030d126dabab 46 ws.connect();
bellavanceo 3:030d126dabab 47 ws.send(message);
bellavanceo 3:030d126dabab 48 } //envoie de message de chute
bellavanceo 3:030d126dabab 49
bellavanceo 3:030d126dabab 50
bellavanceo 1:30d760c7478e 51 pc.printf("\r\n");
JoeyDionne 0:634fbc4f9bc7 52 }
JoeyDionne 0:634fbc4f9bc7 53
bellavanceo 3:030d126dabab 54
bellavanceo 3:030d126dabab 55 void keep_alive()
bellavanceo 2:28d134cf84f8 56 {
bellavanceo 3:030d126dabab 57 Thread::signal_wait(0x1); //signal keep alive pouvant être utilisé plus tard pour vérifier que les poste fixe sont fonctionnel
bellavanceo 3:030d126dabab 58 ws.send("2");
bellavanceo 3:030d126dabab 59 }
bellavanceo 3:030d126dabab 60 void sendSignal()
bellavanceo 3:030d126dabab 61 {
bellavanceo 3:030d126dabab 62 thread_alive.signal_set(0x1);
bellavanceo 2:28d134cf84f8 63 }
bellavanceo 1:30d760c7478e 64
bellavanceo 1:30d760c7478e 65 int main()
bellavanceo 1:30d760c7478e 66 {
bellavanceo 3:030d126dabab 67
JoeyDionne 0:634fbc4f9bc7 68 // Setup du port ethernet
bellavanceo 1:30d760c7478e 69 EthernetInterface eth;
JoeyDionne 0:634fbc4f9bc7 70 eth.init(); //Use DHCP
JoeyDionne 0:634fbc4f9bc7 71 //eth.init(mbedIp, mbedMask, mbedGateway); //Use config
JoeyDionne 0:634fbc4f9bc7 72 eth.connect();
bellavanceo 2:28d134cf84f8 73 //printf("IP Address is %s\n\r", eth.getIPAddress());
bellavanceo 1:30d760c7478e 74
bellavanceo 1:30d760c7478e 75 XBeeZB xbee = XBeeZB(RADIO_TX, RADIO_RX, RADIO_RESET, NC, NC, 9600);
bellavanceo 1:30d760c7478e 76
bellavanceo 1:30d760c7478e 77 /* Register callbacks */
bellavanceo 1:30d760c7478e 78 xbee.register_receive_cb(&receive_cb);
bellavanceo 3:030d126dabab 79 Ticker ticker_num;
bellavanceo 1:30d760c7478e 80 RadioStatus const radioStatus = xbee.init();
bellavanceo 3:030d126dabab 81
bellavanceo 2:28d134cf84f8 82 if(ws.connect()) {
bellavanceo 1:30d760c7478e 83 pc.printf("ok");
bellavanceo 2:28d134cf84f8 84 } else {
bellavanceo 2:28d134cf84f8 85 pc.printf("bad");
bellavanceo 2:28d134cf84f8 86 }
bellavanceo 3:030d126dabab 87 ticker_num.attach(&sendSignal, 15); //tick a chaque 50ms pour la thread numerique
JoeyDionne 0:634fbc4f9bc7 88 myled = false;
bellavanceo 1:30d760c7478e 89
JoeyDionne 0:634fbc4f9bc7 90 while (1) {
bellavanceo 1:30d760c7478e 91 xbee.process_rx_frames();
bellavanceo 1:30d760c7478e 92
bellavanceo 1:30d760c7478e 93 if(rfid.readable()) {
bellavanceo 1:30d760c7478e 94 int i = rfid.read();
bellavanceo 1:30d760c7478e 95 printf("RFID Tag number : %d\n", i);
bellavanceo 2:28d134cf84f8 96 char message[64];
bellavanceo 2:28d134cf84f8 97 sprintf(message,"0,%d,1",i) ;
bellavanceo 3:030d126dabab 98
bellavanceo 3:030d126dabab 99 if(ws.send(message)==-1) {
bellavanceo 3:030d126dabab 100 ws.close();
bellavanceo 3:030d126dabab 101 ws.connect();
bellavanceo 3:030d126dabab 102 ws.send(message);
bellavanceo 3:030d126dabab 103 } //envoie de commande rfid
bellavanceo 3:030d126dabab 104
bellavanceo 3:030d126dabab 105
JoeyDionne 0:634fbc4f9bc7 106 }
bellavanceo 3:030d126dabab 107 wait_ms(100);
JoeyDionne 0:634fbc4f9bc7 108 }
JoeyDionne 0:634fbc4f9bc7 109 }