local fix version of myBlueUSB (http://mbed.org/users/networker/code/myBlueUSB/). - merge deleted files which are required to compile. - enable echo back of received data via RFCOMM.

Dependencies:   AvailableMemory FatFileSystem mbed myUSBHost

ftclasslibusbdevbt.h

Committer:
nobukuma
Date:
2013-12-08
Revision:
2:9f25a7fa1a54
Parent:
0:003889bc474f

File content as of revision 2:9f25a7fa1a54:

#ifndef FTCLASSLIBUSBDEVBT_H
#define FTCLASSLIBUSBDEVBT_H


class ftbtdev {//small object for ft BT enumeration
    inquiry_info info;
public:
    ftbtdev(inquiry_info* ii) {
        info = *ii;
    }
    BD_ADDR* BtAddr() {
        return &info.bdaddr;
    }
};

class ftdev {//this should in the future encapsulate the real TXC
    int sock;
    int parseState;
    unsigned short X1_crc, X1_len, X1_pos;
    unsigned char *X1_pkt;
    unsigned short chksum();
    void parse(const unsigned char *, unsigned);
public:
    ftdev(): sock(0) { parseState = 0;}
    int Open(BD_ADDR *bt_addr, int chan=1, SocketCallback cb=&ftdev::recv) {
        L2CAPAddr s;
        s.bdaddr = *bt_addr;
        s.psm = chan;//abuse the psm for the channelID
        sock = Socket_Open(SOCKET_RFCOM, &s.hdr, cb, this);//Open the serial connection via RFCOMM
        if (sock<=0)
           printf("Opening of RFCOMM socket for ftdevice failed (%d)\n", sock);
        return sock;
    }
    static void recv(int socket, SocketState state, const u8* data, int len, void* userData) {
        if (userData) ((ftdev*)userData)->receive(socket, state, data, len);
    }
    void receive(int socket, SocketState state, const u8* data, int len);// {printf("ftdev::receive was called: socket %d, state=%d, length=%d\n", socket, state, len);}
};

extern ftdev _ftdev;

unsigned InitFtBtDeviceList();
int GetNrOfFtBtDevices();
ftbtdev* GetFtUsbDeviceHandle(unsigned  Num);
unsigned OpenFtBtDevice(ftbtdev* d);

#endif