test public

Dependencies:   HttpServer_snapshot_mbed-os

Committer:
anhtran
Date:
Fri Oct 18 03:09:43 2019 +0000
Revision:
0:e9fd5575b10e
abc

Who changed what in which revision?

UserRevisionLine numberNew contents of line
anhtran 0:e9fd5575b10e 1 /* Copyright (c) 2010-2012 mbed.org, MIT License
anhtran 0:e9fd5575b10e 2 *
anhtran 0:e9fd5575b10e 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
anhtran 0:e9fd5575b10e 4 * and associated documentation files (the "Software"), to deal in the Software without
anhtran 0:e9fd5575b10e 5 * restriction, including without limitation the rights to use, copy, modify, merge, publish,
anhtran 0:e9fd5575b10e 6 * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
anhtran 0:e9fd5575b10e 7 * Software is furnished to do so, subject to the following conditions:
anhtran 0:e9fd5575b10e 8 *
anhtran 0:e9fd5575b10e 9 * The above copyright notice and this permission notice shall be included in all copies or
anhtran 0:e9fd5575b10e 10 * substantial portions of the Software.
anhtran 0:e9fd5575b10e 11 *
anhtran 0:e9fd5575b10e 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
anhtran 0:e9fd5575b10e 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
anhtran 0:e9fd5575b10e 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
anhtran 0:e9fd5575b10e 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
anhtran 0:e9fd5575b10e 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
anhtran 0:e9fd5575b10e 17 */
anhtran 0:e9fd5575b10e 18
anhtran 0:e9fd5575b10e 19 #ifndef WANDONGLE_H
anhtran 0:e9fd5575b10e 20 #define WANDONGLE_H
anhtran 0:e9fd5575b10e 21
anhtran 0:e9fd5575b10e 22 #include "USBHostConf.h"
anhtran 0:e9fd5575b10e 23
anhtran 0:e9fd5575b10e 24 #ifdef USBHOST_3GMODULE
anhtran 0:e9fd5575b10e 25
anhtran 0:e9fd5575b10e 26 #include "USBHost.h"
anhtran 0:e9fd5575b10e 27 #include "IUSBHostSerial.h"
anhtran 0:e9fd5575b10e 28
anhtran 0:e9fd5575b10e 29 #include "rtos.h"
anhtran 0:e9fd5575b10e 30
anhtran 0:e9fd5575b10e 31 #include "WANDongleSerialPort.h"
anhtran 0:e9fd5575b10e 32 #include "WANDongleInitializer.h"
anhtran 0:e9fd5575b10e 33 #include "IUSBEnumerator.h"
anhtran 0:e9fd5575b10e 34
anhtran 0:e9fd5575b10e 35 #define WANDONGLE_MAX_OUTEP_SIZE 64
anhtran 0:e9fd5575b10e 36 #define WANDONGLE_MAX_INEP_SIZE 64
anhtran 0:e9fd5575b10e 37
anhtran 0:e9fd5575b10e 38 /** A class to use a WAN (3G/LTE) access dongle
anhtran 0:e9fd5575b10e 39 *
anhtran 0:e9fd5575b10e 40 */
anhtran 0:e9fd5575b10e 41 class WANDongle : public IUSBEnumerator {
anhtran 0:e9fd5575b10e 42 public:
anhtran 0:e9fd5575b10e 43 /*
anhtran 0:e9fd5575b10e 44 * Constructor
anhtran 0:e9fd5575b10e 45 *
anhtran 0:e9fd5575b10e 46 * @param rootdir mount name
anhtran 0:e9fd5575b10e 47 */
anhtran 0:e9fd5575b10e 48 WANDongle();
anhtran 0:e9fd5575b10e 49
anhtran 0:e9fd5575b10e 50 /*
anhtran 0:e9fd5575b10e 51 * Destructor
anhtran 0:e9fd5575b10e 52 */
anhtran 0:e9fd5575b10e 53 virtual ~WANDongle();
anhtran 0:e9fd5575b10e 54
anhtran 0:e9fd5575b10e 55 /*
anhtran 0:e9fd5575b10e 56 * Check if a serial port device is connected
anhtran 0:e9fd5575b10e 57 *
anhtran 0:e9fd5575b10e 58 * @return true if a serial device is connected
anhtran 0:e9fd5575b10e 59 */
anhtran 0:e9fd5575b10e 60 bool connected();
anhtran 0:e9fd5575b10e 61
anhtran 0:e9fd5575b10e 62 /*
anhtran 0:e9fd5575b10e 63 * Try to connect device
anhtran 0:e9fd5575b10e 64 *
anhtran 0:e9fd5575b10e 65 * * @return true if connection was successful
anhtran 0:e9fd5575b10e 66 */
anhtran 0:e9fd5575b10e 67 bool tryConnect();
anhtran 0:e9fd5575b10e 68
anhtran 0:e9fd5575b10e 69 /*
anhtran 0:e9fd5575b10e 70 * Disconnect device
anhtran 0:e9fd5575b10e 71 *
anhtran 0:e9fd5575b10e 72 * * @return true if disconnection was successful
anhtran 0:e9fd5575b10e 73 */
anhtran 0:e9fd5575b10e 74 bool disconnect();
anhtran 0:e9fd5575b10e 75
anhtran 0:e9fd5575b10e 76 int getDongleType();
anhtran 0:e9fd5575b10e 77
anhtran 0:e9fd5575b10e 78 IUSBHostSerial& getSerial(int index);
anhtran 0:e9fd5575b10e 79 int getSerialCount();
anhtran 0:e9fd5575b10e 80 bool addInitializer(WANDongleInitializer* pInitializer);
anhtran 0:e9fd5575b10e 81
anhtran 0:e9fd5575b10e 82 //From IUSBEnumerator
anhtran 0:e9fd5575b10e 83
anhtran 0:e9fd5575b10e 84 virtual void setVidPid(uint16_t vid, uint16_t pid);
anhtran 0:e9fd5575b10e 85
anhtran 0:e9fd5575b10e 86 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
anhtran 0:e9fd5575b10e 87
anhtran 0:e9fd5575b10e 88 virtual bool useEndpoint(uint8_t intf_nb, ENDPOINT_TYPE type, ENDPOINT_DIRECTION dir); //Must return true if the endpoint will be used
anhtran 0:e9fd5575b10e 89
anhtran 0:e9fd5575b10e 90 protected:
anhtran 0:e9fd5575b10e 91 USBHost * host;
anhtran 0:e9fd5575b10e 92 USBDeviceConnected * dev;
anhtran 0:e9fd5575b10e 93 bool dev_connected;
anhtran 0:e9fd5575b10e 94
anhtran 0:e9fd5575b10e 95 WANDongleInitializer* m_pInitializer;
anhtran 0:e9fd5575b10e 96
anhtran 0:e9fd5575b10e 97 void init();
anhtran 0:e9fd5575b10e 98
anhtran 0:e9fd5575b10e 99 WANDongleSerialPort m_serial[WANDONGLE_MAX_SERIAL_PORTS];
anhtran 0:e9fd5575b10e 100 int m_serialCount;
anhtran 0:e9fd5575b10e 101
anhtran 0:e9fd5575b10e 102 int m_totalInitializers;
anhtran 0:e9fd5575b10e 103 WANDongleInitializer* m_Initializers[WANDONGLE_MAX_INITIALIZERS];
anhtran 0:e9fd5575b10e 104 };
anhtran 0:e9fd5575b10e 105
anhtran 0:e9fd5575b10e 106 #endif /* USBHOST_3GMODULE */
anhtran 0:e9fd5575b10e 107
anhtran 0:e9fd5575b10e 108 #endif