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

Revision:
0:003889bc474f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HCITransportUSB.h	Sat Dec 07 14:19:00 2013 +0000
@@ -0,0 +1,65 @@
+#ifndef HCITRANSPORTUSB_H
+#define HCITRANSPORTUSB_H
+#define MAX_HCL_SIZE 260
+#define MAX_ACL_SIZE 400
+#include "USBHost.h"
+
+extern int bulk;
+
+class HCITransportUSB : public HCITransport {
+    int _device;
+    u8* _hciBuffer;
+    u8* _aclBuffer;
+
+public:
+    void Open(int device, u8* hciBuffer, u8* aclBuffer) {
+        _device = device;
+        _hciBuffer = hciBuffer;
+        _aclBuffer = aclBuffer;
+        USBInterruptTransfer(_device,0x81,_hciBuffer,MAX_HCL_SIZE,HciCallback,this);
+        USBBulkTransfer(_device,0x82,_aclBuffer,MAX_ACL_SIZE,AclCallback,this);
+    }
+
+    static void HciCallback(int device, int endpoint, int status, u8* data, int len, void* userData) {
+        HCI* t = ((HCITransportUSB*)userData)->_target; //printf("HCI: %d bytes avail\n", len);
+        if (t){
+        printfBytes("HCICallback:", data, len);
+            t->HCIRecv(data,len);
+            }
+        USBInterruptTransfer(device,0x81,data,MAX_HCL_SIZE,HciCallback,userData);
+    }
+
+    static void AclCallback(int device, int endpoint, int status, u8* data, int len, void* userData) {
+        HCI* t = ((HCITransportUSB*)userData)->_target; printf("ACL: %d bytes avail\n", len);
+        if (t){
+        printfBytes("ACLCallback:", data, len);
+            t->ACLRecv(data,len);
+            }
+            printf("ACL Read pending..\n");
+        USBBulkTransfer(device,0x82,data,MAX_ACL_SIZE,AclCallback,userData);
+    }
+
+    virtual void HCISend(const u8* data, int len) {
+        printfBytes("HCISend:", data, len);
+        USBControlTransfer(_device,REQUEST_TYPE_CLASS, 0, 0, 0,(u8*)data,len);
+    }
+
+    virtual int ACLSend(const u8* data, int len) { //printf("send %d bytes to usb\n", len);
+        if (len > _acl_mtu) {
+            printf("Max outgoing packet(%d) size exceeded, segmenting necessary, pktlen = %d\n", _acl_mtu, len);
+            return 0;
+        }
+#ifdef HOST_CONTR_FLOW
+        if (data_credits == 0)
+          printf("Waiting for ACL buffers...\n");
+        while (data_credits < 1) {
+            USBLoop();
+        }
+        data_credits--;
+#endif
+        printfBytes("ACLSend:", data, len);
+        return USBBulkTransfer(_device,0x02,(u8*)data,len);
+    }
+};
+
+#endif