Commit Graph

467 Commits (ac7389de587d7cd0f8a63d3896f7f20a5653962c)

Author SHA1 Message Date
Ari Parkkila 50ab644380 Cellular: Fix to not use all zero address for DNS 2019-12-16 04:56:45 -08:00
Ari Parkkila 483c557f9b Cellular: Fix AT command for COPS manual network selection 2019-12-12 00:31:43 -08:00
Antti Kauppila 35c2b60800 Coverity fix for ATHAndler
Unneeded NULL check removed
2019-12-11 09:25:29 +02:00
Antti Kauppila e221ba9bb9 initialisation added for _property_array 2019-12-09 15:25:22 +02:00
Antti Kauppila 30ea858f51 Disable APN lookup by default 2019-12-09 15:25:22 +02:00
Antti Kauppila 90d3dc1f13 CellularStack fixed 2019-12-09 15:25:22 +02:00
Antti Kauppila e51230c5e4 Remove CellularBase and AT_CellularBase
Removed CellularBase and AT_CellularBase from cellular stack and updated both code and unittests accordingly.

Moved property handling into AT_CellularDevice
2019-12-09 15:25:22 +02:00
Martin Kojtal e4e6ac5bd6
Merge pull request #12008 from AriParkkila/cell-at-string-fix
Cellular: Fix ATHandler string handling
2019-12-03 15:52:39 +01:00
Ari Parkkila c22dd77f42 Cellular: Fix ATHandler string handling 2019-12-03 03:21:13 -08:00
Martin Kojtal ffdd54315f
Merge pull request #11941 from michalpasztamobica/remove_internal_string_apis
Remove string-based API usage within mbed-os
2019-11-28 14:26:03 +01:00
Michal Paszta ea04c4f85e Remove internal usage of deprecated APIs in IPCore
Updated:
* netsocket classes,
* unittests, stubs and mocks,
* greentea tests
2019-11-27 20:02:20 +02:00
Martin Kojtal 9974d831fe
Merge pull request #11949 from ARMmbed/acabarbaye-patch-1
Fix for ARMC5 compilation errors for some targets
2019-11-27 13:12:14 +01:00
Martin Kojtal 58d6f5f39f
Merge pull request #11873 from AnttiKauppila/disable_sms
Make SMS configurable in Cellular stack
2019-11-27 09:03:55 +01:00
Adrien CABARBAYE de57ba8b50
Fix for ARMC5 compilation errors for some targets
the following compilation error is seen for a number of targets when compiling using ARMC5
`tools.utils.ToolException: "./mbed-os/features/cellular/framework/AT/AT_CellularContext.cpp", line 247: Error:  #20: identifier "sprintf" is undefined`

