USB Host Driver with Socket Modem support. Works with revision 323 of mbed-src but broken with any later version.

Dependencies:   FATFileSystem

Fork of F401RE-USBHost by Norimasa Okamoto

Committer:
fritz291
Date:
Fri Jun 26 19:30:55 2015 +0000
Revision:
26:53970cabf56d
Parent:
25:36cbb55f5627
Fixed small error in testAT function

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fritz291 21:b4d53cc6d6ac 1 /* mbed USBHost Library
fritz291 21:b4d53cc6d6ac 2 * Copyright (c) 2006-2013 ARM Limited
fritz291 21:b4d53cc6d6ac 3 *
fritz291 21:b4d53cc6d6ac 4 * Licensed under the Apache License, Version 2.0 (the "License");
fritz291 21:b4d53cc6d6ac 5 * you may not use this file except in compliance with the License.
fritz291 21:b4d53cc6d6ac 6 * You may obtain a copy of the License at
fritz291 21:b4d53cc6d6ac 7 *
fritz291 21:b4d53cc6d6ac 8 * http://www.apache.org/licenses/LICENSE-2.0
fritz291 21:b4d53cc6d6ac 9 *
fritz291 21:b4d53cc6d6ac 10 * Unless required by applicable law or agreed to in writing, software
fritz291 21:b4d53cc6d6ac 11 * distributed under the License is distributed on an "AS IS" BASIS,
fritz291 21:b4d53cc6d6ac 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
fritz291 21:b4d53cc6d6ac 13 * See the License for the specific language governing permissions and
fritz291 21:b4d53cc6d6ac 14 * limitations under the License.
fritz291 21:b4d53cc6d6ac 15 */
fritz291 21:b4d53cc6d6ac 16
fritz291 21:b4d53cc6d6ac 17 #ifndef USBHOSTSOCKETMODEM_H
fritz291 21:b4d53cc6d6ac 18 #define USBHOSTSOCKETMODEM_H
fritz291 21:b4d53cc6d6ac 19
fritz291 21:b4d53cc6d6ac 20 #include "USBHostConf.h"
fritz291 21:b4d53cc6d6ac 21 #include "USBHost.h"
fritz291 21:b4d53cc6d6ac 22
fritz291 21:b4d53cc6d6ac 23
fritz291 21:b4d53cc6d6ac 24 /**
fritz291 21:b4d53cc6d6ac 25 * A class to communicate a USB flash disk
fritz291 21:b4d53cc6d6ac 26 */
fritz291 21:b4d53cc6d6ac 27 class USBHostSocketModem : public IUSBEnumerator {
fritz291 21:b4d53cc6d6ac 28 public:
fritz291 21:b4d53cc6d6ac 29 /**
fritz291 26:53970cabf56d 30 * Constructor
fritz291 26:53970cabf56d 31 *
fritz291 26:53970cabf56d 32 * @param rootdir mount name
fritz291 26:53970cabf56d 33 */
fritz291 21:b4d53cc6d6ac 34 USBHostSocketModem();
fritz291 21:b4d53cc6d6ac 35
fritz291 21:b4d53cc6d6ac 36 /**
fritz291 26:53970cabf56d 37 * Check if a MSD device is connected
fritz291 26:53970cabf56d 38 *
fritz291 26:53970cabf56d 39 * @return true if a MSD device is connected
fritz291 26:53970cabf56d 40 */
fritz291 21:b4d53cc6d6ac 41 bool connected();
fritz291 21:b4d53cc6d6ac 42
fritz291 21:b4d53cc6d6ac 43 /**
fritz291 21:b4d53cc6d6ac 44 * Try to connect to a MSD device
fritz291 21:b4d53cc6d6ac 45 *
fritz291 21:b4d53cc6d6ac 46 * @return true if connection was successful
fritz291 21:b4d53cc6d6ac 47 */
fritz291 21:b4d53cc6d6ac 48 bool connect();
fritz291 25:36cbb55f5627 49
fritz291 25:36cbb55f5627 50 /**
fritz291 25:36cbb55f5627 51 * Send AT command test function.
fritz291 26:53970cabf56d 52 *
fritz291 25:36cbb55f5627 53 * Sends the "AT" command which responds with "OK" if sim card is present else "ERROR".
fritz291 25:36cbb55f5627 54 */
fritz291 25:36cbb55f5627 55 void testAT();
fritz291 21:b4d53cc6d6ac 56
fritz291 21:b4d53cc6d6ac 57 protected:
fritz291 21:b4d53cc6d6ac 58 //From IUSBEnumerator
fritz291 21:b4d53cc6d6ac 59 virtual void setVidPid(uint16_t vid, uint16_t pid);
fritz291 21:b4d53cc6d6ac 60 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
fritz291 21:b4d53cc6d6ac 61 virtual bool useEndpoint(uint8_t intf_nb, ENDPOINT_TYPE type, ENDPOINT_DIRECTION dir); //Must return true if the endpoint will be used
fritz291 21:b4d53cc6d6ac 62
fritz291 21:b4d53cc6d6ac 63 //USB CDC initialization
fritz291 21:b4d53cc6d6ac 64 virtual void setDTR();
fritz291 21:b4d53cc6d6ac 65
fritz291 21:b4d53cc6d6ac 66 private:
fritz291 21:b4d53cc6d6ac 67 USBHost * host;
fritz291 21:b4d53cc6d6ac 68 USBDeviceConnected * dev;
fritz291 21:b4d53cc6d6ac 69 bool dev_connected;
fritz291 21:b4d53cc6d6ac 70 USBEndpoint * bulk_in;
fritz291 21:b4d53cc6d6ac 71 USBEndpoint * bulk_out;
fritz291 21:b4d53cc6d6ac 72 USBEndpoint * int_in;
fritz291 21:b4d53cc6d6ac 73 USBEndpoint * int_out;
fritz291 21:b4d53cc6d6ac 74 uint8_t nb_ep;
fritz291 21:b4d53cc6d6ac 75
fritz291 21:b4d53cc6d6ac 76 int sm_intf;
fritz291 21:b4d53cc6d6ac 77 int int_intf;
fritz291 21:b4d53cc6d6ac 78 int bulk_intf;
fritz291 21:b4d53cc6d6ac 79 bool sm_device_found;
fritz291 21:b4d53cc6d6ac 80
fritz291 21:b4d53cc6d6ac 81 void init();
fritz291 21:b4d53cc6d6ac 82
fritz291 21:b4d53cc6d6ac 83 };
fritz291 21:b4d53cc6d6ac 84
fritz291 21:b4d53cc6d6ac 85 #endif