Increase AT timeout to 10s in AT_CellularSMS::get_sms

When SMS list is big and baudrate is not fast enough, with default timeout we can suffer from timeout error while getting a sms because method is parsing the full list and this takes long.
pull/15477/head
David Alonso de la Torre 2023-12-30 11:47:56 +01:00
parent 5c49f161fb
commit d676084600
1 changed files with 3 additions and 0 deletions

View File

@ -703,6 +703,7 @@ nsapi_size_or_error_t AT_CellularSMS::get_sms(char *buf, uint16_t len, char *pho
} }
_at.lock(); _at.lock();
_at.set_at_timeout(10s);
nsapi_size_or_error_t err = list_messages(); nsapi_size_or_error_t err = list_messages();
if (err == NSAPI_ERROR_OK) { if (err == NSAPI_ERROR_OK) {
@ -716,6 +717,7 @@ nsapi_size_or_error_t AT_CellularSMS::get_sms(char *buf, uint16_t len, char *pho
*buf_size = info->msg_size; *buf_size = info->msg_size;
} }
free_linked_list(); free_linked_list();
_at.restore_at_timeout();
_at.unlock(); _at.unlock();
return NSAPI_ERROR_PARAMETER; return NSAPI_ERROR_PARAMETER;
} }
@ -740,6 +742,7 @@ nsapi_size_or_error_t AT_CellularSMS::get_sms(char *buf, uint16_t len, char *pho
free_linked_list(); free_linked_list();
_at.restore_at_timeout();
_at.unlock(); _at.unlock();
// update error only when there really was an error, otherwise we return the length // update error only when there really was an error, otherwise we return the length