Skip to content

Commit 0d5d68b

Browse files
committed
feat: Function to adjust SBD Session Timeout
Signed-off-by: Andrew Yong <[email protected]>
1 parent 9d67d89 commit 0d5d68b

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/IridiumSBD.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,19 @@ void IridiumSBD::adjustATTimeout(int seconds)
171171
this->atTimeout = seconds;
172172
}
173173

174+
// Tweak SBD Session Timeout
175+
int IridiumSBD::adjustSBDSessionTimeout(int seconds)
176+
{
177+
if ((seconds >= this->atTimeout) || seconds == 0)
178+
diagprint(F("SBD commands that do not complete before AT timeout will return ISBD_PROTOCOL_ERROR\r\n"));
179+
send(F("AT+SBDST="), true, false);
180+
send(seconds);
181+
send(F("\r"), false);
182+
if (!waitForATResponse())
183+
return cancelled() ? ISBD_CANCELLED : ISBD_PROTOCOL_ERROR;
184+
return ISBD_SUCCESS;
185+
}
186+
174187
// Tweak Send/Receive SBDIX process timeout
175188
void IridiumSBD::adjustSendReceiveTimeout(int seconds)
176189
{

src/IridiumSBD.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ class IridiumSBD
113113
typedef enum { DEFAULT_POWER_PROFILE = 0, USB_POWER_PROFILE = 1 } POWERPROFILE;
114114
void setPowerProfile(POWERPROFILE profile); // 0 = direct connect (default), 1 = USB
115115
void adjustATTimeout(int seconds); // default value = 30 seconds
116+
int adjustSBDSessionTimeout(int seconds); // 0 = infinite (default)
116117
void adjustSendReceiveTimeout(int seconds); // default value = 300 seconds
117118
void adjustStartupTimeout(int seconds); // default value = 240 seconds
118119
void useMSSTMWorkaround(bool useMSSTMWorkAround); // true to use workaround from Iridium Alert 5/7/13

0 commit comments

Comments
 (0)