mirror of https://github.com/ARMmbed/mbed-os.git
Cellular: Change AT_CellularNetwork to use CellularProperties.
This change enables removing function has_registration from class AT_CellularNetwork and all targets inheriting AT_CellularNetwork.pull/9472/head
parent
b0d37ebec4
commit
9a72c221d8
|
|
@ -18,7 +18,7 @@
|
|||
#include "gtest/gtest.h"
|
||||
#include "AT_CellularBase.h"
|
||||
#include "EventQueue.h"
|
||||
#include "AT_CellularBase.h"
|
||||
#include "AT_CellularNetwork.h"
|
||||
#include "ATHandler_stub.h"
|
||||
#include "FileHandle_stub.h"
|
||||
#include <string.h>
|
||||
|
|
@ -33,19 +33,22 @@ public:
|
|||
}
|
||||
bool check_not_supported()
|
||||
{
|
||||
static const intptr_t cellular_properties[AT_CellularBase::CELLULAR_PROPERTY_MAX] = {
|
||||
static const intptr_t cellular_properties[AT_CellularBase::PROPERTY_MAX] = {
|
||||
AT_CellularNetwork::RegistrationModeDisable,// C_EREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_GREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_REG
|
||||
0, // AT_CGSN_WITH_TYPE
|
||||
1, // AT_CGDATA
|
||||
1 // AT_CGAUTH
|
||||
1, // AT_CGAUTH
|
||||
};
|
||||
|
||||
set_cellular_properties(cellular_properties);
|
||||
return get_property(AT_CGSN_WITH_TYPE);
|
||||
return get_property(PROPERTY_AT_CGSN_WITH_TYPE);
|
||||
}
|
||||
|
||||
bool check_supported()
|
||||
{
|
||||
return get_property(AT_CGDATA);
|
||||
return get_property(PROPERTY_AT_CGDATA);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -107,7 +110,10 @@ TEST_F(TestAT_CellularBase, test_AT_CellularBase_set_cellular_properties)
|
|||
ATHandler ah(&fh, eq, 0, ",");
|
||||
AT_CellularBase at(ah);
|
||||
|
||||
static const intptr_t cellular_properties[AT_CellularBase::CELLULAR_PROPERTY_MAX] = {
|
||||
static const intptr_t cellular_properties[AT_CellularBase::PROPERTY_MAX] = {
|
||||
AT_CellularNetwork::RegistrationModeDisable,// C_EREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_GREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_REG
|
||||
0, // AT_CGSN_WITH_TYPE
|
||||
1, // AT_CGDATA
|
||||
1 // AT_CGAUTH
|
||||
|
|
|
|||
|
|
@ -52,13 +52,6 @@ class my_AT_CN : public AT_CellularNetwork {
|
|||
public:
|
||||
my_AT_CN(ATHandler &atHandler) : AT_CellularNetwork(atHandler) {}
|
||||
virtual ~my_AT_CN() {}
|
||||
virtual AT_CellularNetwork::RegistrationMode has_registration(RegistrationType reg_type)
|
||||
{
|
||||
if (reg_type == C_GREG) {
|
||||
return RegistrationModeDisable;
|
||||
}
|
||||
return RegistrationModeEnable;
|
||||
}
|
||||
virtual nsapi_error_t set_access_technology_impl(RadioAccessTechnology op_rat)
|
||||
{
|
||||
return NSAPI_ERROR_OK;
|
||||
|
|
@ -69,13 +62,6 @@ class my_AT_CNipv6 : public AT_CellularNetwork {
|
|||
public:
|
||||
my_AT_CNipv6(ATHandler &atHandler) : AT_CellularNetwork(atHandler) {}
|
||||
virtual ~my_AT_CNipv6() {}
|
||||
virtual AT_CellularNetwork::RegistrationMode has_registration(RegistrationType reg_type)
|
||||
{
|
||||
if (reg_type == C_GREG) {
|
||||
return RegistrationModeDisable;
|
||||
}
|
||||
return RegistrationModeEnable;
|
||||
}
|
||||
virtual nsapi_error_t set_access_technology_impl(RadioAccessTechnology op_rat)
|
||||
{
|
||||
return NSAPI_ERROR_OK;
|
||||
|
|
@ -150,32 +136,32 @@ TEST_F(TestAT_CellularNetwork, test_AT_CellularNetwork_get_registration_params)
|
|||
ATHandler_stub::read_string_value = NULL;
|
||||
ATHandler_stub::ssize_value = 0;
|
||||
// Check get_registration_params without specifying the registration type
|
||||
EXPECT_TRUE(NSAPI_ERROR_OK == cn.get_registration_params(reg_params_check));
|
||||
EXPECT_TRUE(reg_params_check._status == CellularNetwork::RegistrationDenied);
|
||||
EXPECT_TRUE(reg_params_check._act == CellularNetwork::RAT_EGPRS);
|
||||
EXPECT_TRUE(reg_params_check._cell_id == 305463233);
|
||||
EXPECT_TRUE(reg_params_check._active_time == 240);
|
||||
EXPECT_TRUE(reg_params_check._periodic_tau == 70 * 60 * 60);
|
||||
ASSERT_EQ(NSAPI_ERROR_OK, cn.get_registration_params(reg_params_check));
|
||||
ASSERT_EQ(reg_params_check._status, CellularNetwork::RegistrationDenied);
|
||||
ASSERT_EQ(reg_params_check._act, CellularNetwork::RAT_EGPRS);
|
||||
ASSERT_EQ(reg_params_check._cell_id, 305463233);
|
||||
ASSERT_EQ(reg_params_check._active_time, 240);
|
||||
ASSERT_EQ(reg_params_check._periodic_tau, 70 * 60 * 60);
|
||||
|
||||
reg_params._status = CellularNetwork::NotRegistered;
|
||||
reg_params._act = CellularNetwork::RAT_GSM;
|
||||
reg_params._cell_id = 1;
|
||||
EXPECT_TRUE(NSAPI_ERROR_OK == cn.get_registration_params(CellularNetwork::C_GREG, reg_params));
|
||||
EXPECT_TRUE(reg_params._status == CellularNetwork::RegistrationDenied);
|
||||
EXPECT_TRUE(reg_params._act == CellularNetwork::RAT_EGPRS);
|
||||
EXPECT_TRUE(reg_params._cell_id == -1);
|
||||
ASSERT_EQ(NSAPI_ERROR_OK, cn.get_registration_params(CellularNetwork::C_REG, reg_params));
|
||||
ASSERT_EQ(reg_params._status, CellularNetwork::RegistrationDenied);
|
||||
ASSERT_EQ(reg_params._act, CellularNetwork::RAT_EGPRS);
|
||||
ASSERT_EQ(reg_params._cell_id, -1);
|
||||
|
||||
my_AT_CN nw(at);
|
||||
reg_params._status = CellularNetwork::NotRegistered;
|
||||
reg_params._act = CellularNetwork::RAT_GSM;
|
||||
|
||||
EXPECT_TRUE(NSAPI_ERROR_UNSUPPORTED == nw.get_registration_params(CellularNetwork::C_GREG, reg_params));
|
||||
EXPECT_TRUE(reg_params._status == CellularNetwork::NotRegistered);
|
||||
EXPECT_TRUE(reg_params._act == CellularNetwork::RAT_GSM);
|
||||
ASSERT_EQ(NSAPI_ERROR_UNSUPPORTED, nw.get_registration_params(CellularNetwork::C_GREG, reg_params));
|
||||
ASSERT_EQ(reg_params._status, CellularNetwork::NotRegistered);
|
||||
ASSERT_EQ(reg_params._act, CellularNetwork::RAT_GSM);
|
||||
|
||||
EXPECT_TRUE(NSAPI_ERROR_OK == nw.get_registration_params(CellularNetwork::C_EREG, reg_params));
|
||||
EXPECT_TRUE(reg_params._status == CellularNetwork::RegistrationDenied);
|
||||
EXPECT_TRUE(reg_params._act == CellularNetwork::RAT_EGPRS);
|
||||
ASSERT_EQ(NSAPI_ERROR_OK, nw.get_registration_params(CellularNetwork::C_EREG, reg_params));
|
||||
ASSERT_EQ(reg_params._status, CellularNetwork::RegistrationDenied);
|
||||
ASSERT_EQ(reg_params._act, CellularNetwork::RAT_EGPRS);
|
||||
|
||||
ATHandler_stub::nsapi_error_value = NSAPI_ERROR_DEVICE_ERROR;
|
||||
reg_params._status = CellularNetwork::NotRegistered;
|
||||
|
|
@ -184,15 +170,15 @@ TEST_F(TestAT_CellularNetwork, test_AT_CellularNetwork_get_registration_params)
|
|||
reg_params._active_time = 2;
|
||||
reg_params._periodic_tau = 3;
|
||||
|
||||
EXPECT_TRUE(NSAPI_ERROR_DEVICE_ERROR == cn.get_registration_params(CellularNetwork::C_EREG, reg_params));
|
||||
EXPECT_TRUE(reg_params._status == CellularNetwork::NotRegistered);
|
||||
EXPECT_TRUE(reg_params._act == CellularNetwork::RAT_UNKNOWN);
|
||||
ASSERT_EQ(NSAPI_ERROR_DEVICE_ERROR, cn.get_registration_params(CellularNetwork::C_EREG, reg_params));
|
||||
ASSERT_EQ(reg_params._status, CellularNetwork::NotRegistered);
|
||||
ASSERT_EQ(reg_params._act, CellularNetwork::RAT_UNKNOWN);
|
||||
EXPECT_TRUE(reg_params._cell_id == -1 && reg_params._active_time == -1 && reg_params._periodic_tau == -1);
|
||||
|
||||
EXPECT_TRUE(NSAPI_ERROR_DEVICE_ERROR == cn.get_registration_params(CellularNetwork::C_GREG, reg_params));
|
||||
EXPECT_TRUE(reg_params._status == CellularNetwork::NotRegistered);
|
||||
EXPECT_TRUE(reg_params._act == CellularNetwork::RAT_UNKNOWN);
|
||||
EXPECT_TRUE(reg_params._cell_id == -1);
|
||||
ASSERT_EQ(NSAPI_ERROR_DEVICE_ERROR, cn.get_registration_params(CellularNetwork::C_REG, reg_params));
|
||||
ASSERT_EQ(reg_params._status, CellularNetwork::NotRegistered);
|
||||
ASSERT_EQ(reg_params._act, CellularNetwork::RAT_UNKNOWN);
|
||||
ASSERT_EQ(reg_params._cell_id, -1);
|
||||
|
||||
reg_params._status = CellularNetwork::SearchingNetwork;
|
||||
reg_params._act = CellularNetwork::RAT_GSM;
|
||||
|
|
@ -304,63 +290,63 @@ TEST_F(TestAT_CellularNetwork, test_AT_CellularNetwork_set_registration_urc)
|
|||
AT_CellularNetwork cn(at);
|
||||
|
||||
CellularNetwork::RegistrationType type = CellularNetwork::C_EREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_OK == cn.set_registration_urc(type, true));
|
||||
ASSERT_EQ(NSAPI_ERROR_OK, cn.set_registration_urc(type, true));
|
||||
type = CellularNetwork::C_GREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_OK == cn.set_registration_urc(type, true));
|
||||
ASSERT_EQ(NSAPI_ERROR_UNSUPPORTED, cn.set_registration_urc(type, true));
|
||||
type = CellularNetwork::C_REG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_OK == cn.set_registration_urc(type, true));
|
||||
ASSERT_EQ(NSAPI_ERROR_OK, cn.set_registration_urc(type, true));
|
||||
|
||||
my_AT_CN nw(at);
|
||||
type = CellularNetwork::C_EREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_OK == nw.set_registration_urc(type, true));
|
||||
ASSERT_EQ(NSAPI_ERROR_OK, nw.set_registration_urc(type, true));
|
||||
type = CellularNetwork::C_GREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_UNSUPPORTED == nw.set_registration_urc(type, true));
|
||||
ASSERT_EQ(NSAPI_ERROR_UNSUPPORTED, nw.set_registration_urc(type, true));
|
||||
type = CellularNetwork::C_REG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_OK == nw.set_registration_urc(type, true));
|
||||
ASSERT_EQ(NSAPI_ERROR_OK, nw.set_registration_urc(type, true));
|
||||
|
||||
type = CellularNetwork::C_EREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_OK == cn.set_registration_urc(type, false));
|
||||
ASSERT_EQ(NSAPI_ERROR_OK, cn.set_registration_urc(type, false));
|
||||
type = CellularNetwork::C_GREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_OK == cn.set_registration_urc(type, false));
|
||||
ASSERT_EQ(NSAPI_ERROR_UNSUPPORTED, cn.set_registration_urc(type, false));
|
||||
type = CellularNetwork::C_REG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_OK == cn.set_registration_urc(type, false));
|
||||
ASSERT_EQ(NSAPI_ERROR_OK, cn.set_registration_urc(type, false));
|
||||
|
||||
type = CellularNetwork::C_EREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_OK == nw.set_registration_urc(type, false));
|
||||
ASSERT_EQ(NSAPI_ERROR_OK, nw.set_registration_urc(type, false));
|
||||
type = CellularNetwork::C_GREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_UNSUPPORTED == nw.set_registration_urc(type, false));
|
||||
ASSERT_EQ(NSAPI_ERROR_UNSUPPORTED, nw.set_registration_urc(type, false));
|
||||
type = CellularNetwork::C_REG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_OK == nw.set_registration_urc(type, false));
|
||||
ASSERT_EQ(NSAPI_ERROR_OK, nw.set_registration_urc(type, false));
|
||||
|
||||
|
||||
ATHandler_stub::nsapi_error_value = NSAPI_ERROR_DEVICE_ERROR;
|
||||
type = CellularNetwork::C_EREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_DEVICE_ERROR == cn.set_registration_urc(type, true));
|
||||
ASSERT_EQ(NSAPI_ERROR_DEVICE_ERROR, cn.set_registration_urc(type, true));
|
||||
type = CellularNetwork::C_GREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_DEVICE_ERROR == cn.set_registration_urc(type, true));
|
||||
ASSERT_EQ(NSAPI_ERROR_UNSUPPORTED, cn.set_registration_urc(type, true));
|
||||
type = CellularNetwork::C_REG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_DEVICE_ERROR == cn.set_registration_urc(type, true));
|
||||
ASSERT_EQ(NSAPI_ERROR_DEVICE_ERROR, cn.set_registration_urc(type, true));
|
||||
|
||||
type = CellularNetwork::C_EREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_DEVICE_ERROR == nw.set_registration_urc(type, true));
|
||||
ASSERT_EQ(NSAPI_ERROR_DEVICE_ERROR, nw.set_registration_urc(type, true));
|
||||
type = CellularNetwork::C_GREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_UNSUPPORTED == nw.set_registration_urc(type, true));
|
||||
ASSERT_EQ(NSAPI_ERROR_UNSUPPORTED, nw.set_registration_urc(type, true));
|
||||
type = CellularNetwork::C_REG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_DEVICE_ERROR == nw.set_registration_urc(type, true));
|
||||
ASSERT_EQ(NSAPI_ERROR_DEVICE_ERROR, nw.set_registration_urc(type, true));
|
||||
|
||||
type = CellularNetwork::C_EREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_DEVICE_ERROR == cn.set_registration_urc(type, false));
|
||||
ASSERT_EQ(NSAPI_ERROR_DEVICE_ERROR, cn.set_registration_urc(type, false));
|
||||
type = CellularNetwork::C_GREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_DEVICE_ERROR == cn.set_registration_urc(type, false));
|
||||
ASSERT_EQ(NSAPI_ERROR_UNSUPPORTED, cn.set_registration_urc(type, false));
|
||||
type = CellularNetwork::C_REG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_DEVICE_ERROR == cn.set_registration_urc(type, false));
|
||||
ASSERT_EQ(NSAPI_ERROR_DEVICE_ERROR, cn.set_registration_urc(type, false));
|
||||
|
||||
type = CellularNetwork::C_EREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_DEVICE_ERROR == nw.set_registration_urc(type, false));
|
||||
ASSERT_EQ(NSAPI_ERROR_DEVICE_ERROR, nw.set_registration_urc(type, false));
|
||||
type = CellularNetwork::C_GREG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_UNSUPPORTED == nw.set_registration_urc(type, false));
|
||||
ASSERT_EQ(NSAPI_ERROR_UNSUPPORTED, nw.set_registration_urc(type, false));
|
||||
type = CellularNetwork::C_REG;
|
||||
EXPECT_TRUE(NSAPI_ERROR_DEVICE_ERROR == nw.set_registration_urc(type, false));
|
||||
ASSERT_EQ(NSAPI_ERROR_DEVICE_ERROR, nw.set_registration_urc(type, false));
|
||||
}
|
||||
|
||||
TEST_F(TestAT_CellularNetwork, test_AT_CellularNetwork_set_attach)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
#include "nsapi_types.h"
|
||||
#include "AT_CellularBase_stub.h"
|
||||
|
||||
#include "AT_CellularNetwork.h"
|
||||
using namespace mbed;
|
||||
|
||||
ATHandler *AT_CellularBase_stub::handler_value = NULL;
|
||||
|
|
@ -43,5 +43,11 @@ device_err_t AT_CellularBase::get_device_error() const
|
|||
|
||||
intptr_t AT_CellularBase::get_property(CellularProperty key)
|
||||
{
|
||||
if (key == PROPERTY_C_GREG) {
|
||||
return AT_CellularNetwork::RegistrationModeDisable;
|
||||
} else if (key == PROPERTY_C_REG || key == PROPERTY_C_EREG) {
|
||||
return AT_CellularNetwork::RegistrationModeEnable;
|
||||
}
|
||||
|
||||
return AT_CellularBase_stub::supported_bool;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,11 +68,6 @@ nsapi_error_t AT_CellularNetwork::get_registration_params(registration_params_t
|
|||
return NSAPI_ERROR_OK;
|
||||
}
|
||||
|
||||
AT_CellularNetwork::RegistrationMode AT_CellularNetwork::has_registration(RegistrationType reg_type)
|
||||
{
|
||||
return RegistrationModeDisable;
|
||||
}
|
||||
|
||||
nsapi_error_t AT_CellularNetwork::set_attach()
|
||||
{
|
||||
return NSAPI_ERROR_OK;
|
||||
|
|
|
|||
|
|
@ -43,10 +43,13 @@ public:
|
|||
device_err_t get_device_error() const;
|
||||
|
||||
enum CellularProperty {
|
||||
AT_CGSN_WITH_TYPE, // 0 = not supported, 1 = supported. AT+CGSN without type is likely always supported similar to AT+GSN.
|
||||
AT_CGDATA, // 0 = not supported, 1 = supported. Alternative is to support only ATD*99***<cid>#
|
||||
AT_CGAUTH, // 0 = not supported, 1 = supported. APN authentication AT commands supported
|
||||
CELLULAR_PROPERTY_MAX
|
||||
PROPERTY_C_EREG, // AT_CellularNetwork::RegistrationMode. What support modem has for this registration type.
|
||||
PROPERTY_C_GREG, // AT_CellularNetwork::RegistrationMode. What support modem has for this registration type.
|
||||
PROPERTY_C_REG, // AT_CellularNetwork::RegistrationMode. What support modem has for this registration type.
|
||||
PROPERTY_AT_CGSN_WITH_TYPE, // 0 = not supported, 1 = supported. AT+CGSN without type is likely always supported similar to AT+GSN.
|
||||
PROPERTY_AT_CGDATA, // 0 = not supported, 1 = supported. Alternative is to support only ATD*99***<cid>#
|
||||
PROPERTY_AT_CGAUTH, // 0 = not supported, 1 = supported. APN authentication AT commands supported
|
||||
PROPERTY_MAX
|
||||
};
|
||||
|
||||
/** Cellular module need to define an array of cellular properties which defines module supported property values.
|
||||
|
|
|
|||
|
|
@ -289,7 +289,7 @@ nsapi_error_t AT_CellularContext::do_user_authentication()
|
|||
{
|
||||
// if user has defined user name and password we need to call CGAUTH before activating or modifying context
|
||||
if (_pwd && _uname) {
|
||||
if (!get_property(AT_CGAUTH)) {
|
||||
if (!get_property(PROPERTY_AT_CGAUTH)) {
|
||||
return NSAPI_ERROR_UNSUPPORTED;
|
||||
}
|
||||
_at.cmd_start("AT+CGAUTH=");
|
||||
|
|
@ -572,7 +572,7 @@ void AT_CellularContext::do_connect()
|
|||
nsapi_error_t AT_CellularContext::open_data_channel()
|
||||
{
|
||||
tr_info("CellularContext PPP connect");
|
||||
if (get_property(AT_CGDATA)) {
|
||||
if (get_property(PROPERTY_AT_CGDATA)) {
|
||||
_at.cmd_start("AT+CGDATA=\"PPP\",");
|
||||
_at.write_int(_cid);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ nsapi_error_t AT_CellularInformation::get_serial_number(char *buf, size_t buf_si
|
|||
return get_info("AT+CGSN", buf, buf_size);
|
||||
}
|
||||
|
||||
if (!get_property(AT_CGSN_WITH_TYPE)) {
|
||||
if (!get_property(PROPERTY_AT_CGSN_WITH_TYPE)) {
|
||||
return NSAPI_ERROR_UNSUPPORTED;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ AT_CellularNetwork::AT_CellularNetwork(ATHandler &atHandler) : AT_CellularBase(a
|
|||
_urc_funcs[C_REG] = callback(this, &AT_CellularNetwork::urc_creg);
|
||||
|
||||
for (int type = 0; type < CellularNetwork::C_MAX; type++) {
|
||||
if (has_registration((RegistrationType)type) != RegistrationModeDisable) {
|
||||
if (get_property((AT_CellularBase::CellularProperty)type) != RegistrationModeDisable) {
|
||||
_at.set_urc_handler(at_reg[type].urc_prefix, _urc_funcs[type]);
|
||||
}
|
||||
}
|
||||
|
|
@ -103,7 +103,7 @@ AT_CellularNetwork::~AT_CellularNetwork()
|
|||
_at.unlock();
|
||||
|
||||
for (int type = 0; type < CellularNetwork::C_MAX; type++) {
|
||||
if (has_registration((RegistrationType)type) != RegistrationModeDisable) {
|
||||
if (get_property((AT_CellularBase::CellularProperty)type) != RegistrationModeDisable) {
|
||||
_at.set_urc_handler(at_reg[type].urc_prefix, 0);
|
||||
}
|
||||
}
|
||||
|
|
@ -223,7 +223,7 @@ nsapi_error_t AT_CellularNetwork::set_registration_urc(RegistrationType type, bo
|
|||
int index = (int)type;
|
||||
MBED_ASSERT(index >= 0 && index < C_MAX);
|
||||
|
||||
RegistrationMode mode = has_registration(type);
|
||||
RegistrationMode mode = (RegistrationMode)get_property((AT_CellularBase::CellularProperty)type);
|
||||
if (mode == RegistrationModeDisable) {
|
||||
return NSAPI_ERROR_UNSUPPORTED;
|
||||
} else {
|
||||
|
|
@ -322,12 +322,6 @@ void AT_CellularNetwork::read_reg_params(RegistrationType type, registration_par
|
|||
#endif
|
||||
}
|
||||
|
||||
AT_CellularNetwork::RegistrationMode AT_CellularNetwork::has_registration(RegistrationType reg_type)
|
||||
{
|
||||
(void)reg_type;
|
||||
return RegistrationModeLAC;
|
||||
}
|
||||
|
||||
nsapi_error_t AT_CellularNetwork::set_attach()
|
||||
{
|
||||
_at.lock();
|
||||
|
|
@ -612,7 +606,7 @@ nsapi_error_t AT_CellularNetwork::get_registration_params(RegistrationType type,
|
|||
int i = (int)type;
|
||||
MBED_ASSERT(i >= 0 && i < C_MAX);
|
||||
|
||||
if (!has_registration(at_reg[i].type)) {
|
||||
if (!get_property((AT_CellularBase::CellularProperty)at_reg[i].type)) {
|
||||
return NSAPI_ERROR_UNSUPPORTED;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,6 +43,12 @@ public:
|
|||
// declare friend so it can access stack
|
||||
friend class AT_CellularDevice;
|
||||
|
||||
enum RegistrationMode {
|
||||
RegistrationModeDisable = 0,
|
||||
RegistrationModeEnable, // <stat>
|
||||
RegistrationModeLAC, // <stat>[,<[lac>,]<[ci>],[<AcT>],[<rac>]]
|
||||
};
|
||||
|
||||
public: // CellularNetwork
|
||||
|
||||
virtual nsapi_error_t set_registration(const char *plmn = 0);
|
||||
|
|
@ -92,18 +98,6 @@ public: // CellularNetwork
|
|||
|
||||
protected:
|
||||
|
||||
/** Check if modem supports given registration type.
|
||||
*
|
||||
* @param reg_type enum RegistrationType
|
||||
* @return mode supported on given reg_type as per 3GPP TS 27.007, 0 when unsupported
|
||||
*/
|
||||
enum RegistrationMode {
|
||||
RegistrationModeDisable = 0,
|
||||
RegistrationModeEnable, // <stat>
|
||||
RegistrationModeLAC, // <stat>[,<[lac>,]<[ci>],[<AcT>],[<rac>]]
|
||||
};
|
||||
virtual RegistrationMode has_registration(RegistrationType reg_type);
|
||||
|
||||
/** Sets access technology to be scanned. Modem specific implementation.
|
||||
*
|
||||
* @param op_rat Access technology
|
||||
|
|
|
|||
|
|
@ -94,7 +94,10 @@ GEMALTO_CINTERION::Module GEMALTO_CINTERION::get_module()
|
|||
void GEMALTO_CINTERION::init_module_bgs2()
|
||||
{
|
||||
// BGS2-W_ATC_V00.100
|
||||
static const intptr_t cellular_properties[AT_CellularBase::CELLULAR_PROPERTY_MAX] = {
|
||||
static const intptr_t cellular_properties[AT_CellularBase::PROPERTY_MAX] = {
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_EREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_GREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_REG
|
||||
0, // AT_CGSN_WITH_TYPE
|
||||
1, // AT_CGDATA
|
||||
1, // AT_CGAUTH
|
||||
|
|
@ -106,7 +109,10 @@ void GEMALTO_CINTERION::init_module_bgs2()
|
|||
void GEMALTO_CINTERION::init_module_els61()
|
||||
{
|
||||
// ELS61-E2_ATC_V01.000
|
||||
static const intptr_t cellular_properties[AT_CellularBase::CELLULAR_PROPERTY_MAX] = {
|
||||
static const intptr_t cellular_properties[AT_CellularBase::PROPERTY_MAX] = {
|
||||
AT_CellularNetwork::RegistrationModeDisable, // C_EREG
|
||||
AT_CellularNetwork::RegistrationModeEnable, // C_GREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_REG
|
||||
0, // AT_CGSN_WITH_TYPE
|
||||
1, // AT_CGDATA
|
||||
1, // AT_CGAUTH
|
||||
|
|
@ -118,7 +124,10 @@ void GEMALTO_CINTERION::init_module_els61()
|
|||
void GEMALTO_CINTERION::init_module_ems31()
|
||||
{
|
||||
// EMS31-US_ATC_V4.9.5
|
||||
static const intptr_t cellular_properties[AT_CellularBase::CELLULAR_PROPERTY_MAX] = {
|
||||
static const intptr_t cellular_properties[AT_CellularBase::PROPERTY_MAX] = {
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_EREG
|
||||
AT_CellularNetwork::RegistrationModeDisable, // C_GREG
|
||||
AT_CellularNetwork::RegistrationModeDisable, // C_REG
|
||||
1, // AT_CGSN_WITH_TYPE
|
||||
1, // AT_CGDATA
|
||||
1, // AT_CGAUTH
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@
|
|||
*/
|
||||
|
||||
#include "GEMALTO_CINTERION_CellularNetwork.h"
|
||||
#include "GEMALTO_CINTERION.h"
|
||||
|
||||
using namespace mbed;
|
||||
|
||||
|
|
@ -28,20 +27,6 @@ GEMALTO_CINTERION_CellularNetwork::~GEMALTO_CINTERION_CellularNetwork()
|
|||
{
|
||||
}
|
||||
|
||||
AT_CellularNetwork::RegistrationMode GEMALTO_CINTERION_CellularNetwork::has_registration(RegistrationType reg_type)
|
||||
{
|
||||
if (GEMALTO_CINTERION::get_module() == GEMALTO_CINTERION::ModuleEMS31) {
|
||||
return (reg_type == C_EREG) ? RegistrationModeLAC : RegistrationModeDisable;
|
||||
}
|
||||
if (GEMALTO_CINTERION::get_module() == GEMALTO_CINTERION::ModuleBGS2) {
|
||||
if (reg_type == C_GREG) {
|
||||
return RegistrationModeEnable;
|
||||
}
|
||||
return (reg_type == C_REG) ? RegistrationModeLAC : RegistrationModeDisable;
|
||||
}
|
||||
return (reg_type == C_REG || reg_type == C_GREG || reg_type == C_EREG) ? RegistrationModeLAC : RegistrationModeDisable;
|
||||
}
|
||||
|
||||
nsapi_error_t GEMALTO_CINTERION_CellularNetwork::set_access_technology_impl(RadioAccessTechnology opsAct)
|
||||
{
|
||||
_op_act = RAT_UNKNOWN;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ public:
|
|||
virtual ~GEMALTO_CINTERION_CellularNetwork();
|
||||
|
||||
protected:
|
||||
virtual RegistrationMode has_registration(RegistrationType reg_type);
|
||||
virtual nsapi_error_t set_access_technology_impl(RadioAccessTechnology opsAct);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -23,10 +23,13 @@
|
|||
using namespace mbed;
|
||||
using namespace events;
|
||||
|
||||
static const intptr_t cellular_properties[AT_CellularBase::CELLULAR_PROPERTY_MAX] = {
|
||||
static const intptr_t cellular_properties[AT_CellularBase::PROPERTY_MAX] = {
|
||||
AT_CellularNetwork::RegistrationModeDisable,// C_EREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_GREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_REG
|
||||
0, // AT_CGSN_WITH_TYPE
|
||||
0, // AT_CGDATA
|
||||
1 // AT_CGAUTH
|
||||
1, // AT_CGAUTH
|
||||
};
|
||||
|
||||
SARA4_PPP::SARA4_PPP(FileHandle *fh) : AT_CellularDevice(fh)
|
||||
|
|
|
|||
|
|
@ -27,11 +27,6 @@ SARA4_PPP_CellularNetwork::~SARA4_PPP_CellularNetwork()
|
|||
{
|
||||
}
|
||||
|
||||
AT_CellularNetwork::RegistrationMode SARA4_PPP_CellularNetwork::has_registration(RegistrationType reg_type)
|
||||
{
|
||||
return (reg_type == C_REG || reg_type == C_GREG) ? RegistrationModeLAC : RegistrationModeDisable;
|
||||
}
|
||||
|
||||
nsapi_error_t SARA4_PPP_CellularNetwork::set_access_technology_impl(RadioAccessTechnology opRat)
|
||||
{
|
||||
_op_act = RAT_CATM1;
|
||||
|
|
|
|||
|
|
@ -28,8 +28,6 @@ public:
|
|||
virtual ~SARA4_PPP_CellularNetwork();
|
||||
|
||||
protected:
|
||||
virtual RegistrationMode has_registration(RegistrationType rat);
|
||||
|
||||
virtual nsapi_error_t set_access_technology_impl(RadioAccessTechnology opRat);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -29,10 +29,13 @@
|
|||
using namespace events;
|
||||
using namespace mbed;
|
||||
|
||||
static const intptr_t cellular_properties[AT_CellularBase::CELLULAR_PROPERTY_MAX] = {
|
||||
static const intptr_t cellular_properties[AT_CellularBase::PROPERTY_MAX] = {
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_EREG
|
||||
AT_CellularNetwork::RegistrationModeDisable, // C_GREG
|
||||
AT_CellularNetwork::RegistrationModeDisable, // C_REG
|
||||
1, // AT_CGSN_WITH_TYPE
|
||||
1, // AT_CGDATA
|
||||
0 // AT_CGAUTH, BC95_AT_Commands_Manual_V1.9
|
||||
0, // AT_CGAUTH, BC95_AT_Commands_Manual_V1.9
|
||||
};
|
||||
|
||||
QUECTEL_BC95::QUECTEL_BC95(FileHandle *fh) : AT_CellularDevice(fh)
|
||||
|
|
|
|||
|
|
@ -28,11 +28,6 @@ QUECTEL_BC95_CellularNetwork::~QUECTEL_BC95_CellularNetwork()
|
|||
{
|
||||
}
|
||||
|
||||
AT_CellularNetwork::RegistrationMode QUECTEL_BC95_CellularNetwork::has_registration(RegistrationType reg_tech)
|
||||
{
|
||||
return (reg_tech == C_EREG) ? RegistrationModeLAC : RegistrationModeDisable;
|
||||
}
|
||||
|
||||
nsapi_error_t QUECTEL_BC95_CellularNetwork::set_access_technology_impl(RadioAccessTechnology opRat)
|
||||
{
|
||||
if (opRat != RAT_NB1) {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ public:
|
|||
|
||||
protected:
|
||||
virtual nsapi_error_t set_access_technology_impl(RadioAccessTechnology opRat);
|
||||
virtual RegistrationMode has_registration(RegistrationType reg_type);
|
||||
};
|
||||
} // namespace mbed
|
||||
#endif // QUECTEL_BC95_CELLULAR_NETWORK_H_
|
||||
|
|
|
|||
|
|
@ -31,10 +31,13 @@ using namespace events;
|
|||
|
||||
#define DEVICE_READY_URC "CPIN:"
|
||||
|
||||
static const intptr_t cellular_properties[AT_CellularBase::CELLULAR_PROPERTY_MAX] = {
|
||||
static const intptr_t cellular_properties[AT_CellularBase::PROPERTY_MAX] = {
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_EREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_GREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_REG
|
||||
0, // AT_CGSN_WITH_TYPE
|
||||
1, // AT_CGDATA
|
||||
1 // AT_CGAUTH, BC95_AT_Commands_Manual_V1.9
|
||||
1, // AT_CGAUTH, BC95_AT_Commands_Manual_V1.9
|
||||
};
|
||||
|
||||
QUECTEL_BG96::QUECTEL_BG96(FileHandle *fh) : AT_CellularDevice(fh)
|
||||
|
|
|
|||
|
|
@ -27,8 +27,18 @@ using namespace events;
|
|||
#define CONNECT_BUFFER_SIZE (1280 + 80 + 80) // AT response + sscanf format
|
||||
#define CONNECT_TIMEOUT 8000
|
||||
|
||||
static const intptr_t cellular_properties[AT_CellularBase::PROPERTY_MAX] = {
|
||||
AT_CellularNetwork::RegistrationModeDisable,// C_EREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_GREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_REG
|
||||
1, // AT_CGSN_WITH_TYPE
|
||||
1, // AT_CGDATA
|
||||
1, // AT_CGAUTH
|
||||
};
|
||||
|
||||
QUECTEL_UG96::QUECTEL_UG96(FileHandle *fh) : AT_CellularDevice(fh)
|
||||
{
|
||||
AT_CellularBase::set_cellular_properties(cellular_properties);
|
||||
}
|
||||
|
||||
QUECTEL_UG96::~QUECTEL_UG96()
|
||||
|
|
|
|||
|
|
@ -27,11 +27,6 @@ QUECTEL_UG96_CellularNetwork::~QUECTEL_UG96_CellularNetwork()
|
|||
{
|
||||
}
|
||||
|
||||
AT_CellularNetwork::RegistrationMode QUECTEL_UG96_CellularNetwork::has_registration(RegistrationType reg_type)
|
||||
{
|
||||
return (reg_type == C_REG || reg_type == C_GREG) ? RegistrationModeLAC : RegistrationModeDisable;
|
||||
}
|
||||
|
||||
nsapi_error_t QUECTEL_UG96_CellularNetwork::set_access_technology_impl(RadioAccessTechnology opRat)
|
||||
{
|
||||
_op_act = RAT_UNKNOWN;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ public:
|
|||
virtual ~QUECTEL_UG96_CellularNetwork();
|
||||
|
||||
protected:
|
||||
virtual RegistrationMode has_registration(RegistrationType rat);
|
||||
virtual nsapi_error_t set_access_technology_impl(RadioAccessTechnology opRat);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -23,10 +23,13 @@
|
|||
using namespace mbed;
|
||||
using namespace events;
|
||||
|
||||
static const intptr_t cellular_properties[AT_CellularBase::CELLULAR_PROPERTY_MAX] = {
|
||||
static const intptr_t cellular_properties[AT_CellularBase::PROPERTY_MAX] = {
|
||||
AT_CellularNetwork::RegistrationModeDisable,// C_EREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_GREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_REG
|
||||
0, // AT_CGSN_WITH_TYPE
|
||||
1, // AT_CGDATA
|
||||
0 // AT_CGAUTH
|
||||
0, // AT_CGAUTH
|
||||
};
|
||||
|
||||
TELIT_HE910::TELIT_HE910(FileHandle *fh) : AT_CellularDevice(fh)
|
||||
|
|
|
|||
|
|
@ -27,11 +27,6 @@ TELIT_HE910_CellularNetwork::~TELIT_HE910_CellularNetwork()
|
|||
{
|
||||
}
|
||||
|
||||
AT_CellularNetwork::RegistrationMode TELIT_HE910_CellularNetwork::has_registration(RegistrationType reg_type)
|
||||
{
|
||||
return (reg_type == C_REG || reg_type == C_GREG) ? RegistrationModeLAC : RegistrationModeDisable;
|
||||
}
|
||||
|
||||
nsapi_error_t TELIT_HE910_CellularNetwork::set_access_technology_impl(RadioAccessTechnology opRat)
|
||||
{
|
||||
_op_act = RAT_UNKNOWN;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ public:
|
|||
virtual ~TELIT_HE910_CellularNetwork();
|
||||
|
||||
protected:
|
||||
virtual RegistrationMode has_registration(RegistrationType rat);
|
||||
virtual nsapi_error_t set_access_technology_impl(RadioAccessTechnology opRat);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -24,10 +24,13 @@ using namespace mbed;
|
|||
using namespace events;
|
||||
|
||||
#ifdef TARGET_UBLOX_C030_R41XM
|
||||
static const intptr_t cellular_properties[AT_CellularBase::CELLULAR_PROPERTY_MAX] = {
|
||||
0, // AT_CGSN_WITH_TYPE
|
||||
1, // AT_CGDATA
|
||||
1 // AT_CGAUTH, BC95_AT_Commands_Manual_V1.9
|
||||
static const intptr_t cellular_properties[AT_CellularBase::PROPERTY_MAX] = {
|
||||
AT_CellularNetwork::RegistrationModeDisable,// C_EREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_GREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_REG
|
||||
0, // AT_CGSN_WITH_TYPE
|
||||
1, // AT_CGDATA
|
||||
1, // AT_CGAUTH, BC95_AT_Commands_Manual_V1.9
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -31,11 +31,6 @@ UBLOX_AT_CellularNetwork::~UBLOX_AT_CellularNetwork()
|
|||
}
|
||||
}
|
||||
|
||||
AT_CellularNetwork::RegistrationMode UBLOX_AT_CellularNetwork::has_registration(RegistrationType reg_type)
|
||||
{
|
||||
return (reg_type == C_REG || reg_type == C_GREG) ? RegistrationModeLAC : RegistrationModeDisable;
|
||||
}
|
||||
|
||||
nsapi_error_t UBLOX_AT_CellularNetwork::set_access_technology_impl(RadioAccessTechnology opRat)
|
||||
{
|
||||
switch (opRat) {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ public:
|
|||
|
||||
protected:
|
||||
virtual nsapi_error_t set_access_technology_impl(RadioAccessTechnology opRat);
|
||||
virtual RegistrationMode has_registration(RegistrationType rat);
|
||||
};
|
||||
|
||||
} // namespace mbed
|
||||
|
|
|
|||
|
|
@ -24,10 +24,13 @@ using namespace mbed;
|
|||
using namespace events;
|
||||
|
||||
#ifdef TARGET_UBLOX_C027
|
||||
static const intptr_t cellular_properties[AT_CellularBase::CELLULAR_PROPERTY_MAX] = {
|
||||
static const intptr_t cellular_properties[AT_CellularBase::PROPERTY_MAX] = {
|
||||
AT_CellularNetwork::RegistrationModeDisable,// C_EREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_GREG
|
||||
AT_CellularNetwork::RegistrationModeLAC, // C_REG
|
||||
0, // AT_CGSN_WITH_TYPE
|
||||
1, // AT_CGDATA
|
||||
1 // AT_CGAUTH, BC95_AT_Commands_Manual_V1.9
|
||||
1, // AT_CGAUTH, BC95_AT_Commands_Manual_V1.9
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -27,11 +27,6 @@ UBLOX_PPP_CellularNetwork::~UBLOX_PPP_CellularNetwork()
|
|||
{
|
||||
}
|
||||
|
||||
AT_CellularNetwork::RegistrationMode UBLOX_PPP_CellularNetwork::has_registration(RegistrationType reg_type)
|
||||
{
|
||||
return (reg_type == C_REG || reg_type == C_GREG) ? RegistrationModeLAC : RegistrationModeDisable;
|
||||
}
|
||||
|
||||
nsapi_error_t UBLOX_PPP_CellularNetwork::set_access_technology_impl(RadioAccessTechnology opRat)
|
||||
{
|
||||
_op_act = RAT_UNKNOWN;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ public:
|
|||
virtual ~UBLOX_PPP_CellularNetwork();
|
||||
|
||||
protected:
|
||||
virtual RegistrationMode has_registration(RegistrationType rat);
|
||||
virtual nsapi_error_t set_access_technology_impl(RadioAccessTechnology opRat);
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue