Merge pull request #6632 from TeemuKultala/error_messages

cellular: Error messages
pull/6648/head
Cruz Monrreal 2018-04-16 10:34:04 -05:00 committed by GitHub
commit 7f9e69d491
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 62 additions and 37 deletions

View File

@ -133,7 +133,7 @@ bool CellularConnectionFSM::power_on()
tr_warn("Cellular start failed. Power off/on.");
err = _power->off();
if (err != NSAPI_ERROR_OK && err != NSAPI_ERROR_UNSUPPORTED) {
tr_error("Cellular power down failed!");
tr_error("Cellular power down failing after failed power up attempt!");
}
return false;
}
@ -156,31 +156,16 @@ bool CellularConnectionFSM::open_sim()
return false;
}
switch (state) {
case CellularSIM::SimStateReady:
tr_info("SIM Ready");
break;
case CellularSIM::SimStatePinNeeded: {
if (strlen(_sim_pin)) {
tr_info("SIM pin required, entering pin: %s", _sim_pin);
nsapi_error_t err = _sim->set_pin(_sim_pin);
if (err) {
tr_error("SIM pin set failed with: %d, bailing out...", err);
}
} else {
tr_warn("PIN required but No SIM pin provided.");
}
if (state == CellularSIM::SimStatePinNeeded) {
if (strlen(_sim_pin)) {
tr_info("SIM pin required, entering pin: %s", _sim_pin);
nsapi_error_t err = _sim->set_pin(_sim_pin);
if (err) {
tr_error("SIM pin set failed with: %d, bailing out...", err);
}
} else {
tr_warn("PIN required but No SIM pin provided.");
}
break;
case CellularSIM::SimStatePukNeeded:
tr_info("SIM PUK code needed...");
break;
case CellularSIM::SimStateUnknown:
tr_info("SIM, unknown state...");
break;
default:
MBED_ASSERT(1);
break;
}
if (_event_status_cb) {
@ -192,8 +177,9 @@ bool CellularConnectionFSM::open_sim()
bool CellularConnectionFSM::set_network_registration(char *plmn)
{
if (_network->set_registration(plmn) != NSAPI_ERROR_OK) {
tr_error("Failed to set network registration.");
nsapi_error_t error = _network->set_registration(plmn);
if (error != NSAPI_ERROR_OK) {
tr_error("Set network registration mode failing (%d)", error);
return false;
}
return true;

View File

@ -118,7 +118,9 @@ void EasyCellularConnection::set_credentials(const char *apn, const char *uname,
}
#endif // #if USE_APN_LOOKUP
} else {
tr_error("NO Network...");
//if get_network() returns NULL it means there was not enough memory for
//an AT_CellularNetwork element during CellularConnectionFSM initialization
tr_error("There was not enough memory during CellularConnectionFSM initialization");
}
}
}
@ -199,7 +201,7 @@ nsapi_error_t EasyCellularConnection::connect()
}
}
if (err) {
tr_info("APN lookup failed");
tr_error("APN lookup failed");
return err;
}
}

View File

@ -85,6 +85,7 @@ void AT_CellularNetwork::free_credentials()
void AT_CellularNetwork::urc_no_carrier()
{
tr_error("Data call failed: no carrier");
_connect_status = NSAPI_STATUS_DISCONNECTED;
if (_connection_status_cb) {
_connection_status_cb(NSAPI_EVENT_CONNECTION_STATUS_CHANGE, NSAPI_STATUS_DISCONNECTED);
@ -98,6 +99,22 @@ void AT_CellularNetwork::read_reg_params_and_compare(RegistrationType type)
read_reg_params(type, reg_status, lac, cell_id, act);
#if MBED_CONF_MBED_TRACE_ENABLE
switch (reg_status) {
case NotRegistered:
tr_error("not registered");
break;
case RegistrationDenied:
tr_error("registration denied");
break;
case Unknown:
tr_error("registration status unknown");
break;
default:
break;
}
#endif
if (_at.get_last_error() == NSAPI_ERROR_OK && _connection_status_cb) {
tr_debug("stat: %d, lac: %d, cellID: %d, act: %d", reg_status, lac, cell_id, act);
if (act != -1 && (RadioAccessTechnology)act != _current_act) {
@ -216,7 +233,7 @@ nsapi_error_t AT_CellularNetwork::activate_context()
nsapi_error_t err = set_context_to_be_activated();
if (err != NSAPI_ERROR_OK) {
_at.unlock();
tr_error("Failed to activate network context!");
tr_error("Failed to activate network context! (%d)", err);
_connect_status = NSAPI_STATUS_DISCONNECTED;
if (_connection_status_cb) {
@ -229,7 +246,8 @@ nsapi_error_t AT_CellularNetwork::activate_context()
// do check for stack to validate that we have support for stack
_stack = get_stack();
if (!_stack) {
return err;
tr_error("No cellular stack!");
return NSAPI_ERROR_UNSUPPORTED;
}
_is_context_active = false;
@ -246,7 +264,7 @@ nsapi_error_t AT_CellularNetwork::activate_context()
_at.resp_stop();
if (!_is_context_active) {
tr_info("Activate PDP context");
tr_info("Activate PDP context %d",_cid);
_at.cmd_start("AT+CGACT=1,");
_at.write_int(_cid);
_at.cmd_stop();
@ -794,11 +812,11 @@ nsapi_error_t AT_CellularNetwork::get_apn_backoff_timer(int &backoff_timer)
NetworkStack *AT_CellularNetwork::get_stack()
{
// use lwIP/PPP if modem does not have IP stack
#if NSAPI_PPP_AVAILABLE
_stack = nsapi_ppp_get_stack();
#else
_stack = NULL;
// use lwIP/PPP if modem does not have IP stack
if (!_stack) {
_stack = nsapi_ppp_get_stack();
}
#endif
return _stack;
}

View File

@ -56,9 +56,28 @@ nsapi_error_t AT_CellularSIM::get_sim_state(SimState &state)
state = SimStateUnknown; // SIM may not be ready yet or +CPIN may be unsupported command
}
_at.resp_stop();
return _at.unlock_return_error();
nsapi_error_t error = _at.get_last_error();
_at.unlock();
#if MBED_CONF_MBED_TRACE_ENABLE
switch (state) {
case SimStatePinNeeded:
tr_error("SIM PIN required");
break;
case SimStatePukNeeded:
tr_error("SIM PUK required");
break;
case SimStateUnknown:
tr_error("SIM state unknown");
break;
default:
tr_info("SIM is ready");
break;
}
#endif
return error;
}
nsapi_error_t AT_CellularSIM::set_pin(const char *sim_pin)
{
// if SIM is already in ready state then settings the PIN