Test version of BlueUSB stack. Includes SDP and RFCOMM. As Client it allows to connect to my fischertechnik TX Controller. As Server it echo\\\\\\\'s characters to Putty. PIN=1234

Dependencies:   mbed myUSBHost AvailableMemory

Dependents:   mbed_TANK_Kinect myBlueUSB_ros ftusbClass

Committer:
networker
Date:
Fri Jul 01 09:16:00 2011 +0000
Revision:
13:327622e38551
Parent:
1:0dde58e0cccf
made some improvements to get massstorage functioning

Who changed what in which revision?

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