Failing command:
> 5.06u6/bin/armcc -c --gnu -Ospace --split_sections --apcs=interwork --brief_diagnostics --restrict --multibyte_chars -O3 -DMBED_TRAP_ERRORS_ENABLED=1 --cpu=Cortex-M4.fp.sp --md --no_depend_system_headers --c99 -D__ASSERT_MSG --cpp11 --no_rtti --no_vla -DDEVICE_SERIAL_ASYNCH=1 -D__MBED__=1 -D__CORTEX_M4 -DTOOLCHAIN_ARM -DMBED_BUILD_TIMESTAMP=1574735332.2275832 -DTARGET_RELEASE -DTARGET_GigaDevice -DDEVICE_SERIAL_FC=1 -DARM_MATH_CM4 -DTARGET_LIKE_MBED -DTARGET_GD32E10X -D__FPU_PRESENT=1 -DTARGET_GD32_Target -DTARGET_M4 -DDEVICE_RTC=1 -DDEVICE_INTERRUPTIN=1 -DCOMPONENT_PSA_SRV_EMUL=1 -D__CMSIS_RTOS -DTOOLCHAIN_ARMC5 -DDEVICE_SPISLAVE=1 -DTARGET_GD32_E103VB -DTARGET_CORTEX -DDEVICE_PORTIN=1 -DDEVICE_ANALOGOUT=1 -DDEVICE_I2C=1 -DDEVICE_ANALOGIN=1 -DDEVICE_FLASH=1 -DDEVICE_SLEEP=1 -DCOMPONENT_NSPE=1 -DDEVICE_SERIAL=1 -DDEVICE_PORTOUT=1 -DTARGET_GD32E103VB -DDEVICE_CAN=1 -DTARGET_NAME=GD32_E103VB -DTARGET_CORTEX_M -D__MBED_CMSIS_RTOS_CM -DDEVICE_PWMOUT=1 -DTARGET_FF_ARDUINO -DGD32E10X -DDEVICE_USTICKER=1 -DTARGET_RTOS_M4_M7 -DDEVICE_PORTINOUT=1 -DTOOLCHAIN_ARM_STD -DCOMPONENT_PSA_SRV_IMPL=1 -DDEVICE_SPI=1 -DTARGET_LIKE_CORTEX_M4 -DDEVICE_I2CSLAVE=1 --preinclude=./BUILD/GD32_E103VB/ARMC5/mbed_config.h --via ./BUILD/GD32_E103VB/ARMC5/.includes_022feb5c2e44b9896df9a82c69438bc9.txt --depend BUILD/GD32_E103VB/ARMC5/mbed-os/features/cellular/framework/AT/AT_CellularContext.d -o BUILD/GD32_E103VB/ARMC5/mbed-os/features/cellular/framework/AT/AT_CellularContext.o ./mbed-os/features/cellular/framework/AT/AT_CellularContext.cpp
[Error] AT_CellularContext.cpp@247,0:  #20: identifier "sprintf" is undefined
2019-11-26 15:05:52 +00:00
Ari Parkkila adba109de6 Cellular: Replace CellularSocket.rx_avail with pending_bytes
CellularSocket::rx_avail can be refactored away as
it is a duplicate to CellularSocket::pending_bytes.
2019-11-25 21:49:17 -08:00
Antti Kauppila 353782bf63 Disable SMS by default from Cellular stack
Put SMS behind configuration flag to save some memory (4,5kB) for Cellular users not needing SMS features.
UBlox N2XX target is also updated
2019-11-25 11:38:06 +02:00
Michal Paszta fd5b4b9119 Deprecate string-based APIs in IPCore
MBED_DEPRECATE macros is added to string-based APIs.
New, non-string-based APIs are added in their place.
Wiced binaries rebuilt
Any existing stubs or mocks are adjusted to compile and run with the newly added non-string based functions.
2019-11-22 11:31:12 +02:00
Antti Kauppila 8aac93a593 ATHandler build warning fixed 2019-11-13 09:38:02 +02:00
Martin Kojtal 18d4adf04f
Merge pull request #11719 from wajahat-ublox/echo_fix
Ensure modem echo is off before sending other AT commands
2019-11-04 15:56:12 +01:00
Mirela Chirica c484fc88f9 Cellular: Added set routine for baud rate 2019-11-01 17:21:31 +02:00
Martin Kojtal 3c9853af61
Merge pull request #11754 from mirelachirica/athandler_write_hex_string
Cellular: Added write_hex_string to AT handler
2019-10-29 10:00:46 +01:00
Mirela Chirica beeccbe52c Cellular: Added write_hex_string to AT handler 2019-10-28 10:34:05 +02:00
Wajahat Abbas c5f164d75f Ensure modem echo is off 2019-10-21 15:02:08 +05:00
Martin Kojtal 19606710e6
Merge pull request #11630 from kivaisan/move_is_connected_as_protected
Cellular: Change visibility of _is_connected as protected
2019-10-16 15:58:50 +08:00
Anna Bridge ad891d9658
Merge pull request #11548 from AriParkkila/cell-dns-ip
Cellular: Fix resolving of DNS server IPv4/6 address
2019-10-07 16:46:47 +01:00
Kimmo Vaisanen 1279c20ce6 Cellular: Change visibility of _is_connected as protected
AT_CellularContext::do_connect() is a virtual API and therefore can be overwritten in
inherited class. The problem was that it sets AT_CellularContext::_is_connected flag but
earlier it was set as private member making it impossible to set in overwritten do_connect()
method.

