From bdddb445a6d990dea78b96b6be50646ec86f705b Mon Sep 17 00:00:00 2001 From: Ari Parkkila Date: Thu, 29 Nov 2018 00:22:39 -0800 Subject: [PATCH] Cellular: Moved reset from power to device --- .../AT/at_cellulardevice/at_cellulardevicetest.cpp | 6 ++++++ .../AT/at_cellularpower/at_cellularpowertest.cpp | 14 -------------- UNITTESTS/stubs/AT_CellularDevice_stub.cpp | 5 +++++ UNITTESTS/stubs/AT_CellularPower_stub.cpp | 5 ----- UNITTESTS/target_h/myCellularDevice.h | 5 +++++ .../cellular/TESTS/api/cellular_power/main.cpp | 4 ---- features/cellular/framework/API/CellularDevice.h | 7 +++++++ features/cellular/framework/API/CellularPower.h | 7 ------- .../cellular/framework/AT/AT_CellularDevice.cpp | 11 +++++++++++ features/cellular/framework/AT/AT_CellularDevice.h | 2 ++ .../cellular/framework/AT/AT_CellularPower.cpp | 10 ---------- features/cellular/framework/AT/AT_CellularPower.h | 2 -- .../targets/QUECTEL/BC95/QUECTEL_BC95.cpp | 11 ++++++++--- .../framework/targets/QUECTEL/BC95/QUECTEL_BC95.h | 1 + .../QUECTEL/BC95/QUECTEL_BC95_CellularPower.cpp | 9 --------- .../QUECTEL/BC95/QUECTEL_BC95_CellularPower.h | 3 --- .../targets/QUECTEL/BG96/QUECTEL_BG96.cpp | 3 --- .../targets/QUECTEL/UG96/QUECTEL_UG96.cpp | 3 --- 18 files changed, 45 insertions(+), 63 deletions(-) diff --git a/UNITTESTS/features/cellular/framework/AT/at_cellulardevice/at_cellulardevicetest.cpp b/UNITTESTS/features/cellular/framework/AT/at_cellulardevice/at_cellulardevicetest.cpp index 7a74a72c36..035ec9e7c3 100644 --- a/UNITTESTS/features/cellular/framework/AT/at_cellulardevice/at_cellulardevicetest.cpp +++ b/UNITTESTS/features/cellular/framework/AT/at_cellulardevice/at_cellulardevicetest.cpp @@ -239,6 +239,12 @@ TEST_F(TestAT_CellularDevice, test_AT_CellularDevice_init) EXPECT_EQ(dev.init(), NSAPI_ERROR_OK); } +TEST_F(TestAT_CellularDevice, test_AT_CellularDevice_reset) +{ + FileHandle_stub fh1; + AT_CellularDevice dev(&fh1); + EXPECT_EQ(dev.reset(), NSAPI_ERROR_OK); +} TEST_F(TestAT_CellularDevice, test_AT_CellularDevice_is_ready) { diff --git a/UNITTESTS/features/cellular/framework/AT/at_cellularpower/at_cellularpowertest.cpp b/UNITTESTS/features/cellular/framework/AT/at_cellularpower/at_cellularpowertest.cpp index d92636bb88..257ded8771 100644 --- a/UNITTESTS/features/cellular/framework/AT/at_cellularpower/at_cellularpowertest.cpp +++ b/UNITTESTS/features/cellular/framework/AT/at_cellularpower/at_cellularpowertest.cpp @@ -74,17 +74,3 @@ TEST_F(TestAT_CellularPower, test_AT_CellularPower_off) AT_CellularPower pow(at); EXPECT_TRUE(NSAPI_ERROR_UNSUPPORTED == pow.off()); } - -TEST_F(TestAT_CellularPower, test_AT_CellularPower_reset) -{ - EventQueue que; - FileHandle_stub fh1; - ATHandler at(&fh1, que, 0, ","); - - AT_CellularPower pow(at); - ATHandler_stub::nsapi_error_value = NSAPI_ERROR_OK; - EXPECT_TRUE(NSAPI_ERROR_OK == pow.reset()); - - ATHandler_stub::nsapi_error_value = NSAPI_ERROR_DEVICE_ERROR; - EXPECT_TRUE(NSAPI_ERROR_DEVICE_ERROR == pow.reset()); -} diff --git a/UNITTESTS/stubs/AT_CellularDevice_stub.cpp b/UNITTESTS/stubs/AT_CellularDevice_stub.cpp index ad741d8c7c..06b246c247 100644 --- a/UNITTESTS/stubs/AT_CellularDevice_stub.cpp +++ b/UNITTESTS/stubs/AT_CellularDevice_stub.cpp @@ -171,6 +171,11 @@ nsapi_error_t AT_CellularDevice::init() return NSAPI_ERROR_OK; } +nsapi_error_t AT_CellularDevice::reset() +{ + return NSAPI_ERROR_OK; +} + nsapi_error_t AT_CellularDevice::set_pin(const char *sim_pin) { return NSAPI_ERROR_OK; diff --git a/UNITTESTS/stubs/AT_CellularPower_stub.cpp b/UNITTESTS/stubs/AT_CellularPower_stub.cpp index a4e9c52b62..0076be2669 100644 --- a/UNITTESTS/stubs/AT_CellularPower_stub.cpp +++ b/UNITTESTS/stubs/AT_CellularPower_stub.cpp @@ -39,8 +39,3 @@ nsapi_error_t AT_CellularPower::off() { return NSAPI_ERROR_OK; } - -nsapi_error_t AT_CellularPower::reset() -{ - return NSAPI_ERROR_OK; -} diff --git a/UNITTESTS/target_h/myCellularDevice.h b/UNITTESTS/target_h/myCellularDevice.h index 077cf4ec6a..4caed90c89 100644 --- a/UNITTESTS/target_h/myCellularDevice.h +++ b/UNITTESTS/target_h/myCellularDevice.h @@ -114,6 +114,11 @@ public: return NSAPI_ERROR_OK; } + virtual nsapi_error_t reset() + { + return NSAPI_ERROR_OK; + } + virtual nsapi_error_t is_ready() { return NSAPI_ERROR_OK; diff --git a/features/cellular/TESTS/api/cellular_power/main.cpp b/features/cellular/TESTS/api/cellular_power/main.cpp index 000e4ed480..ac5ab953d2 100644 --- a/features/cellular/TESTS/api/cellular_power/main.cpp +++ b/features/cellular/TESTS/api/cellular_power/main.cpp @@ -81,10 +81,6 @@ static void test_power_interface() TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_UNSUPPORTED); wait_for_power(pwr); - err = pwr->reset(); - TEST_ASSERT(err == NSAPI_ERROR_OK); - wait_for_power(pwr); - err = pwr->off(); TEST_ASSERT(err == NSAPI_ERROR_OK || err == NSAPI_ERROR_UNSUPPORTED); diff --git a/features/cellular/framework/API/CellularDevice.h b/features/cellular/framework/API/CellularDevice.h index d3f228a505..200d7c3da2 100644 --- a/features/cellular/framework/API/CellularDevice.h +++ b/features/cellular/framework/API/CellularDevice.h @@ -262,6 +262,13 @@ public: */ virtual nsapi_error_t init() = 0; + /** Reset and wake-up cellular device. + * + * @return NSAPI_ERROR_OK on success + * NSAPI_ERROR_DEVICE_ERROR on failure + */ + virtual nsapi_error_t reset() = 0; + /** Check whether the device is ready to accept commands. * * @return NSAPI_ERROR_OK on success diff --git a/features/cellular/framework/API/CellularPower.h b/features/cellular/framework/API/CellularPower.h index 59dc83aca7..5c2ce68f3a 100644 --- a/features/cellular/framework/API/CellularPower.h +++ b/features/cellular/framework/API/CellularPower.h @@ -57,13 +57,6 @@ public: * NSAPI_ERROR_UNSUPPORTED if not overridden by the target modem */ virtual nsapi_error_t off() = 0; - - /** Reset and wake-up cellular device. - * - * @return NSAPI_ERROR_OK on success - * NSAPI_ERROR_DEVICE_ERROR on failure - */ - virtual nsapi_error_t reset() = 0; }; } // namespace mbed diff --git a/features/cellular/framework/AT/AT_CellularDevice.cpp b/features/cellular/framework/AT/AT_CellularDevice.cpp index 3a2cc64715..5d6ea818d0 100644 --- a/features/cellular/framework/AT/AT_CellularDevice.cpp +++ b/features/cellular/framework/AT/AT_CellularDevice.cpp @@ -378,6 +378,17 @@ nsapi_error_t AT_CellularDevice::init() return _at->unlock_return_error(); } +nsapi_error_t AT_CellularDevice::reset() +{ + _at->lock(); + if (_state_machine) { + _state_machine->reset(); + } + _at->cmd_start("AT+CFUN=1,1");// reset to full power levels + _at->cmd_stop_read_resp(); + return _at->unlock_return_error(); +} + nsapi_error_t AT_CellularDevice::is_ready() { _at->lock(); diff --git a/features/cellular/framework/AT/AT_CellularDevice.h b/features/cellular/framework/AT/AT_CellularDevice.h index 42d4f82988..cc5f90ec82 100644 --- a/features/cellular/framework/AT/AT_CellularDevice.h +++ b/features/cellular/framework/AT/AT_CellularDevice.h @@ -72,6 +72,8 @@ public: virtual nsapi_error_t init(); + virtual nsapi_error_t reset(); + virtual nsapi_error_t is_ready(); virtual nsapi_error_t set_ready_cb(Callback callback); diff --git a/features/cellular/framework/AT/AT_CellularPower.cpp b/features/cellular/framework/AT/AT_CellularPower.cpp index 4be451cdea..6ba70733a3 100644 --- a/features/cellular/framework/AT/AT_CellularPower.cpp +++ b/features/cellular/framework/AT/AT_CellularPower.cpp @@ -41,13 +41,3 @@ nsapi_error_t AT_CellularPower::off() { return NSAPI_ERROR_UNSUPPORTED; } - -nsapi_error_t AT_CellularPower::reset() -{ - _at.lock(); - _at.cmd_start("AT+CFUN=");// reset to full power levels - _at.write_int(1); - _at.write_int(1); - _at.cmd_stop_read_resp(); - return _at.unlock_return_error(); -} diff --git a/features/cellular/framework/AT/AT_CellularPower.h b/features/cellular/framework/AT/AT_CellularPower.h index cd7dc21b20..7e4f1c9372 100644 --- a/features/cellular/framework/AT/AT_CellularPower.h +++ b/features/cellular/framework/AT/AT_CellularPower.h @@ -37,8 +37,6 @@ public: virtual nsapi_error_t on(); virtual nsapi_error_t off(); - - virtual nsapi_error_t reset(); }; } // namespace mbed diff --git a/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95.cpp b/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95.cpp index 0c77a4b3ac..5ef59fc5ae 100644 --- a/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95.cpp +++ b/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95.cpp @@ -26,9 +26,6 @@ #define CONNECT_BUFFER_SIZE (1280 + 80 + 80) // AT response + sscanf format #define CONNECT_TIMEOUT 8000 -#define MAX_STARTUP_TRIALS 5 -#define MAX_RESET_TRIALS 5 - using namespace events; using namespace mbed; @@ -97,3 +94,11 @@ nsapi_error_t QUECTEL_BC95::init() return _at->unlock_return_error(); } +nsapi_error_t QUECTEL_BC95::reset() +{ + _at->lock(); + _at->cmd_start("AT+NRB"); // reset to full power levels + _at->cmd_stop(); + _at->resp_start("REBOOTING", true); + return _at->unlock_return_error(); +} diff --git a/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95.h b/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95.h index da3942240a..ee73b1e0c5 100644 --- a/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95.h +++ b/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95.h @@ -36,6 +36,7 @@ protected: // AT_CellularDevice virtual AT_CellularContext *create_context_impl(ATHandler &at, const char *apn); virtual AT_CellularInformation *open_information_impl(ATHandler &at); virtual nsapi_error_t init(); + virtual nsapi_error_t reset(); public: // NetworkInterface void handle_urc(FileHandle *fh); diff --git a/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95_CellularPower.cpp b/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95_CellularPower.cpp index 73a5086e2d..778c8041ff 100644 --- a/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95_CellularPower.cpp +++ b/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95_CellularPower.cpp @@ -28,12 +28,3 @@ QUECTEL_BC95_CellularPower::~QUECTEL_BC95_CellularPower() { } - -nsapi_error_t QUECTEL_BC95_CellularPower::reset() -{ - _at.lock(); - _at.cmd_start("AT+NRB"); // reset to full power levels - _at.cmd_stop(); - _at.resp_start("REBOOTING", true); - return _at.unlock_return_error(); -} diff --git a/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95_CellularPower.h b/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95_CellularPower.h index fedb654a23..781be8f5c7 100644 --- a/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95_CellularPower.h +++ b/features/cellular/framework/targets/QUECTEL/BC95/QUECTEL_BC95_CellularPower.h @@ -26,9 +26,6 @@ class QUECTEL_BC95_CellularPower : public AT_CellularPower { public: QUECTEL_BC95_CellularPower(ATHandler &atHandler); virtual ~QUECTEL_BC95_CellularPower(); - -public: //from CellularPower - virtual nsapi_error_t reset(); }; } // namespace mbed diff --git a/features/cellular/framework/targets/QUECTEL/BG96/QUECTEL_BG96.cpp b/features/cellular/framework/targets/QUECTEL/BG96/QUECTEL_BG96.cpp index a5c9c9d8f2..dc52e3f3f2 100644 --- a/features/cellular/framework/targets/QUECTEL/BG96/QUECTEL_BG96.cpp +++ b/features/cellular/framework/targets/QUECTEL/BG96/QUECTEL_BG96.cpp @@ -29,9 +29,6 @@ using namespace events; #define CONNECT_BUFFER_SIZE (1280 + 80 + 80) // AT response + sscanf format #define CONNECT_TIMEOUT 8000 -#define MAX_STARTUP_TRIALS 5 -#define MAX_RESET_TRIALS 5 - #define DEVICE_READY_URC "CPIN:" static const AT_CellularBase::SupportedFeature unsupported_features[] = { diff --git a/features/cellular/framework/targets/QUECTEL/UG96/QUECTEL_UG96.cpp b/features/cellular/framework/targets/QUECTEL/UG96/QUECTEL_UG96.cpp index 4e69e0a8ed..3571b97158 100644 --- a/features/cellular/framework/targets/QUECTEL/UG96/QUECTEL_UG96.cpp +++ b/features/cellular/framework/targets/QUECTEL/UG96/QUECTEL_UG96.cpp @@ -27,9 +27,6 @@ using namespace events; #define CONNECT_BUFFER_SIZE (1280 + 80 + 80) // AT response + sscanf format #define CONNECT_TIMEOUT 8000 -#define MAX_STARTUP_TRIALS 5 -#define MAX_RESET_TRIALS 5 - QUECTEL_UG96::QUECTEL_UG96(FileHandle *fh) : AT_CellularDevice(fh) { }