mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #7840 from mirelachirica/wise_1570_greentea_tests
WISE_1570 greentea testspull/7882/head
commit
582b414ea2
|
@ -37,6 +37,8 @@
|
||||||
|
|
||||||
#include "mbed.h"
|
#include "mbed.h"
|
||||||
|
|
||||||
|
|
||||||
|
#include "AT_CellularInformation.h"
|
||||||
#include "CellularConnectionFSM.h"
|
#include "CellularConnectionFSM.h"
|
||||||
#include "CellularDevice.h"
|
#include "CellularDevice.h"
|
||||||
#include "../../cellular_tests_common.h"
|
#include "../../cellular_tests_common.h"
|
||||||
|
@ -81,7 +83,9 @@ static void test_information_interface()
|
||||||
TEST_ASSERT(info->get_manufacturer(buf, kbuf_size) == NSAPI_ERROR_OK);
|
TEST_ASSERT(info->get_manufacturer(buf, kbuf_size) == NSAPI_ERROR_OK);
|
||||||
TEST_ASSERT(info->get_model(buf, kbuf_size) == NSAPI_ERROR_OK);
|
TEST_ASSERT(info->get_model(buf, kbuf_size) == NSAPI_ERROR_OK);
|
||||||
TEST_ASSERT(info->get_revision(buf, kbuf_size) == NSAPI_ERROR_OK);
|
TEST_ASSERT(info->get_revision(buf, kbuf_size) == NSAPI_ERROR_OK);
|
||||||
TEST_ASSERT(info->get_serial_number(buf, kbuf_size, CellularInformation::SN) == NSAPI_ERROR_OK);
|
TEST_ASSERT((info->get_serial_number(buf, kbuf_size, CellularInformation::SN) == NSAPI_ERROR_OK) ||
|
||||||
|
((((AT_CellularInformation *)info)->get_device_error().errType == 3) && // 3 == CME error from the modem
|
||||||
|
(((AT_CellularInformation *)info)->get_device_error().errCode == 4))); // 4 == "operation not supported"
|
||||||
|
|
||||||
nsapi_error_t err = info->get_serial_number(buf, kbuf_size, CellularInformation::IMEI);
|
nsapi_error_t err = info->get_serial_number(buf, kbuf_size, CellularInformation::IMEI);
|
||||||
TEST_ASSERT(err == NSAPI_ERROR_UNSUPPORTED || err == NSAPI_ERROR_OK);
|
TEST_ASSERT(err == NSAPI_ERROR_UNSUPPORTED || err == NSAPI_ERROR_OK);
|
||||||
|
|
|
@ -225,7 +225,7 @@ static void test_other()
|
||||||
if (strcmp(devi, "QUECTEL_BG96") != 0 && strcmp(devi, "TELIT_HE910") != 0) { // QUECTEL_BG96 does not give any specific reason for device error
|
if (strcmp(devi, "QUECTEL_BG96") != 0 && strcmp(devi, "TELIT_HE910") != 0) { // QUECTEL_BG96 does not give any specific reason for device error
|
||||||
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
||||||
TEST_ASSERT(((AT_CellularNetwork *)nw)->get_device_error().errCode == 100 && // 100 == unknown command for modem
|
TEST_ASSERT(((AT_CellularNetwork *)nw)->get_device_error().errCode == 100 && // 100 == unknown command for modem
|
||||||
((AT_CellularNetwork *)nw)->get_device_error().errType == 3); // 3 == CME error from the modem
|
((AT_CellularNetwork *)nw)->get_device_error().errType == 3); // 3 == CME error from the modem
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -235,7 +235,7 @@ static void test_other()
|
||||||
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
||||||
if (strcmp(devi, "QUECTEL_BG96") != 0 && strcmp(devi, "TELIT_HE910") != 0) { // QUECTEL_BG96 does not give any specific reason for device error
|
if (strcmp(devi, "QUECTEL_BG96") != 0 && strcmp(devi, "TELIT_HE910") != 0) { // QUECTEL_BG96 does not give any specific reason for device error
|
||||||
TEST_ASSERT(((AT_CellularNetwork *)nw)->get_device_error().errCode == 100 && // 100 == unknown command for modem
|
TEST_ASSERT(((AT_CellularNetwork *)nw)->get_device_error().errCode == 100 && // 100 == unknown command for modem
|
||||||
((AT_CellularNetwork *)nw)->get_device_error().errType == 3); // 3 == CME error from the modem
|
((AT_CellularNetwork *)nw)->get_device_error().errType == 3); // 3 == CME error from the modem
|
||||||
}
|
}
|
||||||
} else if (err == NSAPI_ERROR_PARAMETER) {
|
} else if (err == NSAPI_ERROR_PARAMETER) {
|
||||||
TEST_ASSERT(uplinkRate == -1);
|
TEST_ASSERT(uplinkRate == -1);
|
||||||
|
@ -246,6 +246,8 @@ static void test_other()
|
||||||
err = nw->set_access_technology(CellularNetwork::RAT_GSM);
|
err = nw->set_access_technology(CellularNetwork::RAT_GSM);
|
||||||
TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_UNSUPPORTED);
|
TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_UNSUPPORTED);
|
||||||
|
|
||||||
|
// scanning of operators requires some delay before operation is allowed(seen with WISE_1570)
|
||||||
|
wait(5);
|
||||||
// scanning of operators might take a long time
|
// scanning of operators might take a long time
|
||||||
cellular.get_device()->set_timeout(240 * 1000);
|
cellular.get_device()->set_timeout(240 * 1000);
|
||||||
CellularNetwork::operList_t operators;
|
CellularNetwork::operList_t operators;
|
||||||
|
@ -264,8 +266,9 @@ static void test_other()
|
||||||
TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_DEVICE_ERROR);
|
TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_DEVICE_ERROR);
|
||||||
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
||||||
if (strcmp(devi, "TELIT_HE910") != 0) { // TELIT_HE910 just gives an error and no specific error number so we can't know is this real error or that modem/network does not support the command
|
if (strcmp(devi, "TELIT_HE910") != 0) { // TELIT_HE910 just gives an error and no specific error number so we can't know is this real error or that modem/network does not support the command
|
||||||
TEST_ASSERT(((AT_CellularNetwork *)nw)->get_device_error().errCode == 100 && // 100 == unknown command for modem
|
TEST_ASSERT((((AT_CellularNetwork *)nw)->get_device_error().errType == 3) && // 3 == CME error from the modem
|
||||||
((AT_CellularNetwork *)nw)->get_device_error().errType == 3); // 3 == CME error from the modem
|
((((AT_CellularNetwork *)nw)->get_device_error().errCode == 100) || // 100 == unknown command for modem
|
||||||
|
(((AT_CellularNetwork *)nw)->get_device_error().errCode == 50))); // 50 == incorrect parameters // seen in wise_1570 for not supported commands
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// should have some values, only not optional are apn and bearer id
|
// should have some values, only not optional are apn and bearer id
|
||||||
|
@ -278,8 +281,9 @@ static void test_other()
|
||||||
TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_DEVICE_ERROR);
|
TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_DEVICE_ERROR);
|
||||||
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
||||||
if (strcmp(devi, "QUECTEL_BG96") != 0 && strcmp(devi, "TELIT_HE910") != 0) {// QUECTEL_BG96 does not give any specific reason for device error
|
if (strcmp(devi, "QUECTEL_BG96") != 0 && strcmp(devi, "TELIT_HE910") != 0) {// QUECTEL_BG96 does not give any specific reason for device error
|
||||||
TEST_ASSERT(((AT_CellularNetwork *)nw)->get_device_error().errCode == 100 && // 100 == unknown command for modem
|
TEST_ASSERT((((AT_CellularNetwork *)nw)->get_device_error().errType == 3) && // 3 == CME error from the modem
|
||||||
((AT_CellularNetwork *)nw)->get_device_error().errType == 3); // 3 == CME error from the modem
|
((((AT_CellularNetwork *)nw)->get_device_error().errCode == 100) || // 100 == unknown command for modem
|
||||||
|
(((AT_CellularNetwork *)nw)->get_device_error().errCode == 50))); // 50 == incorrect parameters // seen in wise_1570 for not supported commands
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// we should have some values which are not optional
|
// we should have some values which are not optional
|
||||||
|
@ -291,9 +295,10 @@ static void test_other()
|
||||||
err = nw->get_signal_quality(rssi, ber);
|
err = nw->get_signal_quality(rssi, ber);
|
||||||
TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_DEVICE_ERROR);
|
TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_DEVICE_ERROR);
|
||||||
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
||||||
TEST_ASSERT(((AT_CellularNetwork *)nw)->get_device_error().errCode == 100 && // 100 == unknown command for modem
|
TEST_ASSERT((((AT_CellularNetwork *)nw)->get_device_error().errType == 3) && // 3 == CME error from the modem
|
||||||
((AT_CellularNetwork *)nw)->get_device_error().errType == 3); // 3 == CME error from the modem
|
((((AT_CellularNetwork *)nw)->get_device_error().errCode == 100) || // 100 == unknown command for modem
|
||||||
} else {
|
(((AT_CellularNetwork *)nw)->get_device_error().errCode == 50))); // 50 == incorrect parameters // seen in wise_1570 for not supported commands
|
||||||
|
} else {
|
||||||
// test for values
|
// test for values
|
||||||
TEST_ASSERT(rssi >= 0);
|
TEST_ASSERT(rssi >= 0);
|
||||||
TEST_ASSERT(ber >= 0);
|
TEST_ASSERT(ber >= 0);
|
||||||
|
@ -321,8 +326,9 @@ static void test_other()
|
||||||
TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_DEVICE_ERROR);
|
TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_DEVICE_ERROR);
|
||||||
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
||||||
// if device error then we must check was that really device error or that modem/network does not support the commands
|
// if device error then we must check was that really device error or that modem/network does not support the commands
|
||||||
TEST_ASSERT(((AT_CellularNetwork *)nw)->get_device_error().errCode == 4 // 4 == NOT SUPPORTED BY THE MODEM
|
TEST_ASSERT((((AT_CellularNetwork *)nw)->get_device_error().errType == 3) && // 3 == CME error from the modem
|
||||||
&& ((AT_CellularNetwork *)nw)->get_device_error().errType == 3); // 3 == CME error from the modem
|
((((AT_CellularNetwork *)nw)->get_device_error().errCode == 4) || // 4 == NOT SUPPORTED BY THE MODEM
|
||||||
|
(((AT_CellularNetwork *)nw)->get_device_error().errCode == 50))); // 50 == incorrect parameters // seen in wise_1570 for not supported commands
|
||||||
} else {
|
} else {
|
||||||
CellularNetwork::operator_names_t *opn = op_names.get_head();
|
CellularNetwork::operator_names_t *opn = op_names.get_head();
|
||||||
TEST_ASSERT(strlen(opn->numeric) > 0);
|
TEST_ASSERT(strlen(opn->numeric) > 0);
|
||||||
|
@ -338,8 +344,9 @@ static void test_other()
|
||||||
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
||||||
// if device error then we must check was that really device error or that modem/network does not support the commands
|
// if device error then we must check was that really device error or that modem/network does not support the commands
|
||||||
if (!(strcmp(devi, "TELIT_HE910") == 0 || strcmp(devi, "QUECTEL_BG96") == 0)) {
|
if (!(strcmp(devi, "TELIT_HE910") == 0 || strcmp(devi, "QUECTEL_BG96") == 0)) {
|
||||||
TEST_ASSERT(((AT_CellularNetwork *)nw)->get_device_error().errCode == 100 && // 100 == unknown command for modem
|
TEST_ASSERT((((AT_CellularNetwork *)nw)->get_device_error().errType == 3) && // 3 == CME error from the modem
|
||||||
((AT_CellularNetwork *)nw)->get_device_error().errType == 3); // 3 == CME error from the modem
|
((((AT_CellularNetwork *)nw)->get_device_error().errCode == 100) || // 100 == unknown command for modem
|
||||||
|
(((AT_CellularNetwork *)nw)->get_device_error().errCode == 50))); // 50 == incorrect parameters // seen in wise_1570 for not supported commands
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
TEST_ASSERT(supported_opt != CellularNetwork::SUPPORTED_UE_OPT_MAX);
|
TEST_ASSERT(supported_opt != CellularNetwork::SUPPORTED_UE_OPT_MAX);
|
||||||
|
@ -351,8 +358,9 @@ static void test_other()
|
||||||
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
if (err == NSAPI_ERROR_DEVICE_ERROR) {
|
||||||
// if device error then we must check was that really device error or that modem/network does not support the commands
|
// if device error then we must check was that really device error or that modem/network does not support the commands
|
||||||
if (!(strcmp(devi, "TELIT_HE910") == 0 || strcmp(devi, "QUECTEL_BG96") == 0)) {
|
if (!(strcmp(devi, "TELIT_HE910") == 0 || strcmp(devi, "QUECTEL_BG96") == 0)) {
|
||||||
TEST_ASSERT(((AT_CellularNetwork *)nw)->get_device_error().errCode == 100 && // 100 == unknown command for modem
|
TEST_ASSERT((((AT_CellularNetwork *)nw)->get_device_error().errType == 3) && // 3 == CME error from the modem
|
||||||
((AT_CellularNetwork *)nw)->get_device_error().errType == 3); // 3 == CME error from the modem
|
((((AT_CellularNetwork *)nw)->get_device_error().errCode == 100) || // 100 == unknown command for modem
|
||||||
|
(((AT_CellularNetwork *)nw)->get_device_error().errCode == 50))); // 50 == incorrect parameters // seen in wise_1570 for not supported commands
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,20 +110,20 @@ static void test_sim_interface()
|
||||||
// change pin and change it back
|
// change pin and change it back
|
||||||
wait(1);
|
wait(1);
|
||||||
err = sim->change_pin(MBED_CONF_APP_CELLULAR_SIM_PIN, pin);
|
err = sim->change_pin(MBED_CONF_APP_CELLULAR_SIM_PIN, pin);
|
||||||
TEST_ASSERT(err == NSAPI_ERROR_OK);
|
TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_UNSUPPORTED);
|
||||||
|
|
||||||
wait(1);
|
wait(1);
|
||||||
err = sim->change_pin(pin, MBED_CONF_APP_CELLULAR_SIM_PIN);
|
err = sim->change_pin(pin, MBED_CONF_APP_CELLULAR_SIM_PIN);
|
||||||
TEST_ASSERT(err == NSAPI_ERROR_OK);
|
TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_UNSUPPORTED);
|
||||||
|
|
||||||
// 3. test set_pin_query
|
// 3. test set_pin_query
|
||||||
wait(1);
|
wait(1);
|
||||||
err = sim->set_pin_query(MBED_CONF_APP_CELLULAR_SIM_PIN, false);
|
err = sim->set_pin_query(MBED_CONF_APP_CELLULAR_SIM_PIN, false);
|
||||||
TEST_ASSERT(err == NSAPI_ERROR_OK);
|
TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_UNSUPPORTED);
|
||||||
|
|
||||||
wait(1);
|
wait(1);
|
||||||
err = sim->set_pin_query(MBED_CONF_APP_CELLULAR_SIM_PIN, true);
|
err = sim->set_pin_query(MBED_CONF_APP_CELLULAR_SIM_PIN, true);
|
||||||
TEST_ASSERT(err == NSAPI_ERROR_OK);
|
TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_UNSUPPORTED);
|
||||||
|
|
||||||
wait(1);
|
wait(1);
|
||||||
// 4. test get_sim_state
|
// 4. test get_sim_state
|
||||||
|
|
|
@ -421,11 +421,34 @@ nsapi_error_t AT_CellularNetwork::disconnect()
|
||||||
return err;
|
return err;
|
||||||
#else
|
#else
|
||||||
_at.lock();
|
_at.lock();
|
||||||
_at.cmd_start("AT+CGACT=0,");
|
|
||||||
_at.write_int(_cid);
|
_is_context_active = false;
|
||||||
|
size_t active_contexts_count = 0;
|
||||||
|
_at.cmd_start("AT+CGACT?");
|
||||||
_at.cmd_stop();
|
_at.cmd_stop();
|
||||||
_at.resp_start();
|
_at.resp_start("+CGACT:");
|
||||||
|
while (_at.info_resp()) {
|
||||||
|
int context_id = _at.read_int();
|
||||||
|
int context_activation_state = _at.read_int();
|
||||||
|
if (context_activation_state == 1) {
|
||||||
|
active_contexts_count++;
|
||||||
|
if (context_id == _cid) {
|
||||||
|
_is_context_active = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
_at.resp_stop();
|
_at.resp_stop();
|
||||||
|
|
||||||
|
// 3GPP TS 27.007:
|
||||||
|
// For EPS, if an attempt is made to disconnect the last PDN connection, then the MT responds with ERROR
|
||||||
|
if (_is_context_active && (_current_act < RAT_E_UTRAN || active_contexts_count > 1)) {
|
||||||
|
_at.cmd_start("AT+CGACT=0,");
|
||||||
|
_at.write_int(_cid);
|
||||||
|
_at.cmd_stop();
|
||||||
|
_at.resp_start();
|
||||||
|
_at.resp_stop();
|
||||||
|
}
|
||||||
|
|
||||||
_at.restore_at_timeout();
|
_at.restore_at_timeout();
|
||||||
|
|
||||||
_at.remove_urc_handler("+CGEV:", callback(this, &AT_CellularNetwork::urc_cgev));
|
_at.remove_urc_handler("+CGEV:", callback(this, &AT_CellularNetwork::urc_cgev));
|
||||||
|
|
|
@ -33,6 +33,11 @@ nsapi_error_t QUECTEL_BC95_CellularPower::set_at_mode()
|
||||||
{
|
{
|
||||||
_at.lock();
|
_at.lock();
|
||||||
_at.flush();
|
_at.flush();
|
||||||
|
_at.cmd_start("AT");
|
||||||
|
_at.cmd_stop();
|
||||||
|
_at.resp_start();
|
||||||
|
_at.resp_stop();
|
||||||
|
|
||||||
_at.cmd_start("AT+CMEE="); // verbose responses
|
_at.cmd_start("AT+CMEE="); // verbose responses
|
||||||
_at.write_int(1);
|
_at.write_int(1);
|
||||||
_at.cmd_stop();
|
_at.cmd_stop();
|
||||||
|
|
|
@ -58,3 +58,13 @@ nsapi_error_t QUECTEL_BC95_CellularSIM::get_iccid(char *buf, size_t buf_size)
|
||||||
_at.resp_stop();
|
_at.resp_stop();
|
||||||
return _at.unlock_return_error();
|
return _at.unlock_return_error();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nsapi_error_t QUECTEL_BC95_CellularSIM::change_pin(const char *sim_pin, const char *new_pin)
|
||||||
|
{
|
||||||
|
return NSAPI_ERROR_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsapi_error_t QUECTEL_BC95_CellularSIM::set_pin_query(const char *sim_pin, bool query_pin)
|
||||||
|
{
|
||||||
|
return NSAPI_ERROR_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
|
@ -30,6 +30,8 @@ public:
|
||||||
public: //from CellularSIM
|
public: //from CellularSIM
|
||||||
virtual nsapi_error_t get_sim_state(SimState &state);
|
virtual nsapi_error_t get_sim_state(SimState &state);
|
||||||
virtual nsapi_error_t get_iccid(char *buf, size_t buf_size);
|
virtual nsapi_error_t get_iccid(char *buf, size_t buf_size);
|
||||||
|
virtual nsapi_error_t change_pin(const char *sim_pin, const char *new_pin);
|
||||||
|
virtual nsapi_error_t set_pin_query(const char *sim_pin, bool query_pin);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace mbed
|
} // namespace mbed
|
||||||
|
|
Loading…
Reference in New Issue