Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: example-ublox-cellular-interface example-ublox-cellular-interface_r410M example-ublox-mbed-client example-ublox-cellular-interface ... more
Diff: TESTS/unit_tests/default/main.cpp
- Revision:
- 22:63b1a3c02fb8
- Parent:
- 12:ff6fac481487
- Child:
- 23:9098a541452b
diff -r 2e8e1c573e18 -r 63b1a3c02fb8 TESTS/unit_tests/default/main.cpp
--- a/TESTS/unit_tests/default/main.cpp Tue Feb 12 18:42:43 2019 +0500
+++ b/TESTS/unit_tests/default/main.cpp Mon May 13 13:30:24 2019 +0500
@@ -1,3 +1,4 @@
+
#include "UbloxATCellularInterface.h"
#include "greentea-client/test_env.h"
#include "unity.h"
@@ -141,6 +142,8 @@
// The maximum number of sockets that can be open at one time
#define MAX_NUM_SOCKETS 7
+int previousSelectedRat = -1, previousPreferredRat = -1, previousSecondPreferredRat = -1;
+
// ----------------------------------------------------------------
// PRIVATE VARIABLES
// ----------------------------------------------------------------
@@ -496,10 +499,10 @@
const char *imsi;
const char *iccid;
int rssi;
-
+
// Power-up the modem
interface->init();
-
+
// Check all of the IMEI, MEID, IMSI and ICCID calls
imei = interface->imei();
if (imei != NULL) {
@@ -507,37 +510,37 @@
} else {
TEST_ASSERT(false);
}
-
+
meid = interface->meid();
if (meid != NULL) {
tr_debug("MEID is %s.", meid);
} else {
TEST_ASSERT(false);
}
-
+
imsi = interface->imsi();
if (imsi != NULL) {
tr_debug("IMSI is %s.", imsi);
} else {
TEST_ASSERT(false);
}
-
+
iccid = interface->iccid();
if (iccid != NULL) {
tr_debug("ICCID is %s.", iccid);
} else {
TEST_ASSERT(false);
}
-
+
// Check the RSSI call at least doesn't assert
rssi = interface->rssi();
tr_debug("RSSI is %d dBm.", rssi);
-
+
// Now connect and check that the answers for the
// static fields are the same while connected
TEST_ASSERT(interface->connect(MBED_CONF_APP_DEFAULT_PIN, MBED_CONF_APP_APN,
MBED_CONF_APP_USERNAME, MBED_CONF_APP_PASSWORD) == 0);
-
+
TEST_ASSERT(strcmp(imei, interface->imei()) == 0);
TEST_ASSERT(strcmp(meid, interface->meid()) == 0);
TEST_ASSERT(strcmp(imsi, interface->imsi()) == 0);
@@ -1066,6 +1069,138 @@
delete pLocalInterface;
}
+void test_set_new_rat() {
+
+ int currentSelectedRat = -1, currentPreferredRat = -1, currentSecondPreferredRat = -1;
+
+ // Power-up the modem
+ TEST_ASSERT(interface->init());
+
+ // Check if modem is registered with network
+ if (interface->is_registered_csd() || interface->is_registered_psd() || interface->is_registered_eps()) {
+ tr_error("RAT should only be set in detached state");
+ // Deregister from Network
+ TEST_ASSERT(interface->nwk_deregistration());
+ }
+
+ // Get and store initial RAT set on modem
+ TEST_ASSERT(interface->get_modem_rat(&previousSelectedRat, &previousPreferredRat, &previousSecondPreferredRat));
+ tr_debug("previous selected RAT: %d\nprevious preferred RAT: %d\nprevious second preferred RAT: %d\n", previousSelectedRat, previousPreferredRat, previousSecondPreferredRat);
+
+#ifdef TARGET_UBLOX_C030_U201
+ // Set new RAT
+ TEST_ASSERT(interface->set_modem_rat(UbloxATCellularInterface::GSM_UMTS, UbloxATCellularInterface::UMTS));
+ tr_debug("RAT configured\n");
+
+ // Get latest set RAT on modem
+ TEST_ASSERT(interface->get_modem_rat(¤tSelectedRat, ¤tPreferredRat, ¤tSecondPreferredRat));
+ tr_debug("new selected RAT: %d\nnew preferred RAT: %d\nnew second preferred RAT: %d\n", currentSelectedRat, currentPreferredRat, currentSecondPreferredRat);
+
+ // Check RAT configured correctly
+ TEST_ASSERT((currentSelectedRat == UbloxATCellularInterface::GSM_UMTS) && (currentPreferredRat == UbloxATCellularInterface::UMTS));
+#endif
+
+#ifdef TARGET_UBLOX_C030_R412M
+ // Set new RAT
+ TEST_ASSERT(interface->set_modem_rat(UbloxATCellularInterface::LTE_CATM1, UbloxATCellularInterface::LTE_CATNB1));
+ tr_debug("RAT configured\n");
+
+ // Get latest set RAT on modem
+ TEST_ASSERT(interface->get_modem_rat(¤tSelectedRat, ¤tPreferredRat, ¤tSecondPreferredRat));
+ tr_debug("new selected RAT: %d\nnew preferred RAT: %d\nnew second preferred RAT: %d\n", currentSelectedRat, currentPreferredRat, currentSecondPreferredRat);
+
+ // Check RAT configured correctly
+ TEST_ASSERT((currentSelectedRat == UbloxATCellularInterface::LTE_CATM1) && (currentPreferredRat == UbloxATCellularInterface::LTE_CATNB1));
+#endif
+}
+
+void test_reboot() {
+
+ // Rebooting modem for settings to take effect
+ TEST_ASSERT(interface->reboot_modem());
+}
+
+void test_registration() {
+
+ TEST_ASSERT(interface->connect(MBED_CONF_APP_DEFAULT_PIN, MBED_CONF_APP_APN,
+ MBED_CONF_APP_USERNAME, MBED_CONF_APP_PASSWORD) == 0);
+
+ TEST_ASSERT(interface->nwk_deregistration());
+}
+
+
+void test_set_previous_rat() {
+
+ int currentSelectedRat = -1, currentPreferredRat = -1, currentSecondPreferredRat = -1;
+
+ // Restore RAT to previous settings
+ TEST_ASSERT(interface->set_modem_rat((UbloxATCellularInterface::RAT)previousSelectedRat, (UbloxATCellularInterface::RAT)previousPreferredRat, (UbloxATCellularInterface::RAT)previousSecondPreferredRat));
+ tr_debug("RAT configured\n");
+
+ TEST_ASSERT(interface->get_modem_rat(¤tSelectedRat, ¤tPreferredRat, ¤tSecondPreferredRat));
+ tr_debug("current selected RAT: %d\ncurrent preferred RAT: %d\ncurrent second preferred RAT: %d\n", currentSelectedRat, currentPreferredRat, currentSecondPreferredRat);
+
+ // Check RAT configured correctly
+ TEST_ASSERT((currentSelectedRat == previousSelectedRat) && (currentPreferredRat == previousPreferredRat));
+
+ // Rebooting modem for settings to take effect
+ TEST_ASSERT(interface->reboot_modem());
+}
+
+#ifdef TARGET_UBLOX_C030_R41XM
+void test_mno_profile() {
+
+ int previous_profile, current_profile;
+
+ // Power-up the modem
+ TEST_ASSERT(interface->init());
+
+ // Check if modem is registered with network
+ if (interface->is_registered_csd() || interface->is_registered_psd() || interface->is_registered_eps()) {
+ tr_error("MNO profile should only be set in detached state");
+ // Deregister from Network
+ TEST_ASSERT(interface->nwk_deregistration());
+ }
+
+ // Getting current mno profile
+ TEST_ASSERT(interface->get_mno_profile(&previous_profile));
+ tr_debug("Previous MNO profile is: %d\n\n", previous_profile);
+
+ // Set MNO profile
+ TEST_ASSERT(interface->set_mno_profile((UbloxATCellularInterface::MNOProfile)MBED_CONF_UBLOX_CELL_DEFAULT_MNO_PROFILE));
+ tr_debug("MNO configured\n");
+
+ // Rebooting modem for settings to take effect
+ TEST_ASSERT(interface->reboot_modem());
+ tr_debug("Reboot successful\n");
+ wait_ms(5000);
+
+ // Check MNO profile configured correctly
+ TEST_ASSERT(interface->get_mno_profile(¤t_profile));
+ tr_debug("New MNO profile is: %d\n\n", current_profile);
+
+ TEST_ASSERT((UbloxATCellularInterface::MNOProfile)current_profile == (UbloxATCellularInterface::MNOProfile)MBED_CONF_UBLOX_CELL_DEFAULT_MNO_PROFILE);
+
+ TEST_ASSERT(interface->connect(MBED_CONF_APP_DEFAULT_PIN, MBED_CONF_APP_APN,
+ MBED_CONF_APP_USERNAME, MBED_CONF_APP_PASSWORD) == 0);
+
+ TEST_ASSERT(interface->nwk_deregistration());
+
+ // Restore MNO profile to previous settings
+ TEST_ASSERT(interface->set_mno_profile((UbloxATCellularInterface::MNOProfile)previous_profile));
+ tr_debug("Previous MNO configured\n");
+
+ // Rebooting modem for settings to take effect
+ TEST_ASSERT(interface->reboot_modem());
+ tr_debug("Reboot successful\n");
+ wait_ms(5000);
+
+ // Check MNO profile configured correctly
+ TEST_ASSERT(interface->get_mno_profile(¤t_profile));
+ TEST_ASSERT((current_profile == previous_profile));
+}
+#endif
+
// ----------------------------------------------------------------
// TEST ENVIRONMENT
// ----------------------------------------------------------------
@@ -1105,6 +1240,15 @@
Case("Check SIM pin, pending", test_check_sim_pin_pending),
Case("Check SIM pin, immediate", test_check_sim_pin_immediate),
#endif
+#if defined (TARGET_UBLOX_C030_U201) || defined (TARGET_UBLOX_C030_R412M)
+ Case("Set RAT test", test_set_new_rat),
+ Case("Reboot test", test_reboot),
+ Case("Register with network test", test_registration),
+ Case("Set previous RAT test", test_set_previous_rat),
+#endif
+#ifdef TARGET_UBLOX_C030_R41XM
+ Case("MNO profile test", test_mno_profile),
+#endif
#ifndef TARGET_UBLOX_C027 // Not enough RAM on little 'ole C027 for this
Case("Connect using local instance, must be last test", test_connect_local_instance_last_test)
#endif