うおーるぼっとをiPhoneでコントロールするプログラムです。 iPhoneとはBTLEで接続しています。

Dependencies:   FatFileSystem HighSpeedAnalogIn TB6612FNG2 mbed

Committer:
jksoft
Date:
Fri May 10 11:48:07 2013 +0000
Revision:
0:373bcb197dc8
?????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jksoft 0:373bcb197dc8 1 #ifndef USBBT_H
jksoft 0:373bcb197dc8 2 #define USBBT_H
jksoft 0:373bcb197dc8 3 #include "UsbHostMgr.h"
jksoft 0:373bcb197dc8 4 #include "UsbEndpoint.h"
jksoft 0:373bcb197dc8 5 #include "UsbBaseClass.h"
jksoft 0:373bcb197dc8 6
jksoft 0:373bcb197dc8 7 #define HCI_COMMAND_DATA_PACKET 0x01
jksoft 0:373bcb197dc8 8 #define HCI_ACL_DATA_PACKET 0x02
jksoft 0:373bcb197dc8 9 #define HCI_SCO_DATA_PACKET 0x03
jksoft 0:373bcb197dc8 10 #define HCI_EVENT_PACKET 0x04
jksoft 0:373bcb197dc8 11
jksoft 0:373bcb197dc8 12 class usbbt : public UsbBaseClass {
jksoft 0:373bcb197dc8 13 public:
jksoft 0:373bcb197dc8 14 usbbt(int dongle = 0);
jksoft 0:373bcb197dc8 15 int setup(int timeout = 9000);
jksoft 0:373bcb197dc8 16 int send_packet(uint8_t packet_type, uint8_t* packet, int size);
jksoft 0:373bcb197dc8 17 void poll();
jksoft 0:373bcb197dc8 18 ///Setups the result callback
jksoft 0:373bcb197dc8 19 /**
jksoft 0:373bcb197dc8 20 @param pMethod : callback function
jksoft 0:373bcb197dc8 21 */
jksoft 0:373bcb197dc8 22 void setOnPacket( void (*pMethod)(uint8_t, uint8_t*, uint16_t) );
jksoft 0:373bcb197dc8 23
jksoft 0:373bcb197dc8 24 ///Setups the result callback
jksoft 0:373bcb197dc8 25 /**
jksoft 0:373bcb197dc8 26 @param pItem : instance of class on which to execute the callback method
jksoft 0:373bcb197dc8 27 @param pMethod : callback method
jksoft 0:373bcb197dc8 28 */
jksoft 0:373bcb197dc8 29 class CDummy;
jksoft 0:373bcb197dc8 30 template<class T>
jksoft 0:373bcb197dc8 31 void setOnPacket( T* pItem, void (T::*pMethod)(uint8_t, uint8_t*, uint16_t) )
jksoft 0:373bcb197dc8 32 {
jksoft 0:373bcb197dc8 33 m_pCb = NULL;
jksoft 0:373bcb197dc8 34 m_pCbItem = (CDummy*) pItem;
jksoft 0:373bcb197dc8 35 m_pCbMeth = (void (CDummy::*)(uint8_t, uint8_t*, uint16_t)) pMethod;
jksoft 0:373bcb197dc8 36 }
jksoft 0:373bcb197dc8 37 void clearOnPacket();
jksoft 0:373bcb197dc8 38 private:
jksoft 0:373bcb197dc8 39 int ParseConfiguration();
jksoft 0:373bcb197dc8 40 void onPacket(uint8_t packet_type, uint8_t* packet, uint16_t size);
jksoft 0:373bcb197dc8 41 int m_dongle;
jksoft 0:373bcb197dc8 42 UsbDevice* m_pDev;
jksoft 0:373bcb197dc8 43 UsbEndpoint* m_pEpIntIn;
jksoft 0:373bcb197dc8 44 UsbEndpoint* m_pEpBulkIn;
jksoft 0:373bcb197dc8 45 UsbEndpoint* m_pEpBulkOut;
jksoft 0:373bcb197dc8 46 Timer m_timer;
jksoft 0:373bcb197dc8 47 int m_int_seq;
jksoft 0:373bcb197dc8 48 uint8_t m_int_buf[64];
jksoft 0:373bcb197dc8 49 int m_bulk_seq;
jksoft 0:373bcb197dc8 50 uint8_t m_bulk_buf[64];
jksoft 0:373bcb197dc8 51 CDummy* m_pCbItem;
jksoft 0:373bcb197dc8 52 void (CDummy::*m_pCbMeth)(uint8_t, uint8_t*, uint16_t);
jksoft 0:373bcb197dc8 53 void (*m_pCb)(uint8_t, uint8_t*, uint16_t);
jksoft 0:373bcb197dc8 54 };
jksoft 0:373bcb197dc8 55 #endif //USBBT_H