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
ftclasslibusbdevbt.h@1:0dde58e0cccf, 2011-04-04 (annotated)
- Committer:
- networker
- Date:
- Mon Apr 04 16:47:10 2011 +0000
- Revision:
- 1:0dde58e0cccf
initial revision
Who changed what in which revision?
User | Revision | Line number | New 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 |