BLE demo for mbed Ported RunningElectronics's SBDBT firmware for BLE. It can communicate with iOS
Dependencies: FatFileSystem mbed
Fork of BTstack by
Diff: usb/UsbHostMgr2.cpp
- Revision:
- 0:1ed23ab1345f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usb/UsbHostMgr2.cpp Tue Jun 26 14:27:45 2012 +0000 @@ -0,0 +1,51 @@ +#include "UsbHostMgr.h" +//#define __DEBUG +#include "mydbg.h" + +UsbDevice* UsbHostMgr::getDeviceByClass(uint8_t IfClass, int count) +{ + DBG("IfClass=%02X count=%d\n", IfClass, count); + for(int i = 0; i < USB_HOSTMGR_MAX_DEVS; i++) { + UsbDevice* dev = m_lpDevices[i]; + if (dev) { + if(dev->m_connected && dev->m_enumerated) { + if (dev->m_InterfaceClass == IfClass) { // found + if (count-- <= 0) { + return dev; + } + } + } + } + } + return NULL; +} + +void UsbHostMgr::onUsbDeviceConnected(int hub, int port) +{ + DBG("%p hub=%d port=%d\n", this, hub, port); + for(int i = 0; i < USB_HOSTMGR_MAX_DEVS; i++) { + UsbDevice* dev = m_lpDevices[i]; + if (dev) { + if (dev->m_hub == hub && dev->m_port == port) { // skip + return; + } + } + } + + int item = devicesCount(); + DBG_ASSERT(item < USB_HOSTMGR_MAX_DEVS); + if( item == USB_HOSTMGR_MAX_DEVS ) + return; //List full... + //Find a free address (not optimized, but not really important) + int addr = 1; + for(int i = 0; i < item; i++) + { + DBG_ASSERT(m_lpDevices[i]); + addr = MAX( addr, m_lpDevices[i]->m_addr + 1 ); + } + DBG("item=%d addr=%d\n", item, addr); + UsbDevice* dev = new UsbDevice( this, hub, port, addr ); + DBG_ASSERT(dev); + dev->m_connected = true; + m_lpDevices[item] = dev; +}