Cellular: added radio access technology as configurable in cellular mbed_lib.json.

pull/8821/head
Teppo Järvelin 2018-11-20 15:15:50 +02:00
parent aae6bb125a
commit 9a9a209eff
2 changed files with 20 additions and 3 deletions

View File

@ -378,9 +378,25 @@ bool CellularStateMachine::device_ready()
if (_cellularDevice.init_module() != NSAPI_ERROR_OK) { if (_cellularDevice.init_module() != NSAPI_ERROR_OK) {
return false; return false;
} }
if (!_network) {
_network = _cellularDevice.open_network();
}
#ifdef MBED_CONF_CELLULAR_RADIO_ACCESS_TECHNOLOGY
MBED_ASSERT(MBED_CONF_CELLULAR_RADIO_ACCESS_TECHNOLOGY >= CellularNetwork::RAT_GSM &&
MBED_CONF_CELLULAR_RADIO_ACCESS_TECHNOLOGY < CellularNetwork::RAT_UNKNOWN);
nsapi_error_t err = _network->set_access_technology((CellularNetwork::RadioAccessTechnology)MBED_CONF_CELLULAR_RADIO_ACCESS_TECHNOLOGY);
if (err != NSAPI_ERROR_OK && err != NSAPI_ERROR_UNSUPPORTED) {
tr_warning("Failed to set access technology to %d", MBED_CONF_CELLULAR_RADIO_ACCESS_TECHNOLOGY);
return false;
}
#endif // MBED_CONF_CELLULAR_DEBUG_AT
if (_event_status_cb) { if (_event_status_cb) {
_event_status_cb((nsapi_event_t)CellularDeviceReady, (intptr_t)&_cb_data); _event_status_cb((nsapi_event_t)CellularDeviceReady, (intptr_t)&_cb_data);
} }
_power->remove_device_ready_urc_cb(mbed::callback(this, &CellularStateMachine::ready_urc_cb)); _power->remove_device_ready_urc_cb(mbed::callback(this, &CellularStateMachine::ready_urc_cb));
_cellularDevice.close_power(); _cellularDevice.close_power();
_power = NULL; _power = NULL;
@ -410,9 +426,6 @@ void CellularStateMachine::state_sim_pin()
_cellularDevice.set_timeout(TIMEOUT_SIM_PIN); _cellularDevice.set_timeout(TIMEOUT_SIM_PIN);
tr_info("Setup SIM (timeout %d s)", TIMEOUT_SIM_PIN / 1000); tr_info("Setup SIM (timeout %d s)", TIMEOUT_SIM_PIN / 1000);
if (open_sim()) { if (open_sim()) {
if (!_network) {
_network = _cellularDevice.open_network();
}
bool success = false; bool success = false;
for (int type = 0; type < CellularNetwork::C_MAX; type++) { for (int type = 0; type < CellularNetwork::C_MAX; type++) {

View File

@ -12,6 +12,10 @@
"debug-at": { "debug-at": {
"help": "Enable AT debug prints", "help": "Enable AT debug prints",
"value": false "value": false
},
"radio-access-technology": {
"help": "Radio access technology to use. Value in integer: GSM=0, GSM_COMPACT=1, UTRAN=2, EGPRS=3, HSDPA=4, HSUPA=5, HSDPA_HSUPA=6, E_UTRAN=7, CATM1=8 ,NB1=9",
"value": null
} }
} }
} }