This commit fixes the problem by changing _is_connected as protected enabling its use
in inherited class.
2019-10-04 10:29:56 +03:00
Anna Bridge eeb033f814
Merge pull request #11357 from kivaisan/offloaded_tlssocket_bg96
Offloaded TLSSocket and BG96 support for it
2019-10-03 11:54:32 +01:00
Martin Kojtal 31114ba343
Merge pull request #11598 from JanneKiiskila/AT_Cell_err_warn
AT_CellularDevice.cpp - unused variable err warning
2019-10-01 13:35:03 +02:00
Martin Kojtal 828fd2378a
Merge pull request #11581 from AriParkkila/cell-pdp-cid
Cellular: Fix setting of PDP context ID (cid)
2019-10-01 13:32:47 +02:00
Janne Kiiskila 55f6518853 AT_CellularDevice.cpp - unused variable err warning
We get this compiler warning;

Compile [  7.9%]: AT_CellularDevice.cpp
[Warning] AT_CellularDevice.cpp@206,18: variable 'err' set but not used [-Wunused-but-set-variable]

Due to the fact, that the code that would actually use this variable
is behind trace flags. Based on review feedback from Antti Kauppila and
Kimmo Väisänen, adding same flagging also for that.
- Reason being - the operation needs to be within the locks.
2019-09-30 17:11:23 +03:00
Mirela Chirica 0860f3e0f6 Cellular: Removed not used variable 2019-09-30 14:14:37 +03:00
Mirela Chirica 865a504542 Cellular: Include of errno.h needed for Mac OS X 2019-09-30 14:14:37 +03:00
Ari Parkkila e449e6dcdc Cellular: Fix setting of PDP context ID (cid) 2019-09-27 02:09:36 -07:00
Ari Parkkila 8054b8eef8 Cellular: Fix resolving of DNS server IPv4/6 address 2019-09-25 03:16:45 -07:00
Kimmo Vaisanen 6ba0efc969 Cellular: Use more specific error codes for socket open and connect
- When calling socket APIs when socket is not open, NSAPI_ERROR_NO_SOCKET will be
  returned instead of generic NSAPI_ERROR_DEVICE_ERROR

- If socket_send() is called when connection is not open, NSAPI_ERROR_NO_CONNECTION
  will be returned instead of generic NSAPI_ERROR_DEVICE_ERROR
2019-09-25 09:25:33 +03:00
Kimmo Vaisanen b319be14e8 Offloaded TLSSocket for BG96
Some external modems have an internal TLSSocket implementation which can be used
instead of mbedtls based TLSSocket. Using offloaded TLSSocket can result in
significantly reduced ROM usage.

