Is it working Ben?

Dependencies:   EthernetInterface WebSocketClient mbed-rtos mbed ID12RFID XBeeLib

main.cpp

Committer:
bellavanceo
Date:
2017-04-10
Revision:
2:28d134cf84f8
Parent:
1:30d760c7478e
Child:
3:030d126dabab

File content as of revision 2:28d134cf84f8:

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


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

    //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] = (char)data[1];
    ((char*)&x)[1] = (char)data[2];
    ((char*)&x)[0] = (char)data[3];
    pc.printf("%d ", x);
    char message[64];
    sprintf(message,"1,%d,%d",x,data[0]) ;
    ws.send(message); //envoie de message de chute
    pc.printf("\r\n");
}

void ReadConfig()
{
    char key[10];
   int panID;
    FILE * f = fopen("/local/coor.cfg", "r");
    fscanf(f,"%s %x", key, &panID);
    //fscanf(f,"%s %x", key, &ID); //lecture du panid
    //fscanf(f,"%s %d",key, &ID); //lecture du panid
   
    fclose(f);
}

int main()
{
    //ReadConfig();
     
    // 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());

    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();
    //ws = new Websocket(WEBSOCKET_URL, &eth);
    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);
            char message[64];
            sprintf(message,"0,%d,1",i) ;
            //sprintf(message,"0,%d,%d",i,ID) ;
            ws.send(message); //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;
//            }
//        }
    }
}