Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions UNITTESTS/stubs/AT_CellularContext_stub.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,10 @@ void AT_CellularContext::do_connect()
{
}

void AT_CellularContext::do_disconnect()
{
}

#if NSAPI_PPP_AVAILABLE
nsapi_error_t AT_CellularContext::open_data_channel()
{
Expand Down
3 changes: 2 additions & 1 deletion features/cellular/framework/AT/AT_CellularContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ class AT_CellularContext : public CellularContext {
*/
virtual void do_connect();

virtual void do_disconnect();

/** Get the operation specific timeout. Used in synchronous mode when setting the maximum
* waiting time. Modem specific implementation can override this to provide different timeouts.
*
Expand Down Expand Up @@ -121,7 +123,6 @@ class AT_CellularContext : public CellularContext {
nsapi_error_t check_operation(nsapi_error_t err, ContextOperation op);
void ciot_opt_cb(mbed::CellularNetwork::CIoT_Supported_Opt ciot_opt);
virtual void do_connect_with_retry();
void do_disconnect();
void set_cid(int cid);

private:
Expand Down
24 changes: 13 additions & 11 deletions features/cellular/framework/targets/UBLOX/AT/UBLOX_AT.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -128,29 +128,31 @@ CellularDevice *CellularDevice::get_default_instance()
nsapi_error_t UBLOX_AT::init()
{
setup_at_handler();

_at.lock();
_at.flush();
_at.at_cmd_discard("", "");
int value = -1;

#ifdef UBX_MDM_SARA_G3XX
value = 0;
#elif defined(UBX_MDM_SARA_U2XX) || defined(UBX_MDM_SARA_R41XM)
value = 4;
#else
_at.unlock();
return NSAPI_ERROR_UNSUPPORTED;
#endif
#if defined(UBX_MDM_SARA_U2XX) || defined(UBX_MDM_SARA_G3XX)
nsapi_error_t err = _at.at_cmd_discard("E0", ""); // echo off

nsapi_error_t err = _at.at_cmd_discard("+CFUN", "=", "%d", value);
if (err == NSAPI_ERROR_OK) {
_at.at_cmd_discard("+CMEE", "=1"); // verbose responses
err = _at.at_cmd_discard("+CFUN", "=1"); // set full functionality
}
#elif defined(UBX_MDM_SARA_R41XM)
nsapi_error_t err = _at.at_cmd_discard("+CFUN", "=", "%d", 4);

if (err == NSAPI_ERROR_OK) {
_at.at_cmd_discard("E0", ""); // echo off
_at.at_cmd_discard("+CMEE", "=1"); // verbose responses
config_authentication_parameters();
err = _at.at_cmd_discard("+CFUN", "=1"); // set full functionality
}
#else
_at.unlock();
return NSAPI_ERROR_UNSUPPORTED;
#endif

return _at.unlock_return_error();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,13 @@ void UBLOX_AT_CellularContext::do_connect()
_status_cb(NSAPI_EVENT_CONNECTION_STATUS_CHANGE, _connect_status);
}
}
#ifndef UBX_MDM_SARA_R41XM
void UBLOX_AT_CellularContext::do_disconnect()
{
disconnect_modem_stack();
AT_CellularContext::do_disconnect();
}
#endif

#ifndef UBX_MDM_SARA_R41XM
nsapi_error_t UBLOX_AT_CellularContext::define_context()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ class UBLOX_AT_CellularContext: public AT_CellularContext {
virtual ~UBLOX_AT_CellularContext();

virtual void do_connect();
#ifndef UBX_MDM_SARA_R41XM
virtual void do_disconnect();
#endif
virtual nsapi_error_t get_gateway(SocketAddress *addr);

const char *get_apn(void);
Expand Down