Offloaded TLSSocket can be enabled by enabling "nsapi.offload-tlssocket" and the used
network stack (e.g. cellular modem's CellularStack class) must support the setsockopt's
defined in nsapi_types.h.

Compared to original mbedtls based TLSSocket, offloaded TLSSocket brings in one significant
API limitation. Offloaded TLSSocket requires setting of certificates and keys after open()
and before connect() calls, where mbedtls based TLSSocket allows setting these before open()
call.
2019-09-25 09:25:33 +03:00
Martin Kojtal 1afece7f1b
Merge pull request #11488 from kivaisan/fix_cellular_get_interface_name
Cellular: Fix get_interface_name to not include leading zero
2019-09-19 12:43:45 +02:00
Ari Parkkila 823993e7b1 Cellular: Add flow control (IFC) in BG96 AT driver 2019-09-16 03:16:36 -07:00
Kimmo Vaisanen ab71b2dba8 Cellular: Fix get_interface_name to not include leading zero
Multihoming documentation about interface name:
"Two character name string is concatenated with 8 bit value containing index which is incremented on each netif addition"

Cellular uses context id as index and to follow LWIP (LWIP::Interface::get_interface_name), index does not include leading zeros.
2019-09-16 09:59:31 +03:00
Martin Kojtal 66c39e0bca
Merge pull request #11424 from mirelachirica/stack_type_ip_versions
Stack type ip versions
2019-09-13 11:46:06 +02:00
Mirela Chirica 7aaaae121e Cellular: IP stack property redefined 2019-09-12 12:56:28 +03:00
Mirela Chirica b44ba531a1 Cellular: Check IP version of send to address 2019-09-12 12:56:28 +03:00
Mirela Chirica ea1b2b8045 Cellular: Stack type based on assigned IP addresses versions 2019-09-12 12:55:33 +03:00
Ari Parkkila 94dcab9d69 Cellular: Add API to clear CellularDevice
A new API `CellularDevice::clear()` to clean-up the modem to a default initial state.
Function is virtual so it can be overridden. The default implementation clears all PDP contexts,
but the the first one if that has APN defined as `nsapi.default-cellular-apn`.

CellularStateMachine calls `clear()` to clean-up the modem on initial `connect()`,
if the flag `cellular.clear-on-connect: true` is defined.
2019-09-09 06:14:20 -07:00
Martin Kojtal 978296a26d
Merge pull request #11372 from AriParkkila/bg96-pwr
Cellular: Fix BG96 power on and connect
2019-09-05 13:10:26 +02:00
Martin Kojtal 0427bb7469
Merge pull request #11396 from gpsimenos/remove-sms-floats
Remove floating point from AT_CellularSMS
2019-09-05 11:12:17 +02:00
Martin Kojtal 567479792c
Merge pull request #11392 from hugueskamba/hk-remove-minor-warnings
Remove minor build warnings
2019-09-05 09:59:39 +02:00
Ari Parkkila cb20277701 Cellular: Fix BG96 power on and connect 2019-09-04 03:24:11 -07:00
Martin Kojtal aba0760652
Merge pull request #10684 from jarvte/fix_athandler_destr
Cellular: fix ATHandler destructor possible crash on delete
2019-09-04 11:52:59 +02:00
Hugues Kamba 8c22bbbbc8 Use PRIu32 to print uint32_t variable
As the variable underlying type size is different depending on the
toolchain used
2019-09-03 09:29:06 +01:00
Teppo Järvelin 753ba8ceb6 Cellular: fix ATHandler destructor possible crash on delete
In some multithread cases there is possibility that process_oob function
was called after ATHandler was deleted. Fix is to wait if oob processing
is ongoing.
2019-09-03 09:09:05 +03:00
George Psimenos 93cebc189c Avoid potential overflow 2019-09-02 15:48:30 +01:00
Hugues Kamba e65a0c0a99 Remove minor build warnings 2019-09-02 15:04:58 +01:00
George Psimenos 4df70449fe Replace difftime and float literals 2019-09-02 14:56:56 +01:00
Martin Kojtal 39733cbc0b
Merge pull request #11306 from AnttiKauppila/ATHandler_improvements
At handler improvements
2019-09-02 12:08:44 +02:00
Martin Kojtal de627dad6a Merge branch 'read-int-zero' of git://github.com/dextero/mbed-os into dev_rollup 2019-08-28 18:37:46 +01:00
Antti Kauppila d08d55da88 New ATHandler functions taken into use
New ATHandler functions taken into use for rest of the targets (BG96 was updated initially) to reduce code size. This means basically that new functions using variadic list approach are taken into use and with those one can usually write AT commands in single line instead of multiple lines.
Only internal changes and API's are not modified.
2019-08-27 09:15:51 +03:00
Martin Kojtal a1540c5f77
Merge pull request #11245 from dextero/8bit-sms
AT_CellularSMS: allow configuring SMS encoding (7-bit/8-bit) at initialization
2019-08-23 13:51:59 +02:00
Martin Kojtal 5c09ff12ac
Merge pull request #11220 from jarvte/fix_cellular_dns_test
Fix cellular dns test with IAR compiled binary
2019-08-22 10:57:22 +02:00
Martin Kojtal 0b49952b9e
Merge pull request #11249 from dextero/get-sms-zero
Make AT_CellularSMS::list_messages support index 0 in SMS inbox
2019-08-20 10:27:57 +02:00
Martin Kojtal 9ccfe49d12
Merge pull request #11247 from dextero/international-numbers
AT_CellularSMS: set "international" flag in PDU when applicable
2019-08-20 10:27:13 +02:00
Martin Kojtal b849bc1e3d
Merge pull request #11201 from mirelachirica/bug_virtual_in_constructor
Cellular: Fixed improper AT handler setup through virtual calls in co…
2019-08-20 09:52:28 +02:00
Martin Kojtal a5a2036c65
Merge pull request #11224 from AnttiKauppila/Coverity_fixes
Coverity issues fixed
2019-08-20 09:40:20 +02:00
Marcin Radomski 17f6f1c0e3 Make AT_CellularSMS support index 0 in SMS inbox
When AT+CGML is used to retrieve list of SMS stored in modem inbox,
every message has an associated index. ETSI TS 127 005 v7.0.0 does not
specify what is the allowed range of such indices - all it says is
"integer type; value in the range of location numbers supported by the
associated memory".

Usually, AT modems use positive indexes (starting at 1). Quectel BG96
modem takes a different approach, indexing messages starting at 0.

Current implementation of `AT_CellularSMS::list_messages()` considers
index 0 invalid and ignores such message, effectively making it
impossible to access using mbed-os API.

This commit changes the behavior so that value of 0 is handled as any
other positive message index.
2019-08-16 14:19:29 +02:00
Marcin Radomski 726eace763 Do not fail on trailing data in read_int
Some tests depend on that behavior.
2019-08-16 14:14:58 +02:00
Marcin Radomski c0032c9055 ATHandler::read_int: allow returning 0 successfully 2019-08-16 14:14:58 +02:00
Marcin Radomski 2bfa4e9b8d AT_CellularSMS: set "international" flag in PDU when applicable
Currently, create_pdu receives a destination address without '+' prefix,
and always sets the "type of address" to "unknown". That means, the
number needs to contain appropriate international number prefix (00/011)
if necessary - which is not the case if the leading + is simply
stripped.

This changes send_sms behavior so that when a SMS is sent to an
international number (indicated by leading +):

- AT+CMGS command receives the number with + prefix,
- created PDU has the "international" flag set.
2019-08-16 13:30:59 +02:00
Marcin Radomski f3e9501ac6 Increase PDU buffer size to fit 8-bit-encoded hex string 2019-08-16 13:20:37 +02:00
Marcin Radomski 14f8d15242 Add option to set up SMS encoding 2019-08-16 12:24:54 +02:00
Mirela Chirica 75c823c1a3 Cellular: Fixed improper AT handler setup through virtual calls in constructor
Added AT handler setup method to be used for initialisation routines
that are virtual and therefore cannot be called from constructor.
2019-08-16 10:57:37 +03:00
Anna Bridge 2af2b1b18b
Merge pull request #11190 from jarvte/fix_wise1570_netsocket_tests
Cellular: failure when deleting created context is not considered error
2019-08-15 12:58:32 +01:00
Anna Bridge 797e58a2b3
Merge pull request #11148 from AriParkkila/cell-sim-pin
Cellular: Fix SIM pin enter command
2019-08-15 12:49:24 +01:00
Antti Kauppila 84063bf222 Coverity issues fixed 2019-08-14 16:22:05 +03:00
Teppo Järvelin 6a17d74b55 Cellular: notify global up after we have IP address
CellularContext now tries to get an IP address after connect and before
sending NSAPI_STATUS_GLOBAL_UP. Even if we don't the IP address from
the modem we will send NSAPI_STATUS_GLOBAL_UP and return success.
Modem has an ip address but for some reason some modems don't
give it to us.
2019-08-14 12:54:13 +03:00
Teppo Järvelin 3c1bf0a9e2 Cellular: moved string_to_pdp_type from AT_CellularContext to CellularUtil
string_to_pdp_type is a common method for AT and other layers.
Without moving there will be duplicate methods.
2019-08-12 10:27:57 +03:00
Teppo Järvelin 10251ab3b2 Cellular: failure when deleting created context is not considered as an error
If delete fails there is nothing we or application can do. There is no point
returning an error for this. This affects to AT_CellularContext::disconnect
not returning an error if context delete fails.
2019-08-09 12:27:25 +03:00
Seppo Takalo 976c30c52b
Merge pull request #11162 from AriParkkila/cell-dns
Add DNS servers from cellular PDP to nsapi
2019-08-07 14:06:49 +03:00
Seppo Takalo 46a56fb47b
Merge pull request #11154 from AriParkkila/cell-shutdown-stm
Cellular API shutdown to stop state machine
2019-08-06 11:34:44 +03:00
Ari Parkkila e1124668db Cellular: Add DNS servers from PDP contexts to nsapi_dns 2019-08-05 21:53:24 -07:00
Ari Parkkila ed3562e764 Cellular: Fix shutdown to stop statemachine 2019-08-02 02:26:12 -07:00
Ari Parkkila cbe2b50a32 Cellular: Fix SIM pin enter command 2019-08-01 03:46:33 -07:00
Mirela Chirica 341cc2be03 Cellular: Remove unnecessary local variables 2019-08-01 13:26:05 +03:00
Ari Parkkila ac78b5ab16 Cellular: Fix to delete context just once 2019-07-23 03:04:24 -07:00
Kevin Bracey a522dcfa0a Replace deprecated wait calls 2019-07-15 10:13:50 +03:00
Kevin Bracey fc8e8f67c6 Deprecate wait/wait_ms APIs 2019-07-15 10:13:50 +03:00
Kevin Bracey 607856ee9a Set unit tests to C++14
Adjust some non-C++11-compatible code that failed as a result.
2019-07-09 19:08:57 +03:00
Martin Kojtal eadc799584
Merge pull request #10919 from jeromecoutant/PR_AT_MUTEX
AT Cellular Network: mutex lock issue
2019-07-05 09:03:07 +01:00
Antti Kauppila c315672413 Doubled ATHandler's BUFF_SIZE 2019-07-02 10:17:06 +03:00
Martin Kojtal d2c73f2bcd
Merge pull request #10842 from ghseb/cellular-stack-type-fixes
Cellular: Stack type fixes
2019-07-01 09:23:21 +01:00
jeromecoutant 758a4bb56a AT Cellular Network: mutex lock issue 2019-06-28 16:08:52 +02:00
Tero Jääskö bae3043e92 cellular: AT: fix build on ARMCC5
ARMC5 failed to compile the code with debug-profile (!!) as va_list
is getting into std:: namespace when one includes <cstdarg>. Other
compilers seem to be more relaxed, and so is ARMC5 if compiled
with other profiles.

Add the explicit std:: to references of va_list.

While here, remove one extra copy of "#include "PlatformMutex.h""
and a "#include <stdarg.h>" which is kind of duplicate of
"#include <cstdarg>".

Error being fixed:
--8<--8<--8<--
Compile [ 81.8%]: ATHandler.cpp
[Error] ATHandler.h@552,0:  #20: identifier "va_list" is undefined
[Error] ATHandler.cpp@1226,0:  #147: declaration is incompatible with "void mbed::ATHandler::handle_args(const char *, <error-type>)"  (declared at line 552 of "./mbed-os/features/cellular/framework/AT/ATHandler.h")
[ERROR] "./mbed-os/features/cellular/framework/AT/ATHandler.h", line 552: Error:  #20: identifier "va_list" is undefined
"./mbed-os/features/cellular/framework/AT/ATHandler.cpp", line 1226: Error:  #147: declaration is incompatible with "void mbed::ATHandler::handle_args(const char *, <error-type>)"  (declared at line 552 of "./mbed-os/features/cellular/framework/AT/ATHandler.h")
./mbed-os/features/cellular/framework/AT/ATHandler.cpp: 0 warnings, 2 errors
2019-06-26 19:58:34 +03:00
Martin Kojtal 34eefb49fa
Merge pull request #10858 from LMESTM/fix_cellular_properties
Check Cellular Properties have been set
2019-06-25 10:58:23 +01:00
Martin Kojtal 13081a21ab
Merge pull request #10808 from mirelachirica/bg96_pdpdeact
Cellular: Added handling for BG96 network PDP context deactivation
2019-06-24 11:23:40 +01:00
Laurent Meunier 3286472de9 Check Properties have been set 2019-06-20 09:23:48 +02:00
Anna Bridge 37640301e0
Merge pull request #10812 from jarvte/fix_multiple_urc_athander
Cellular: fix athandler to use correct timeout in case of multiple urc's
2019-06-19 15:03:36 +01:00
Anna Bridge 6000724de6
Merge pull request #10703 from AnttiKauppila/optimisation
Cellular: Removed boilerplate code
2019-06-19 12:06:10 +01:00
Sebastian Stockhammer 402c471e70 Require exact context type match 2019-06-17 10:03:06 +02:00
Antti Kauppila 1ed338ef28 Valgrind & unittest fixes 2019-06-13 15:15:53 +03:00
Teppo Järvelin 6b11ca1371 Cellular: fix athandler to use correct timeout in case of multiple urc's
Start time was not updated when multiple urc's were found and so timeout
was set to zero. Now that start time is updated, timeout is correct.
2019-06-12 11:21:00 +03:00
Mirela Chirica 0339ffd1b9 Cellular: Added handling for BG96 network PDP context deactivation 2019-06-11 16:05:27 +03:00