Integrating the ublox LISA C200 modem

Fork of SprintUSBModemHTTPClientTest by Donatien Garnier

Committer:
sam_grove
Date:
Thu Sep 26 00:44:20 2013 -0500
Revision:
5:3f93dd1d4cb3
Child:
7:655438fd019f
Exported program and replaced contents of the repo with the source
to build and debug using keil mdk. Libs NOT upto date are lwip, lwip-sys
and socket. these have newer versions under mbed_official but were starting
from a know working point

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sam_grove 5:3f93dd1d4cb3 1 /* Copyright (c) 2010-2012 mbed.org, MIT License
sam_grove 5:3f93dd1d4cb3 2 *
sam_grove 5:3f93dd1d4cb3 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
sam_grove 5:3f93dd1d4cb3 4 * and associated documentation files (the "Software"), to deal in the Software without
sam_grove 5:3f93dd1d4cb3 5 * restriction, including without limitation the rights to use, copy, modify, merge, publish,
sam_grove 5:3f93dd1d4cb3 6 * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
sam_grove 5:3f93dd1d4cb3 7 * Software is furnished to do so, subject to the following conditions:
sam_grove 5:3f93dd1d4cb3 8 *
sam_grove 5:3f93dd1d4cb3 9 * The above copyright notice and this permission notice shall be included in all copies or
sam_grove 5:3f93dd1d4cb3 10 * substantial portions of the Software.
sam_grove 5:3f93dd1d4cb3 11 *
sam_grove 5:3f93dd1d4cb3 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
sam_grove 5:3f93dd1d4cb3 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
sam_grove 5:3f93dd1d4cb3 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
sam_grove 5:3f93dd1d4cb3 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
sam_grove 5:3f93dd1d4cb3 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
sam_grove 5:3f93dd1d4cb3 17 */
sam_grove 5:3f93dd1d4cb3 18
sam_grove 5:3f93dd1d4cb3 19 #define __DEBUG__ 0
sam_grove 5:3f93dd1d4cb3 20 #ifndef __MODULE__
sam_grove 5:3f93dd1d4cb3 21 #define __MODULE__ "WANDongleInitializer.cpp"
sam_grove 5:3f93dd1d4cb3 22 #endif
sam_grove 5:3f93dd1d4cb3 23
sam_grove 5:3f93dd1d4cb3 24 #include "core/dbg.h"
sam_grove 5:3f93dd1d4cb3 25
sam_grove 5:3f93dd1d4cb3 26 #include <cstdint>
sam_grove 5:3f93dd1d4cb3 27 using std::uint16_t;
sam_grove 5:3f93dd1d4cb3 28
sam_grove 5:3f93dd1d4cb3 29 #include "WANDongleInitializer.h"
sam_grove 5:3f93dd1d4cb3 30
sam_grove 5:3f93dd1d4cb3 31 WANDongleInitializer::WANDongleInitializer(USBHost* pHost) : m_pHost(pHost)
sam_grove 5:3f93dd1d4cb3 32 {
sam_grove 5:3f93dd1d4cb3 33
sam_grove 5:3f93dd1d4cb3 34 }
sam_grove 5:3f93dd1d4cb3 35
sam_grove 5:3f93dd1d4cb3 36 WANDongleInitializer** WANDongleInitializer::getInitializers(USBHost* pHost)
sam_grove 5:3f93dd1d4cb3 37 {
sam_grove 5:3f93dd1d4cb3 38 static Sprint598UInitializer sprint598U(pHost);
sam_grove 5:3f93dd1d4cb3 39 static SprintMC5728VInitializer sprintMC5728V(pHost);
sam_grove 5:3f93dd1d4cb3 40 static SprintC200Initializer sprintC200(pHost);
sam_grove 5:3f93dd1d4cb3 41
sam_grove 5:3f93dd1d4cb3 42 const static WANDongleInitializer* list[] = { &sprint598U, &sprintMC5728V, &sprintC200, NULL };
sam_grove 5:3f93dd1d4cb3 43 return (WANDongleInitializer**)list;
sam_grove 5:3f93dd1d4cb3 44 }
sam_grove 5:3f93dd1d4cb3 45
sam_grove 5:3f93dd1d4cb3 46 //Sierra Wireless 598U (Sprint)
sam_grove 5:3f93dd1d4cb3 47 Sprint598UInitializer::Sprint598UInitializer(USBHost* pHost) : WANDongleInitializer(pHost)
sam_grove 5:3f93dd1d4cb3 48 {
sam_grove 5:3f93dd1d4cb3 49
sam_grove 5:3f93dd1d4cb3 50 }
sam_grove 5:3f93dd1d4cb3 51
sam_grove 5:3f93dd1d4cb3 52 uint16_t Sprint598UInitializer::getMSDVid()
sam_grove 5:3f93dd1d4cb3 53 {
sam_grove 5:3f93dd1d4cb3 54 return 0x1199;
sam_grove 5:3f93dd1d4cb3 55 }
sam_grove 5:3f93dd1d4cb3 56 uint16_t Sprint598UInitializer::getMSDPid()
sam_grove 5:3f93dd1d4cb3 57 {
sam_grove 5:3f93dd1d4cb3 58 return 0x0FFF; //0x0f25?
sam_grove 5:3f93dd1d4cb3 59 }
sam_grove 5:3f93dd1d4cb3 60
sam_grove 5:3f93dd1d4cb3 61 uint16_t Sprint598UInitializer::getSerialVid()
sam_grove 5:3f93dd1d4cb3 62 {
sam_grove 5:3f93dd1d4cb3 63 return 0x1199;
sam_grove 5:3f93dd1d4cb3 64 }
sam_grove 5:3f93dd1d4cb3 65 uint16_t Sprint598UInitializer::getSerialPid()
sam_grove 5:3f93dd1d4cb3 66 {
sam_grove 5:3f93dd1d4cb3 67 return 0x0025;
sam_grove 5:3f93dd1d4cb3 68 }
sam_grove 5:3f93dd1d4cb3 69
sam_grove 5:3f93dd1d4cb3 70 bool Sprint598UInitializer::switchMode(USBDeviceConnected* pDev)
sam_grove 5:3f93dd1d4cb3 71 {
sam_grove 5:3f93dd1d4cb3 72 DBG("Device %p found, will now try to switch into serial mode", (void *)pDev);
sam_grove 5:3f93dd1d4cb3 73 m_pHost->controlWrite(pDev, /*requestType = */ 0x40, /*request = */ 0x0B, /*value = */ 0x00000001, /*index = */ 0, /*buf = */ NULL, /*len = */ 0);
sam_grove 5:3f93dd1d4cb3 74 return true;
sam_grove 5:3f93dd1d4cb3 75 }
sam_grove 5:3f93dd1d4cb3 76
sam_grove 5:3f93dd1d4cb3 77 USBEndpoint* Sprint598UInitializer::getEp(USBDeviceConnected* pDev, int serialPortNumber, bool tx)
sam_grove 5:3f93dd1d4cb3 78 {
sam_grove 5:3f93dd1d4cb3 79 return pDev->getEndpoint(serialPortNumber, BULK_ENDPOINT, tx?OUT:IN, 0);
sam_grove 5:3f93dd1d4cb3 80 }
sam_grove 5:3f93dd1d4cb3 81
sam_grove 5:3f93dd1d4cb3 82 int Sprint598UInitializer::getSerialPortCount()
sam_grove 5:3f93dd1d4cb3 83 {
sam_grove 5:3f93dd1d4cb3 84 return 1;
sam_grove 5:3f93dd1d4cb3 85 }
sam_grove 5:3f93dd1d4cb3 86
sam_grove 5:3f93dd1d4cb3 87 /*virtual*/ void Sprint598UInitializer::setVidPid(uint16_t vid, uint16_t pid)
sam_grove 5:3f93dd1d4cb3 88 {
sam_grove 5:3f93dd1d4cb3 89 if( (vid == getSerialVid() ) && ( pid == getSerialPid() ) ) {
sam_grove 5:3f93dd1d4cb3 90 m_hasSwitched = true;
sam_grove 5:3f93dd1d4cb3 91 m_currentSerialIntf = 0;
sam_grove 5:3f93dd1d4cb3 92 m_currentEndpoint = 0;
sam_grove 5:3f93dd1d4cb3 93 } else {
sam_grove 5:3f93dd1d4cb3 94 m_hasSwitched = false;
sam_grove 5:3f93dd1d4cb3 95 }
sam_grove 5:3f93dd1d4cb3 96 }
sam_grove 5:3f93dd1d4cb3 97
sam_grove 5:3f93dd1d4cb3 98 /*virtual*/ bool Sprint598UInitializer::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
sam_grove 5:3f93dd1d4cb3 99 {
sam_grove 5:3f93dd1d4cb3 100 if( m_hasSwitched ) {
sam_grove 5:3f93dd1d4cb3 101 DBG("Interface #%d; Class:%02x; SubClass:%02x; Protocol:%02x", intf_nb, intf_class, intf_subclass, intf_protocol);
sam_grove 5:3f93dd1d4cb3 102 if( intf_class == 0xFF ) {
sam_grove 5:3f93dd1d4cb3 103 if( (m_currentSerialIntf == 0) ) {
sam_grove 5:3f93dd1d4cb3 104 m_currentSerialIntf++;
sam_grove 5:3f93dd1d4cb3 105 return true;
sam_grove 5:3f93dd1d4cb3 106 }
sam_grove 5:3f93dd1d4cb3 107 m_currentSerialIntf++;
sam_grove 5:3f93dd1d4cb3 108 }
sam_grove 5:3f93dd1d4cb3 109 }
sam_grove 5:3f93dd1d4cb3 110 return false;
sam_grove 5:3f93dd1d4cb3 111 }
sam_grove 5:3f93dd1d4cb3 112
sam_grove 5:3f93dd1d4cb3 113 /*virtual*/ bool Sprint598UInitializer::useEndpoint(uint8_t intf_nb, ENDPOINT_TYPE type, ENDPOINT_DIRECTION dir) //Must return true if the endpoint will be used
sam_grove 5:3f93dd1d4cb3 114 {
sam_grove 5:3f93dd1d4cb3 115 if( m_hasSwitched ) {
sam_grove 5:3f93dd1d4cb3 116 DBG("USBEndpoint on Interface #%d; Type:%d; Direction:%d", intf_nb, type, dir);
sam_grove 5:3f93dd1d4cb3 117 if(type == BULK_ENDPOINT) {
sam_grove 5:3f93dd1d4cb3 118 if( (m_currentEndpoint >= 0) && (m_currentEndpoint < 2) ) {
sam_grove 5:3f93dd1d4cb3 119 m_currentEndpoint++;
sam_grove 5:3f93dd1d4cb3 120 return true;
sam_grove 5:3f93dd1d4cb3 121 } else {
sam_grove 5:3f93dd1d4cb3 122 m_currentEndpoint++;
sam_grove 5:3f93dd1d4cb3 123 }
sam_grove 5:3f93dd1d4cb3 124 }
sam_grove 5:3f93dd1d4cb3 125 }
sam_grove 5:3f93dd1d4cb3 126 return false;
sam_grove 5:3f93dd1d4cb3 127 }
sam_grove 5:3f93dd1d4cb3 128
sam_grove 5:3f93dd1d4cb3 129
sam_grove 5:3f93dd1d4cb3 130 /*virtual*/ WAN_DONGLE_TYPE Sprint598UInitializer::getType()
sam_grove 5:3f93dd1d4cb3 131 {
sam_grove 5:3f93dd1d4cb3 132 return WAN_DONGLE_TYPE_SPRINT598U;
sam_grove 5:3f93dd1d4cb3 133 }
sam_grove 5:3f93dd1d4cb3 134
sam_grove 5:3f93dd1d4cb3 135 //Sierra Wireless MC5728V (Sprint)
sam_grove 5:3f93dd1d4cb3 136 SprintMC5728VInitializer::SprintMC5728VInitializer(USBHost* pHost) : WANDongleInitializer(pHost)
sam_grove 5:3f93dd1d4cb3 137 {
sam_grove 5:3f93dd1d4cb3 138
sam_grove 5:3f93dd1d4cb3 139 }
sam_grove 5:3f93dd1d4cb3 140
sam_grove 5:3f93dd1d4cb3 141 uint16_t SprintMC5728VInitializer::getMSDVid()
sam_grove 5:3f93dd1d4cb3 142 {
sam_grove 5:3f93dd1d4cb3 143 return 0x1199;
sam_grove 5:3f93dd1d4cb3 144 }
sam_grove 5:3f93dd1d4cb3 145 uint16_t SprintMC5728VInitializer::getMSDPid()
sam_grove 5:3f93dd1d4cb3 146 {
sam_grove 5:3f93dd1d4cb3 147 return 0x0000; //No MSD mode (presumably)
sam_grove 5:3f93dd1d4cb3 148 }
sam_grove 5:3f93dd1d4cb3 149
sam_grove 5:3f93dd1d4cb3 150 uint16_t SprintMC5728VInitializer::getSerialVid()
sam_grove 5:3f93dd1d4cb3 151 {
sam_grove 5:3f93dd1d4cb3 152 return 0x1199;
sam_grove 5:3f93dd1d4cb3 153 }
sam_grove 5:3f93dd1d4cb3 154 uint16_t SprintMC5728VInitializer::getSerialPid()
sam_grove 5:3f93dd1d4cb3 155 {
sam_grove 5:3f93dd1d4cb3 156 return 0x0028;
sam_grove 5:3f93dd1d4cb3 157 }
sam_grove 5:3f93dd1d4cb3 158
sam_grove 5:3f93dd1d4cb3 159 bool SprintMC5728VInitializer::switchMode(USBDeviceConnected* pDev)
sam_grove 5:3f93dd1d4cb3 160 {
sam_grove 5:3f93dd1d4cb3 161 return true;
sam_grove 5:3f93dd1d4cb3 162 }
sam_grove 5:3f93dd1d4cb3 163
sam_grove 5:3f93dd1d4cb3 164 USBEndpoint* SprintMC5728VInitializer::getEp(USBDeviceConnected* pDev, int serialPortNumber, bool tx)
sam_grove 5:3f93dd1d4cb3 165 {
sam_grove 5:3f93dd1d4cb3 166 return pDev->getEndpoint(serialPortNumber, BULK_ENDPOINT, tx?OUT:IN, 0);
sam_grove 5:3f93dd1d4cb3 167 }
sam_grove 5:3f93dd1d4cb3 168
sam_grove 5:3f93dd1d4cb3 169 int SprintMC5728VInitializer::getSerialPortCount()
sam_grove 5:3f93dd1d4cb3 170 {
sam_grove 5:3f93dd1d4cb3 171 return 1;
sam_grove 5:3f93dd1d4cb3 172 }
sam_grove 5:3f93dd1d4cb3 173
sam_grove 5:3f93dd1d4cb3 174 /*virtual*/ void SprintMC5728VInitializer::setVidPid(uint16_t vid, uint16_t pid)
sam_grove 5:3f93dd1d4cb3 175 {
sam_grove 5:3f93dd1d4cb3 176 m_currentSerialIntf = 0;
sam_grove 5:3f93dd1d4cb3 177 m_currentEndpoint = 0;
sam_grove 5:3f93dd1d4cb3 178 }
sam_grove 5:3f93dd1d4cb3 179
sam_grove 5:3f93dd1d4cb3 180 /*virtual*/ bool SprintMC5728VInitializer::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
sam_grove 5:3f93dd1d4cb3 181 {
sam_grove 5:3f93dd1d4cb3 182 DBG("Interface #%d; Class:%02x; SubClass:%02x; Protocol:%02x", intf_nb, intf_class, intf_subclass, intf_protocol);
sam_grove 5:3f93dd1d4cb3 183 if( intf_class == 0xFF ) {
sam_grove 5:3f93dd1d4cb3 184 if( (m_currentSerialIntf == 0) ) {
sam_grove 5:3f93dd1d4cb3 185 m_currentSerialIntf++;
sam_grove 5:3f93dd1d4cb3 186 return true;
sam_grove 5:3f93dd1d4cb3 187 }
sam_grove 5:3f93dd1d4cb3 188 m_currentSerialIntf++;
sam_grove 5:3f93dd1d4cb3 189 }
sam_grove 5:3f93dd1d4cb3 190 return false;
sam_grove 5:3f93dd1d4cb3 191 }
sam_grove 5:3f93dd1d4cb3 192
sam_grove 5:3f93dd1d4cb3 193 /*virtual*/ bool SprintMC5728VInitializer::useEndpoint(uint8_t intf_nb, ENDPOINT_TYPE type, ENDPOINT_DIRECTION dir) //Must return true if the endpoint will be used
sam_grove 5:3f93dd1d4cb3 194 {
sam_grove 5:3f93dd1d4cb3 195 DBG("USBEndpoint on Interface #%d; Type:%d; Direction:%d", intf_nb, type, dir);
sam_grove 5:3f93dd1d4cb3 196 if(type == BULK_ENDPOINT) {
sam_grove 5:3f93dd1d4cb3 197 if( (m_currentEndpoint >= 0) && (m_currentEndpoint < 2) ) {
sam_grove 5:3f93dd1d4cb3 198 m_currentEndpoint++;
sam_grove 5:3f93dd1d4cb3 199 return true;
sam_grove 5:3f93dd1d4cb3 200 } else {
sam_grove 5:3f93dd1d4cb3 201 m_currentEndpoint++;
sam_grove 5:3f93dd1d4cb3 202 }
sam_grove 5:3f93dd1d4cb3 203 }
sam_grove 5:3f93dd1d4cb3 204 return false;
sam_grove 5:3f93dd1d4cb3 205 }
sam_grove 5:3f93dd1d4cb3 206
sam_grove 5:3f93dd1d4cb3 207
sam_grove 5:3f93dd1d4cb3 208 /*virtual*/ WAN_DONGLE_TYPE SprintMC5728VInitializer::getType()
sam_grove 5:3f93dd1d4cb3 209 {
sam_grove 5:3f93dd1d4cb3 210 return WAN_DONGLE_TYPE_SPRINTMC5728V;
sam_grove 5:3f93dd1d4cb3 211 }
sam_grove 5:3f93dd1d4cb3 212
sam_grove 5:3f93dd1d4cb3 213 //u-blox C200 (Sprint)
sam_grove 5:3f93dd1d4cb3 214 SprintC200Initializer::SprintC200Initializer(USBHost* pHost) : WANDongleInitializer(pHost)
sam_grove 5:3f93dd1d4cb3 215 {
sam_grove 5:3f93dd1d4cb3 216
sam_grove 5:3f93dd1d4cb3 217 }
sam_grove 5:3f93dd1d4cb3 218
sam_grove 5:3f93dd1d4cb3 219 uint16_t SprintC200Initializer::getMSDVid()
sam_grove 5:3f93dd1d4cb3 220 {
sam_grove 5:3f93dd1d4cb3 221 return 0x05C6;
sam_grove 5:3f93dd1d4cb3 222 }
sam_grove 5:3f93dd1d4cb3 223 uint16_t SprintC200Initializer::getMSDPid()
sam_grove 5:3f93dd1d4cb3 224 {
sam_grove 5:3f93dd1d4cb3 225 return 0x0000; //No MSD mode (presumably)
sam_grove 5:3f93dd1d4cb3 226 }
sam_grove 5:3f93dd1d4cb3 227
sam_grove 5:3f93dd1d4cb3 228 uint16_t SprintC200Initializer::getSerialVid()
sam_grove 5:3f93dd1d4cb3 229 {
sam_grove 5:3f93dd1d4cb3 230 return 0x05C6;
sam_grove 5:3f93dd1d4cb3 231 }
sam_grove 5:3f93dd1d4cb3 232 uint16_t SprintC200Initializer::getSerialPid()
sam_grove 5:3f93dd1d4cb3 233 {
sam_grove 5:3f93dd1d4cb3 234 return 0x9004;
sam_grove 5:3f93dd1d4cb3 235 }
sam_grove 5:3f93dd1d4cb3 236
sam_grove 5:3f93dd1d4cb3 237 bool SprintC200Initializer::switchMode(USBDeviceConnected* pDev)
sam_grove 5:3f93dd1d4cb3 238 {
sam_grove 5:3f93dd1d4cb3 239 return true;
sam_grove 5:3f93dd1d4cb3 240 }
sam_grove 5:3f93dd1d4cb3 241
sam_grove 5:3f93dd1d4cb3 242 USBEndpoint* SprintC200Initializer::getEp(USBDeviceConnected* pDev, int serialPortNumber, bool tx)
sam_grove 5:3f93dd1d4cb3 243 {
sam_grove 5:3f93dd1d4cb3 244 return pDev->getEndpoint(serialPortNumber, BULK_ENDPOINT, tx?OUT:IN, 0);
sam_grove 5:3f93dd1d4cb3 245 }
sam_grove 5:3f93dd1d4cb3 246
sam_grove 5:3f93dd1d4cb3 247 int SprintC200Initializer::getSerialPortCount()
sam_grove 5:3f93dd1d4cb3 248 {
sam_grove 5:3f93dd1d4cb3 249 return 2;
sam_grove 5:3f93dd1d4cb3 250 }
sam_grove 5:3f93dd1d4cb3 251
sam_grove 5:3f93dd1d4cb3 252 /*virtual*/ void SprintC200Initializer::setVidPid(uint16_t vid, uint16_t pid)
sam_grove 5:3f93dd1d4cb3 253 {
sam_grove 5:3f93dd1d4cb3 254 m_currentSerialIntf = 0;
sam_grove 5:3f93dd1d4cb3 255 m_currentEndpoint = 0;
sam_grove 5:3f93dd1d4cb3 256 }
sam_grove 5:3f93dd1d4cb3 257
sam_grove 5:3f93dd1d4cb3 258 /*virtual*/ bool SprintC200Initializer::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
sam_grove 5:3f93dd1d4cb3 259 {
sam_grove 5:3f93dd1d4cb3 260 DBG("Interface #%d; Class:%02x; SubClass:%02x; Protocol:%02x", intf_nb, intf_class, intf_subclass, intf_protocol);
sam_grove 5:3f93dd1d4cb3 261
sam_grove 5:3f93dd1d4cb3 262 if( intf_class == 0xFF ) {
sam_grove 5:3f93dd1d4cb3 263 if( m_currentSerialIntf == 0 || m_currentSerialIntf == 1) {
sam_grove 5:3f93dd1d4cb3 264 m_currentSerialIntf++;
sam_grove 5:3f93dd1d4cb3 265 return true;
sam_grove 5:3f93dd1d4cb3 266 }
sam_grove 5:3f93dd1d4cb3 267 m_currentSerialIntf++;
sam_grove 5:3f93dd1d4cb3 268 }
sam_grove 5:3f93dd1d4cb3 269
sam_grove 5:3f93dd1d4cb3 270 return false;
sam_grove 5:3f93dd1d4cb3 271 }
sam_grove 5:3f93dd1d4cb3 272
sam_grove 5:3f93dd1d4cb3 273 /*virtual*/ bool SprintC200Initializer::useEndpoint(uint8_t intf_nb, ENDPOINT_TYPE type, ENDPOINT_DIRECTION dir) //Must return true if the endpoint will be used
sam_grove 5:3f93dd1d4cb3 274 {
sam_grove 5:3f93dd1d4cb3 275 DBG("USBEndpoint on Interface #%d; Type:%d; Direction:%d Current %d", intf_nb, type, dir, m_currentEndpoint);
sam_grove 5:3f93dd1d4cb3 276 if(type == BULK_ENDPOINT) {
sam_grove 5:3f93dd1d4cb3 277 if( (m_currentEndpoint >= 0) && (m_currentEndpoint < 6) ) {
sam_grove 5:3f93dd1d4cb3 278 m_currentEndpoint++;
sam_grove 5:3f93dd1d4cb3 279 return true;
sam_grove 5:3f93dd1d4cb3 280 } else {
sam_grove 5:3f93dd1d4cb3 281 m_currentEndpoint++;
sam_grove 5:3f93dd1d4cb3 282 }
sam_grove 5:3f93dd1d4cb3 283 }
sam_grove 5:3f93dd1d4cb3 284
sam_grove 5:3f93dd1d4cb3 285 return false;
sam_grove 5:3f93dd1d4cb3 286 }
sam_grove 5:3f93dd1d4cb3 287
sam_grove 5:3f93dd1d4cb3 288
sam_grove 5:3f93dd1d4cb3 289 /*virtual*/ WAN_DONGLE_TYPE SprintC200Initializer::getType()
sam_grove 5:3f93dd1d4cb3 290 {
sam_grove 5:3f93dd1d4cb3 291 return WAN_DONGLE_TYPE_UBLOXC200;
sam_grove 5:3f93dd1d4cb3 292 }