Changes to support Vodafone K4606
Fork of USBHostWANDongle by
Diff: USB3GModule/WANDongle.h
- Revision:
- 2:a8b2d0cd9bbd
- Parent:
- 0:ae46a0638b2c
- Child:
- 3:4394986752db
--- a/USB3GModule/WANDongle.h Fri May 25 09:31:41 2012 +0000 +++ b/USB3GModule/WANDongle.h Tue Jun 26 13:43:54 2012 +0000 @@ -28,10 +28,12 @@ #define WANDONGLE_MAX_OUTEP_SIZE 64 #define WANDONGLE_MAX_INEP_SIZE 64 +#define WANDONGLE_MAX_SERIAL_PORTS 2 + /** A class to use a WAN (3G/LTE) access dongle * */ -class WANDongle : public IUSBHostSerial { +class WANDongle { public: /* * Constructor @@ -53,88 +55,19 @@ * * @return true if connection was successful */ bool tryConnect(); - - /* - * Get a char from the dongle's serial interface - */ - virtual int getc(); - - /* - * Put a char to the dongle's serial interface - */ - virtual int putc(int c); - //void test(); - - /* - * Read a packet from the dongle's serial interface, to be called after multiple getc() calls - */ - virtual int readPacket(); - - /* - * Write a packet to the dongle's serial interface, to be called after multiple putc() calls - */ - virtual int writePacket(); - - /** - * Check the number of bytes available. - * - * @returns the number of bytes available - */ - virtual int readable(); - - /** - * Check the free space in output. - * - * @returns the number of bytes available - */ - virtual int writeable(); - - /** - * Attach a handler to call when a packet is received / when a packet has been transmitted. - * - * @param pListener instance of the listener deriving from the IUSBHostSerialListener - */ - virtual void attach(IUSBHostSerialListener* pListener); - - /** - * Enable or disable readable/writeable callbacks - */ - virtual void setupIrq(bool en, IrqType irq = RxIrq); - + IUSBHostSerial* getSerial(int index); + int getSerialCount(); protected: - Endpoint * bulk_in; - Endpoint * bulk_out; USBHost * host; USBDeviceConnected * dev; bool dev_connected; - uint8_t buf_out[WANDONGLE_MAX_OUTEP_SIZE]; - volatile uint32_t buf_out_len; - uint32_t max_out_size; - volatile bool lock_tx; - //Mutex lock_tx; - volatile bool cb_tx_en; - volatile bool cb_tx_pending; - Mutex tx_mtx; - - uint8_t buf_in[WANDONGLE_MAX_INEP_SIZE]; - volatile uint32_t buf_in_len; - volatile uint32_t buf_in_read_pos; - volatile bool lock_rx; - //Mutex lock_rx; - volatile bool cb_rx_en; - volatile bool cb_rx_pending; - Mutex rx_mtx; + void init(); - IUSBHostSerialListener* listener; - - void init(); - void rxHandler(); - void txHandler(); - bool fetchEndpoints(); - + WANDongleSerialPort m_serial[WANDONGLE_MAX_SERIAL_PORTS]; + int m_serialCount; }; #endif