Is it working Ben?
Dependencies: EthernetInterface WebSocketClient mbed-rtos mbed ID12RFID XBeeLib
main.cpp@3:030d126dabab, 2017-04-12 (annotated)
- Committer:
- bellavanceo
- Date:
- Wed Apr 12 17:53:31 2017 +0000
- Revision:
- 3:030d126dabab
- Parent:
- 2:28d134cf84f8
Final
Who changed what in which revision?
User | Revision | Line number | New 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 | } |