mbed base bard check program for BlueTooth USB dongle module (3 switches, 6 leds, I2C LCD, A/D)
Fork of BTstack by
USBHostBTstack/USBHostBTstack.h@1:b657594559be, 2013-03-21 (annotated)
- Committer:
- va009039
- Date:
- Thu Mar 21 13:53:05 2013 +0000
- Revision:
- 1:b657594559be
- Child:
- 2:871b41f4789e
replaced USBHost
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
va009039 | 1:b657594559be | 1 | #include "USBHostConf.h" |
va009039 | 1:b657594559be | 2 | #include "USBHost.h" |
va009039 | 1:b657594559be | 3 | #pragma once |
va009039 | 1:b657594559be | 4 | |
va009039 | 1:b657594559be | 5 | #define TEST_ASSERT(A) while(!(A)){fprintf(stderr,"\n\n%s@%d %s ASSERT!\n\n",__PRETTY_FUNCTION__,__LINE__,#A);exit(1);}; |
va009039 | 1:b657594559be | 6 | |
va009039 | 1:b657594559be | 7 | /** |
va009039 | 1:b657594559be | 8 | * A class to communicate a BTstack |
va009039 | 1:b657594559be | 9 | */ |
va009039 | 1:b657594559be | 10 | class USBHostBTstack : public IUSBEnumerator { |
va009039 | 1:b657594559be | 11 | public: |
va009039 | 1:b657594559be | 12 | /** |
va009039 | 1:b657594559be | 13 | * Constructor |
va009039 | 1:b657594559be | 14 | * |
va009039 | 1:b657594559be | 15 | */ |
va009039 | 1:b657594559be | 16 | USBHostBTstack(); |
va009039 | 1:b657594559be | 17 | |
va009039 | 1:b657594559be | 18 | /** |
va009039 | 1:b657594559be | 19 | * Check if a BTstack device is connected |
va009039 | 1:b657594559be | 20 | * |
va009039 | 1:b657594559be | 21 | * @return true if a MSD device is connected |
va009039 | 1:b657594559be | 22 | */ |
va009039 | 1:b657594559be | 23 | bool connected(); |
va009039 | 1:b657594559be | 24 | |
va009039 | 1:b657594559be | 25 | /** |
va009039 | 1:b657594559be | 26 | * Try to connect to a BTstack device |
va009039 | 1:b657594559be | 27 | * |
va009039 | 1:b657594559be | 28 | * @return true if connection was successful |
va009039 | 1:b657594559be | 29 | */ |
va009039 | 1:b657594559be | 30 | bool connect(); |
va009039 | 1:b657594559be | 31 | |
va009039 | 1:b657594559be | 32 | int open(); |
va009039 | 1:b657594559be | 33 | int send_packet(uint8_t packet_type, uint8_t* packet, int size); |
va009039 | 1:b657594559be | 34 | void register_packet_handler( void (*pMethod)(uint8_t, uint8_t*, uint16_t)); |
va009039 | 1:b657594559be | 35 | |
va009039 | 1:b657594559be | 36 | protected: |
va009039 | 1:b657594559be | 37 | //From IUSBEnumerator |
va009039 | 1:b657594559be | 38 | virtual void setVidPid(uint16_t vid, uint16_t pid); |
va009039 | 1:b657594559be | 39 | virtual bool parseInterface(uint8_t intf_nb, uint8_t intf_class, uint8_t intf_subclass, uint8_t intf_protocol); //Must return true if the interface should be parsed |
va009039 | 1:b657594559be | 40 | virtual bool useEndpoint(uint8_t intf_nb, ENDPOINT_TYPE type, ENDPOINT_DIRECTION dir); //Must return true if the endpoint will be used |
va009039 | 1:b657594559be | 41 | |
va009039 | 1:b657594559be | 42 | private: |
va009039 | 1:b657594559be | 43 | USBHost * host; |
va009039 | 1:b657594559be | 44 | USBDeviceConnected * dev; |
va009039 | 1:b657594559be | 45 | bool dev_connected; |
va009039 | 1:b657594559be | 46 | uint8_t int_report[64]; |
va009039 | 1:b657594559be | 47 | uint8_t bulk_report[64]; |
va009039 | 1:b657594559be | 48 | USBEndpoint * int_in; |
va009039 | 1:b657594559be | 49 | USBEndpoint * bulk_in; |
va009039 | 1:b657594559be | 50 | USBEndpoint * bulk_out; |
va009039 | 1:b657594559be | 51 | bool ep_int_in; |
va009039 | 1:b657594559be | 52 | bool ep_bulk_in; |
va009039 | 1:b657594559be | 53 | bool ep_bulk_out; |
va009039 | 1:b657594559be | 54 | |
va009039 | 1:b657594559be | 55 | bool btstack_device_found; |
va009039 | 1:b657594559be | 56 | int btstack_intf; |
va009039 | 1:b657594559be | 57 | void (*m_pCb)(uint8_t, uint8_t*, uint16_t); |
va009039 | 1:b657594559be | 58 | void int_rxHandler(); |
va009039 | 1:b657594559be | 59 | void bulk_rxHandler(); |
va009039 | 1:b657594559be | 60 | void init(); |
va009039 | 1:b657594559be | 61 | }; |