Skip to content

Commit eb91324

Browse files
committed
Add adjustStartupTimeout() function
1 parent 738993e commit eb91324

File tree

4 files changed

+13
-2
lines changed

4 files changed

+13
-2
lines changed

keywords.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ isAsleep KEYWORD2
2424
setPowerProfile KEYWORD2
2525
adjustATTimeout KEYWORD2
2626
adjustSendReceiveTimeout KEYWORD2
27+
adjustStartupTimeout KEYWORD2
2728
useMSSTMWorkaround KEYWORD2
2829
getSystemTime KEYWORD2
2930
getFirmwareVersion KEYWORD2

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=IridiumSBDi2c
2-
version=3.0.1
2+
version=3.0.2
33
author=Mikal Hart and Paul Clark (PaulZC)
44
maintainer=SparkFun Electronics <sparkfun.com>
55
sentence=This library supports satellite data transmissions from anywhere on earth using the RockBLOCK family of Iridium 9602 and 9603 modems.

src/IridiumSBD.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,12 @@ void IridiumSBD::adjustSendReceiveTimeout(int seconds)
168168
this->sendReceiveTimeout = seconds;
169169
}
170170

171+
// Tweak ISBD startup timeout
172+
void IridiumSBD::adjustStartupTimeout(int seconds)
173+
{
174+
this->startupTimeout = seconds;
175+
}
176+
171177
void IridiumSBD::useMSSTMWorkaround(bool useWorkAround) // true to use workaround from Iridium Alert 5/7
172178
{
173179
this->msstmWorkaroundRequested = useWorkAround;
@@ -539,7 +545,7 @@ int IridiumSBD::internalBegin()
539545
return ISBD_CANCELLED;
540546

541547
// Turn on modem and wait for a response from "AT" command to begin
542-
for (unsigned long start = millis(); !modemAlive && millis() - start < 1000UL * ISBD_STARTUP_MAX_TIME;)
548+
for (unsigned long start = millis(); !modemAlive && millis() - start < 1000UL * this->startupTimeout;)
543549
{
544550
send(F("AT\r"));
545551
modemAlive = waitForATResponse();

src/IridiumSBD.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ class IridiumSBD
114114
void setPowerProfile(POWERPROFILE profile); // 0 = direct connect (default), 1 = USB
115115
void adjustATTimeout(int seconds); // default value = 20 seconds
116116
void adjustSendReceiveTimeout(int seconds); // default value = 300 seconds
117+
void adjustStartupTimeout(int seconds); // default value = 240 seconds
117118
void useMSSTMWorkaround(bool useMSSTMWorkAround); // true to use workaround from Iridium Alert 5/7/13
118119
void enableRingAlerts(bool enable);
119120

@@ -140,6 +141,7 @@ class IridiumSBD
140141
sbdixInterval = ISBD_USB_SBDIX_INTERVAL;
141142
atTimeout = ISBD_DEFAULT_AT_TIMEOUT;
142143
sendReceiveTimeout = ISBD_DEFAULT_SENDRECEIVE_TIME;
144+
startupTimeout = ISBD_STARTUP_MAX_TIME;
143145
remainingMessages = -1;
144146
asleep = true;
145147
reentrant = false;
@@ -168,6 +170,7 @@ class IridiumSBD
168170
sbdixInterval = ISBD_USB_SBDIX_INTERVAL;
169171
atTimeout = ISBD_DEFAULT_AT_TIMEOUT;
170172
sendReceiveTimeout = ISBD_DEFAULT_SENDRECEIVE_TIME;
173+
startupTimeout = ISBD_STARTUP_MAX_TIME;
171174
remainingMessages = -1;
172175
asleep = true;
173176
reentrant = false;
@@ -206,6 +209,7 @@ class IridiumSBD
206209
int sbdixInterval;
207210
int atTimeout;
208211
int sendReceiveTimeout;
212+
int startupTimeout;
209213
unsigned long lastCheck = 0; // The time in millis when the I2C bus was last checked (limits I2C traffic)
210214
const uint8_t I2C_POLLING_WAIT_MS = 5; //Limit checking of new characters to every 5 ms (roughly 10 chars at 19200 baud)
211215

0 commit comments

Comments
 (0)