This class provides SMS, USSD and modem file system support for u-blox modules on the C027 and C030 boards (excepting the C030 N2xx flavour) from mbed 5.5 onwards.
Dependents: example-ublox-at-cellular-interface-ext example-ublox-cellular-driver-gen HelloMQTT ublox_new_driver_test ... more
main.cpp
00001 #include "mbed.h" 00002 #include "greentea-client/test_env.h" 00003 #include "unity.h" 00004 #include "utest.h" 00005 #include "UbloxCellularDriverGen.h" 00006 #include "UDPSocket.h" 00007 #ifdef FEATURE_COMMON_PAL 00008 #include "mbed_trace.h" 00009 #define TRACE_GROUP "TEST" 00010 #else 00011 #define tr_debug(format, ...) debug(format "\n", ## __VA_ARGS__) 00012 #define tr_info(format, ...) debug(format "\n", ## __VA_ARGS__) 00013 #define tr_warn(format, ...) debug(format "\n", ## __VA_ARGS__) 00014 #define tr_error(format, ...) debug(format "\n", ## __VA_ARGS__) 00015 #endif 00016 00017 using namespace utest::v1; 00018 00019 // ---------------------------------------------------------------- 00020 // COMPILE-TIME MACROS 00021 // ---------------------------------------------------------------- 00022 00023 // These macros can be overridden with an mbed_app.json file and 00024 // contents of the following form: 00025 // 00026 //{ 00027 // "config": { 00028 // "default-pin": { 00029 // "value": "\"my_pin\"" 00030 // } 00031 //} 00032 00033 // Whether debug trace is on 00034 #ifndef MBED_CONF_APP_DEBUG_ON 00035 # define MBED_CONF_APP_DEBUG_ON false 00036 #endif 00037 00038 // The credentials of the SIM in the board. 00039 #ifndef MBED_CONF_APP_DEFAULT_PIN 00040 // Note: this is the PIN for the SIM with ICCID 00041 // 8944501104169548380. 00042 # define MBED_CONF_APP_DEFAULT_PIN "5134" 00043 #endif 00044 00045 // http://www.geckobeach.com/cellular/secrets/gsmcodes.php 00046 // https://en.wikipedia.org/wiki/Unstructured_Supplementary_Service_Data 00047 00048 // A few USSD commands to try, set to "" to skip 00049 #ifndef MBED_CONF_APP_USSD_COMMAND_1 00050 # define MBED_CONF_APP_USSD_COMMAND_1 "*100#" 00051 #endif 00052 00053 #ifndef MBED_CONF_APP_USSD_COMMAND_2 00054 # define MBED_CONF_APP_USSD_COMMAND_2 "*#21#" 00055 #endif 00056 00057 #ifndef MBED_CONF_APP_USSD_COMMAND_3 00058 # define MBED_CONF_APP_USSD_COMMAND_3 "*#30#" 00059 #endif 00060 00061 #ifndef MBED_CONF_APP_USSD_COMMAND_4 00062 # define MBED_CONF_APP_USSD_COMMAND_4 "*#31#" 00063 #endif 00064 00065 #ifndef MBED_CONF_APP_USSD_COMMAND_5 00066 # define MBED_CONF_APP_USSD_COMMAND_5 "*#43#" 00067 #endif 00068 00069 #ifndef MBED_CONF_APP_USSD_COMMAND_6 00070 # define MBED_CONF_APP_USSD_COMMAND_6 "*#61#" 00071 #endif 00072 00073 #ifndef MBED_CONF_APP_USSD_COMMAND_7 00074 # define MBED_CONF_APP_USSD_COMMAND_7 "" 00075 #endif 00076 00077 #ifndef MBED_CONF_APP_USSD_COMMAND_8 00078 # define MBED_CONF_APP_USSD_COMMAND_8 "" 00079 #endif 00080 00081 #ifndef MBED_CONF_APP_USSD_COMMAND_9 00082 # define MBED_CONF_APP_USSD_COMMAND_9 "" 00083 #endif 00084 00085 #ifndef MBED_CONF_APP_USSD_COMMAND_10 00086 # define MBED_CONF_APP_USSD_COMMAND_10 "" 00087 #endif 00088 00089 // ---------------------------------------------------------------- 00090 // PRIVATE VARIABLES 00091 // ---------------------------------------------------------------- 00092 00093 #ifdef FEATURE_COMMON_PAL 00094 // Lock for debug prints 00095 static Mutex mtx; 00096 #endif 00097 00098 // An instance of the generic cellular class 00099 static UbloxCellularDriverGen *pDriver = 00100 new UbloxCellularDriverGen(MDMTXD, MDMRXD, 00101 MBED_CONF_UBLOX_CELL_BAUD_RATE, 00102 MBED_CONF_APP_DEBUG_ON); 00103 // A general purpose buffer 00104 static char buf[USSD_STRING_LENGTH + 1]; 00105 00106 // ---------------------------------------------------------------- 00107 // PRIVATE FUNCTIONS 00108 // ---------------------------------------------------------------- 00109 00110 #ifdef FEATURE_COMMON_PAL 00111 // Locks for debug prints 00112 static void lock() 00113 { 00114 mtx.lock(); 00115 } 00116 00117 static void unlock() 00118 { 00119 mtx.unlock(); 00120 } 00121 #endif 00122 00123 // ---------------------------------------------------------------- 00124 // TESTS 00125 // ---------------------------------------------------------------- 00126 00127 // Test USSD 00128 void test_ussd() { 00129 TEST_ASSERT(pDriver->init(MBED_CONF_APP_DEFAULT_PIN)); 00130 TEST_ASSERT(pDriver->nwk_registration()); 00131 00132 if (strlen(MBED_CONF_APP_USSD_COMMAND_1) > 0) { 00133 tr_debug("Sending : \"%s\".", MBED_CONF_APP_USSD_COMMAND_1); 00134 TEST_ASSERT(pDriver->ussdCommand(MBED_CONF_APP_USSD_COMMAND_1, buf, sizeof (buf))); 00135 tr_debug("USSD answer: \"%s\".", buf); 00136 } 00137 00138 if (strlen(MBED_CONF_APP_USSD_COMMAND_2) > 0) { 00139 tr_debug("Sending : \"%s\".", MBED_CONF_APP_USSD_COMMAND_2); 00140 TEST_ASSERT(pDriver->ussdCommand(MBED_CONF_APP_USSD_COMMAND_2, buf, sizeof (buf))); 00141 tr_debug("USSD answer: \"%s\".", buf); 00142 } 00143 00144 if (strlen(MBED_CONF_APP_USSD_COMMAND_3) > 0) { 00145 tr_debug("Sending : \"%s\".", MBED_CONF_APP_USSD_COMMAND_3); 00146 TEST_ASSERT(pDriver->ussdCommand(MBED_CONF_APP_USSD_COMMAND_3, buf, sizeof (buf))); 00147 tr_debug("USSD answer: \"%s\".", buf); 00148 } 00149 00150 if (strlen(MBED_CONF_APP_USSD_COMMAND_4) > 0) { 00151 tr_debug("Sending : \"%s\".", MBED_CONF_APP_USSD_COMMAND_4); 00152 TEST_ASSERT(pDriver->ussdCommand(MBED_CONF_APP_USSD_COMMAND_4, buf, sizeof (buf))); 00153 tr_debug("USSD answer: \"%s\".", buf); 00154 } 00155 00156 if (strlen(MBED_CONF_APP_USSD_COMMAND_5) > 0) { 00157 tr_debug("Sending : \"%s\".", MBED_CONF_APP_USSD_COMMAND_5); 00158 TEST_ASSERT(pDriver->ussdCommand(MBED_CONF_APP_USSD_COMMAND_5, buf, sizeof (buf))); 00159 tr_debug("USSD answer: \"%s\".", buf); 00160 } 00161 00162 if (strlen(MBED_CONF_APP_USSD_COMMAND_6) > 0) { 00163 tr_debug("Sending : \"%s\".", MBED_CONF_APP_USSD_COMMAND_6); 00164 TEST_ASSERT(pDriver->ussdCommand(MBED_CONF_APP_USSD_COMMAND_6, buf, sizeof (buf))); 00165 tr_debug("USSD answer: \"%s\".", buf); 00166 } 00167 00168 if (strlen(MBED_CONF_APP_USSD_COMMAND_7) > 0) { 00169 tr_debug("Sending : \"%s\".", MBED_CONF_APP_USSD_COMMAND_7); 00170 TEST_ASSERT(pDriver->ussdCommand(MBED_CONF_APP_USSD_COMMAND_7, buf, sizeof (buf))); 00171 tr_debug("USSD answer: \"%s\".", buf); 00172 } 00173 00174 if (strlen(MBED_CONF_APP_USSD_COMMAND_8) > 0) { 00175 tr_debug("Sending : \"%s\".", MBED_CONF_APP_USSD_COMMAND_8); 00176 TEST_ASSERT(pDriver->ussdCommand(MBED_CONF_APP_USSD_COMMAND_8, buf, sizeof (buf))); 00177 tr_debug("USSD answer: \"%s\".", buf); 00178 } 00179 00180 if (strlen(MBED_CONF_APP_USSD_COMMAND_9) > 0) { 00181 tr_debug("Sending : \"%s\".", MBED_CONF_APP_USSD_COMMAND_9); 00182 TEST_ASSERT(pDriver->ussdCommand(MBED_CONF_APP_USSD_COMMAND_9, buf, sizeof (buf))); 00183 tr_debug("USSD answer: \"%s\".", buf); 00184 } 00185 00186 if (strlen(MBED_CONF_APP_USSD_COMMAND_10) > 0) { 00187 tr_debug("Sending : \"%s\".", MBED_CONF_APP_USSD_COMMAND_10); 00188 TEST_ASSERT(pDriver->ussdCommand(MBED_CONF_APP_USSD_COMMAND_10, buf, sizeof (buf))); 00189 tr_debug("USSD answer: \"%s\".", buf); 00190 } 00191 00192 TEST_ASSERT(pDriver->nwk_deregistration()); 00193 } 00194 00195 // ---------------------------------------------------------------- 00196 // TEST ENVIRONMENT 00197 // ---------------------------------------------------------------- 00198 00199 // Setup the test environment 00200 utest::v1::status_t test_setup(const size_t number_of_cases) { 00201 // Setup Greentea with a timeout 00202 GREENTEA_SETUP(180, "default_auto"); 00203 return verbose_test_setup_handler(number_of_cases); 00204 } 00205 00206 // Test cases 00207 Case cases[] = { 00208 Case("USSD test", test_ussd) 00209 00210 }; 00211 00212 Specification specification(test_setup, cases); 00213 00214 // ---------------------------------------------------------------- 00215 // MAIN 00216 // ---------------------------------------------------------------- 00217 00218 int main() { 00219 00220 #ifdef FEATURE_COMMON_PAL 00221 mbed_trace_init(); 00222 00223 mbed_trace_mutex_wait_function_set(lock); 00224 mbed_trace_mutex_release_function_set(unlock); 00225 #endif 00226 00227 // Run tests 00228 return !Harness::run(specification); 00229 } 00230 00231 // End Of File 00232
Generated on Tue Jul 12 2022 17:22:58 by 1.7.2