Is it working Ben?

Dependencies:   EthernetInterface WebSocketClient mbed-rtos mbed ID12RFID XBeeLib

main.cpp

Committer:
bellavanceo
Date:
2017-04-10
Revision:
1:30d760c7478e
Parent:
0:634fbc4f9bc7
Child:
2:28d134cf84f8

File content as of revision 1:30d760c7478e:

#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
bool IsReponseRecu;
char* Reponse = "";
bool frameIsOk = true;

ID12RFID rfid(p10); // uart rx

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();

    //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()
{
    // Setup du port ethernet
    EthernetInterface eth;
    eth.init(); //Use DHCP
    //eth.init(mbedIp, mbedMask, mbedGateway); //Use config
    eth.connect();


    IsReponseRecu = false;
    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;

    while (1) {
        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;
//            }
//        }
    }
}