Skip to content
Prev Previous commit
Next Next commit
GSM: add setTimeout function
  • Loading branch information
pennam committed Mar 26, 2025
commit e1b61e22591a882764c956d0e256b4d8280511f7
5 changes: 5 additions & 0 deletions libraries/GSM/src/GSM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ int arduino::GSMClass::begin(const char* pin, const char* apn, const char* usern

_device->set_cmux_status_flag(_cmuxGSMenable);
_device->set_retry_timeout_array(_retry_timeout, sizeof(_retry_timeout) / sizeof(_retry_timeout[0]));
_device->set_timeout(_timeout);
_device->attach(mbed::callback(this, &GSMClass::onStatusChange));
_device->init();

Expand Down Expand Up @@ -101,6 +102,10 @@ int arduino::GSMClass::begin(const char* pin, const char* apn, const char* usern
return connect_status == NSAPI_ERROR_OK ? 1 : 0;
}

void arduino::GSMClass::setTimeout(unsigned long timeout) {
_timeout = timeout;
}

void arduino::GSMClass::enableCmux() {
_cmuxGSMenable = true;
}
Expand Down
7 changes: 6 additions & 1 deletion libraries/GSM/src/GSM.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,12 @@ class GSMClass : public MbedSocketClass {
*/
void end(void);

unsigned long getTime();
/*
* Change cellular state timeouts. Needs to be called before GSM.begin()
*/
void setTimeout(unsigned long timeout);

unsigned long getTime();
unsigned long getLocalTime();

bool setTime(unsigned long const epoch, int const timezone = 0);
Expand Down Expand Up @@ -130,6 +134,7 @@ class GSMClass : public MbedSocketClass {
mbed::CellularContext* _context = nullptr;
mbed::CellularDevice* _device = nullptr;
bool _at_debug = false;
unsigned long _timeout = 1000;

/* Internal cellular state machine retries. Values are in seconds.
* This array also defines the maximum number of retries to CELLULAR_RETRY_ARRAY_SIZE
Expand Down