-
Notifications
You must be signed in to change notification settings - Fork 3k
Merge feature cellular refactor #9568
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Moved methods to classes CellularDevice and CellularInformation. SIM interface was removed to simplify cellular usage and methods better suite new classes. Updated greentea and unit tests.
-added an API for checking network eps ciot optimization support -renamed the API for getting the UE parameters -the API for setting the UE parameters includes now a callback, which will be called once network support for eps ciot optimization is known
After this change we were able to change methods ATHandler::set_urc_handler and CellularDevice::set_ready_cb to void and simplify error handling.
This change enables removing function has_registration from class AT_CellularNetwork and all targets inheriting AT_CellularNetwork.
After AT_CellularNetwork::has_registration was replaced with CellularProperties and better AT_CellularNetwork::set_access_technology_impl default implementation we can delete most of the target specific classes that inherit AT_CellularNetwork.
Change usage of AT_CellularContext::stack_type_supported to AT_CellularBase::get_property. This way we can rid of targets overriding stack_type_supported and delete unnecessary classes and simplify new targets.
Generic cellular module (GENERIC_AT3GPP) can by used as a default module when porting new cellular module. It's a good starting point and eases porting of new modules. GENERIC_AT3GPP uses only standard 3GPP AT commands when communicating with the modem.
_sim_pin was changed to pointer from array and length was checked with strlen. If _sim_pin was null it caused crash. Fix by checking _sim_pin against NULL. Power class could have been called without checking if power is NULL. Fix by checking that power class is not null. Fix state machine to return correct states when queried.
Hi @bulislaw, This is mandatory change needed for cellular stack, without this we cannot for example support upcoming multihoming requirement. This change has been widely discussed internally including Product management, PE team and Cellular team and we have created a list of changes we are about to do. @AriParkkila please make sure that all stakeholders will get the list of changes! |
CI started. |
PR opened on 5:30am Jan 31st, @bulislaw Would you be interested in being a maintainer, or was the rapid response just a coincidense? 😄 |
Test run: SUCCESSSummary: 12 of 12 test jobs passed |
@AriParkkila Please can you write release notes section following this ARMmbed/mbed-os-5-docs#933 (will be integrated soon) - edit the first comment (introduction of PR, adding new release notes section) and let us know once updated |
@0xc0170 please see Release Notes |
We need approval from @AnttiKauppila |
@bulislaw do you think we can continue with merging this PR now? |
starting CI |
Why was |
Test run: SUCCESSSummary: 12 of 12 test jobs passed |
Merge? |
Description
Merge the feature-cellular-refactor branch to mbed-os/master.
This is a breaking change and needed due to without this cellular stack cannot for example support upcoming multihoming requirement, see a comment below.
Pull request type
Reviewers
Release Notes
This PR has impact on cellular application development and porting of new cellular devices.
Application developers need to select the suitable NetworkInterface type. When using NetworkInterface NSAPI configuration defines are applied by default, see NSAPI configuration options for cellular in more details.
CellularBase
users have a new functionset_default_parameters
to apply NSAPI configuration options.CellularContext
is to be used instead ofCellularBase
for new extended cellular functionality, such as NonIP sockets and EPS CP optimization...Migration guidelines for application developers:
CELLULAR_DEVICE
macro toget_default_instance
OnboardCellularInterface
orEasyCellularConnection
toCellularContext
CellularDevice::set_data_carrier_detect
to set HUP signal detectionCellular API changes need to be taken into account when porting new cellular devices. This PR already contains the changes needed for the existing cellular drivers and the onboard modems. Arm has an internal ticket to update the cellular porting documentation for Mbed OS 5.12.
Migration guidelines for porting developers:
GENERIC_AT3GPP
implementation when porting new AT based cellular devicespower_on/off
to onboard_modem_api withsoft_power_on/off
andhard_power_on/off
CellularSIM
andCellularPower
toCellularInformation
andCellularDevice
CellularDevice::init
andCellularDevice::shutdown
CellularNetwork::get_signal_quality
instead ofCellularNetwork::get_extended_signal_quality