Merge pull request #6570 from jarvte/add_cellular_detach

Cellular: add detach from the network
pull/6538/merge
Cruz Monrreal 2018-04-17 10:54:09 -05:00 committed by GitHub
commit 259f9fd877
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 1 deletions

View File

@ -272,9 +272,11 @@ public:
/** Request attach to network. /** Request attach to network.
* *
* @deprecated Parameter timeout will be deprecated. Use mbed-os/features/cellular/framework/API/CellularDevice.h set_timeout instead.
* @param timeout milliseconds to wait for attach response * @param timeout milliseconds to wait for attach response
* @return zero on success * @return zero on success
*/ */
MBED_DEPRECATED_SINCE("mbed-os-5.9", "Parameter timeout will be deprecated. Use mbed-os/features/cellular/framework/API/CellularDevice.h set_timeout instead.")
virtual nsapi_error_t set_attach(int timeout = 10*1000) = 0; virtual nsapi_error_t set_attach(int timeout = 10*1000) = 0;
/** Request attach status from network. /** Request attach status from network.
@ -284,6 +286,12 @@ public:
*/ */
virtual nsapi_error_t get_attach(AttachStatus &status) = 0; virtual nsapi_error_t get_attach(AttachStatus &status) = 0;
/** Request detach from a network.
*
* @return zero on success
*/
virtual nsapi_error_t detach() = 0;
/** Get APN rate control. /** Get APN rate control.
* *
* @remark optional params are not updated if not received from network, so use good defaults * @remark optional params are not updated if not received from network, so use good defaults

View File

@ -753,7 +753,7 @@ bool AT_CellularNetwork::has_registration(RegistrationType reg_type)
return true; return true;
} }
nsapi_error_t AT_CellularNetwork::set_attach(int timeout) nsapi_error_t AT_CellularNetwork::set_attach(int /*timeout*/)
{ {
_at.lock(); _at.lock();
@ -790,6 +790,19 @@ nsapi_error_t AT_CellularNetwork::get_attach(AttachStatus &status)
return _at.unlock_return_error(); return _at.unlock_return_error();
} }
nsapi_error_t AT_CellularNetwork::detach()
{
_at.lock();
tr_debug("Network detach");
_at.cmd_start("AT+CGATT=0");
_at.cmd_stop();
_at.resp_start();
_at.resp_stop();
return _at.unlock_return_error();
}
nsapi_error_t AT_CellularNetwork::get_apn_backoff_timer(int &backoff_timer) nsapi_error_t AT_CellularNetwork::get_apn_backoff_timer(int &backoff_timer)
{ {
// If apn is set // If apn is set

View File

@ -74,6 +74,8 @@ public: // CellularNetwork
virtual nsapi_error_t get_attach(AttachStatus &status); virtual nsapi_error_t get_attach(AttachStatus &status);
virtual nsapi_error_t detach();
virtual nsapi_error_t get_rate_control(CellularNetwork::RateControlExceptionReports &reports, virtual nsapi_error_t get_rate_control(CellularNetwork::RateControlExceptionReports &reports,
CellularNetwork::RateControlUplinkTimeUnit &time_unit, int &uplink_rate); CellularNetwork::RateControlUplinkTimeUnit &time_unit, int &uplink_rate);