File tree Expand file tree Collapse file tree 4 files changed +13
-2
lines changed Expand file tree Collapse file tree 4 files changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -24,6 +24,7 @@ isAsleep KEYWORD2
2424setPowerProfile KEYWORD2
2525adjustATTimeout KEYWORD2
2626adjustSendReceiveTimeout KEYWORD2
27+ adjustStartupTimeout KEYWORD2
2728useMSSTMWorkaround KEYWORD2
2829getSystemTime KEYWORD2
2930getFirmwareVersion KEYWORD2
Original file line number Diff line number Diff line change 11name =IridiumSBDi2c
2- version =3.0.1
2+ version =3.0.2
33author =Mikal Hart and Paul Clark (PaulZC)
44maintainer =SparkFun Electronics <sparkfun.com>
55sentence =This library supports satellite data transmissions from anywhere on earth using the RockBLOCK family of Iridium 9602 and 9603 modems.
Original file line number Diff line number Diff 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+
171177void 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 ();
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments