Based on myBlueUSB reference ver. http://mbed.org/users/networker/programs/myBlueUSB/lsm1ui

Dependencies:   mbed myUSBHost AvailableMemory rfcomm myBlueUSB sdp

Committer:
kenbumono
Date:
Tue Jul 05 08:25:59 2011 +0000
Revision:
0:8d8481ed6d49

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenbumono 0:8d8481ed6d49 1 #ifndef FTCLASSLIBUSBDEVBT_H
kenbumono 0:8d8481ed6d49 2 #define FTCLASSLIBUSBDEVBT_H
kenbumono 0:8d8481ed6d49 3
kenbumono 0:8d8481ed6d49 4
kenbumono 0:8d8481ed6d49 5 class ftbtdev {//small object for ft BT enumeration
kenbumono 0:8d8481ed6d49 6 inquiry_info info;
kenbumono 0:8d8481ed6d49 7 public:
kenbumono 0:8d8481ed6d49 8 ftbtdev(inquiry_info* ii) {
kenbumono 0:8d8481ed6d49 9 info = *ii;
kenbumono 0:8d8481ed6d49 10 }
kenbumono 0:8d8481ed6d49 11 BD_ADDR* BtAddr() {
kenbumono 0:8d8481ed6d49 12 return &info.bdaddr;
kenbumono 0:8d8481ed6d49 13 }
kenbumono 0:8d8481ed6d49 14 };
kenbumono 0:8d8481ed6d49 15
kenbumono 0:8d8481ed6d49 16 class ftdev {//this should in the future encapsulate the real TXC
kenbumono 0:8d8481ed6d49 17 int sock;
kenbumono 0:8d8481ed6d49 18 int parseState;
kenbumono 0:8d8481ed6d49 19 unsigned short X1_crc, X1_len, X1_pos;
kenbumono 0:8d8481ed6d49 20 unsigned char *X1_pkt;
kenbumono 0:8d8481ed6d49 21 unsigned short chksum();
kenbumono 0:8d8481ed6d49 22 void parse(const unsigned char *, unsigned);
kenbumono 0:8d8481ed6d49 23 public:
kenbumono 0:8d8481ed6d49 24 ftdev(): sock(0) { parseState = 0;}
kenbumono 0:8d8481ed6d49 25 int Open(BD_ADDR *bt_addr, int chan=1, SocketCallback cb=&ftdev::recv) {
kenbumono 0:8d8481ed6d49 26 L2CAPAddr s;
kenbumono 0:8d8481ed6d49 27 s.bdaddr = *bt_addr;
kenbumono 0:8d8481ed6d49 28 s.psm = chan;//abuse the psm for the channelID
kenbumono 0:8d8481ed6d49 29 sock = Socket_Open(SOCKET_RFCOM, &s.hdr, cb, this);//Open the serial connection via RFCOMM
kenbumono 0:8d8481ed6d49 30 if (sock<=0)
kenbumono 0:8d8481ed6d49 31 printf("Opening of RFCOMM socket for ftdevice failed (%d)\n", sock);
kenbumono 0:8d8481ed6d49 32 return sock;
kenbumono 0:8d8481ed6d49 33 }
kenbumono 0:8d8481ed6d49 34 static void recv(int socket, SocketState state, const u8* data, int len, void* userData) {
kenbumono 0:8d8481ed6d49 35 if (userData) ((ftdev*)userData)->receive(socket, state, data, len);
kenbumono 0:8d8481ed6d49 36 }
kenbumono 0:8d8481ed6d49 37 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);}
kenbumono 0:8d8481ed6d49 38 };
kenbumono 0:8d8481ed6d49 39
kenbumono 0:8d8481ed6d49 40 extern ftdev _ftdev;
kenbumono 0:8d8481ed6d49 41
kenbumono 0:8d8481ed6d49 42 unsigned InitFtBtDeviceList();
kenbumono 0:8d8481ed6d49 43 int GetNrOfFtBtDevices();
kenbumono 0:8d8481ed6d49 44 ftbtdev* GetFtUsbDeviceHandle(unsigned Num);
kenbumono 0:8d8481ed6d49 45 unsigned OpenFtBtDevice(ftbtdev* d);
kenbumono 0:8d8481ed6d49 46
kenbumono 0:8d8481ed6d49 47 #endif