Commit Graph

88 Commits

Author SHA1 Message Date
David Čermák
9303bc00b2 Merge branch 'bugfix/pppos_report_unknown_line' into 'release/v4.4'
esp_modem: Fix report unknown line (GitHub PR)

See merge request 
2021-11-02 12:14:49 +00:00
David Cermak
14a652376f Examples/PPPoS: Fix handling empty lines with CRLF only
Tokenizing data by '\n' will effectively replace all LF characters by '\0' so checking for phantom lines has to be adjusted:
* minimal empty line is CR only (strlen = 1)
* checking for lines containing CR only
2021-11-02 09:00:34 +01:00
David Cermak
9ceadb4e18 Examples/PPPoS: Fix copyright headers 2021-10-26 10:45:19 +02:00
David Cermak
12f4f8f7f8 Examples/PPPoS: Fixed missed NETIF_PPP_STATUS event unregister
NETIF_PPP_STATUS is registerd while modem gets attached to the related netif.
we don't have any network detach functionality in the modem component, so we
unregister the event during esp_modem_netif_clear_default_handlers().

Related https://esp32.com/viewtopic.php?f=13&t=23632
Related https://github.com/espressif/esp-idf/issues/7469
2021-10-26 10:45:12 +02:00
David Cermak
28d534ad33 Examples/PPPoS: Add mandatory delay after +++ command
Switching back from data (PPP) mode to command mode must be done is the following sequence:
* No characters entered for T1 time (1 second)
* "+++" characters entered with no characters in between (1 second)
* No characters entered for T1 timer (1 second)
(per specification of SIM800 SIM800_Series_AT_Command_Manual_V1.09.pdf)

Related https://github.com/espressif/esp-idf/issues/7608
2021-10-26 10:45:05 +02:00
Axel Lin
0a15cc5e5a esp_modem: Fix report unknown line
In esp_dte_handle_line(), it tokenize the data to call handlers separately
for each *line*. So it needs to post the tokenized data when report unknown
line instead of the first token (which could be a '\r' in my test).

Fixes: 336de29413 ("Examples/pppos_client: Fix manual parsing to accept unexpected lines")
Signed-off-by: Axel Lin <axel.lin@gmail.com>
2021-10-18 10:14:31 +08:00
David Čermák
6237f5859d Merge branch 'bugfix/pppos_client_dce_deref' into 'master'
Examples/pppos_client: Fix potential nullptr deref on DCE init (GitHub PR)

Closes IDFGH-5730

See merge request 
2021-10-05 12:52:47 +00:00
Marco Gigante
b40b22c136 Fix DCE deferencing crash in pppos example
Merges https://github.com/espressif/esp-idf/pull/7439
2021-10-04 16:09:27 +02:00
David Cermak
336de29413 Examples/pppos_client: Fix manual parsing to accept unexpected lines
Regression from a90817cda0 that caused
parsing exit in case of an unexpected result found (line handler
reported ESP_FAIL). Prevously if any error found in the line handler we
just posted an unexpected event, but continued with parsing. Fixed by
allowing for further parsing.

Related: https://github.com/espressif/esp-idf/issues/7176
2021-10-04 19:34:17 +08:00
Zim Kalinowski
002cd296e1 Merge remote-tracking branch 'origin/master' into feature/github-7022 2021-10-03 12:25:39 +08:00
David Cermak
a90817cda0 Examples/pppos_client: Remove uart pattern detection
Due to these problems
* possible race condition, two events competing
* pattern detection work a little different for different IDF versions
* switching between pattern detection and data reading is complicated
* using just data events is easier for porting to a different communication peripheral
These changes were made:
* Removed the UART pattern detection entirely
* Used manual pattern detection after reading plain data from the UART

Closes https://github.com/espressif/esp-idf/issues/7176
2021-09-21 10:12:54 +02:00
David Cermak
f0ecd70fd7 Examples/PPPoS: Warn about not supporting in v5.0 2021-09-08 09:58:14 +02:00
Axel Lin
d6248eaf9b Examples: esp_modem_dce_service: Make esp_modem_dce_handle_* functions static
These functions are unlikely to be reused, make them static.
Take esp_modem_dce_handle_cbc as an example, it's internal implementation
of esp_modem_dce_get_battery_status, expose esp_modem_dce_get_battery_status
function is enough.

Signed-off-by: Axel Lin <axel.lin@gmail.com>

Merges https://github.com/espressif/esp-idf/pull/7266
2021-07-26 11:48:15 +02:00
Marius Vikhammer
11ea7c9072 docs: fixed two dead readme links 2021-07-21 15:20:57 +08:00
Andrey Starodubtsev
6e343c1f8b Fix typo
s/\bUnknow\b/Unknown/g
2021-05-14 18:26:22 +03:00
David Cermak
fd47dd4bea Examples/PPPoS: Fix pppos SMS send potential timeout in prompt waiting 2021-04-14 07:50:10 +02:00
Liu Han
6471396ae6 esp_modem: Fixed send data and wait for prompt fail from DCE
Closes https://github.com/espressif/esp-idf/issues/6428
Closes https://github.com/espressif/esp-idf/issues/6651
2021-04-14 07:50:09 +02:00
David Cermak
b6f0b9ae2a esp_modem: Add option which enables UART_ISR_IN_IRAM to support OTA
Closes https://github.com/espressif/esp-idf/issues/4582
2021-04-09 06:53:30 +00:00
David Cermak
37b694559f esp_modem: Add option to support for LCP keepalive
Closes https://github.com/espressif/esp-idf/issues/6562
2021-04-09 06:53:30 +00:00
Floris Romeijn
2610e9c22d Examples/esp_modem: Reset DCE pointer in DTE on failure
if we failed to init modem so we can e.g. retry later

Merges https://github.com/espressif/esp-idf/pull/6727
2021-04-08 16:50:38 +00:00
David Cermak
7872057976 esp_modem: Fixed modem netif deinit to clear IP events
Function esp_modem_netif_clear_default_handlers() didn't unregister
event handlers from IP related events, so if the netif modem was
reinitialized the previous handler was called with already destroyed
esp_netif handle.

Closes https://github.com/espressif/esp-idf/issues/6787
2021-04-07 06:56:30 +00:00
Liu Han
b3a35e3d4e pppos-client: Refactor modem component
Merges https://github.com/espressif/esp-idf/pull/6483
2021-03-01 17:10:48 +00:00
Jonathan Dreyer
42aaefe218 Remove duplicated empty lines
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
Signed-off-by: Liu Han <liuhan@espressif.com>
2021-03-01 17:10:48 +00:00
Jonathan Dreyer
3968660b2a Move DCE_CHECK in the esp_modem_dce
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
Signed-off-by: Liu Han <liuhan@espressif.com>
2021-03-01 17:10:48 +00:00
Jonathan Dreyer
de239f151f Edit comments with protocol foreach methods
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
Signed-off-by: Liu Han <liuhan@espressif.com>
2021-03-01 17:10:48 +00:00
Jonathan Dreyer
a77e9a8ab9 Move typedef with private resource into esp_modem_dce.h
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
Signed-off-by: Liu Han <liuhan@espressif.com>
2021-03-01 17:10:48 +00:00
Jonathan Dreyer
ea1df995f8 Move commun methods in DCE and align few methods
Signed-off-by: Jonathan Dreyer <jonathan.dreyer@cleanenergie.ch>
Signed-off-by: Liu Han <liuhan@espressif.com>
2021-03-01 17:10:48 +00:00
David Cermak
3748b4ac57 esp_modem: Add specific power-down command for SIM7600 2021-02-26 17:16:28 +01:00
yuanjm
ca037eba9b examples: Update mqtt open source test server address 2021-02-23 15:29:07 +08:00
David Cermak
41146d674f ci: Update pppos client test regex with esp-tls transport layer 2021-02-16 09:01:35 +01:00
Marius Vikhammer
04df1f3a42 CI: enable example builds for C3
Enables building C3 examples in CI.

Fixes related warnings/errors and disables examples that cannot run.
2021-02-09 12:04:02 +08:00
Fu Hanxi
0146f258d7 style: format python files with isort and double-quote-string-fixer 2021-01-26 10:49:01 +08:00
Liu Han
7f3bcc13d7 esp-modem: prefix the crash issue both bg96 and sim800l in OVERALL mode 2021-01-11 13:47:33 +00:00
Ash
935edc9e09 rename dce parameter
Merges https://github.com/espressif/esp-idf/pull/5750
Signed-off-by: Liu Han <liuhan@espressif.com>
2021-01-11 13:47:33 +00:00
Robert Nuttall
d59ffd9128 Expose get operator name command. Add get access tech
Signed-off-by: Liu Han <liuhan@espressif.com>
2021-01-11 13:47:33 +00:00
David Cermak
55d41c3377 esp_modem: Fixed race condition on exiting PPP mode
esp_modem_stop_ppp() stops both ppp netif and switches the modem back to
command mode. IF these two actions are not synchronised, we might
experience issues of
* active PPP session trying to send/receive uart-data
* command mode already active before modem switched to it
both resulting in crashes.
Fixed by introducing the transition mode and running these actions in sequence
* set esp-modem to transition mode
* enter command mode, wait for the reply or re-sync
* close the PPP netif
* wait until the netif closes
Other fixes include ignoring certain events if modem component not ready
or not in appropriate mode:
* ignoring all UART events comming from DTE with no DCE attached
* ignore pattern detection in PPP mode

Closes https://github.com/espressif/esp-idf/issues/6013
Closes https://github.com/espressif/esp-idf/issues/5737
Closes https://github.com/espressif/esp-idf/issues/6024
Closes https://github.com/espressif/esp-idf/issues/6058
Closes https://github.com/espressif/esp-idf/issues/5563
Closes https://github.com/espressif/esp-idf/issues/5695
Closes https://github.com/espressif/esp-idf/issues/5633
Closes https://github.com/espressif/esp-idf/issues/4482
Related https://github.com/espressif/esp-idf/pull/4849
Related https://github.com/espressif/esp-idf/pull/4653
2020-12-21 16:38:20 +01:00
Angus Gratton
66fb5a29bb Whitespace: Automated whitespace fixes (large commit)
Apply the pre-commit hook whitespace fixes to all files in the repo.

(Line endings, blank lines at end of file, trailing whitespace)
2020-11-11 07:36:35 +00:00
David Cermak
8a143fcf40 esp-netif: Fix PPP netif event posting to include esp_netif data
Closes https://github.com/espressif/esp-idf/issues/6009
2020-10-26 16:00:42 +00:00
David Cermak
6f1b8fe062 esp-modem: Remove esp-netif destroy from modem network glue code
To be in line with other interfaces, when deleting the driver and it's glue layer to esp-netif, we DO NOT delete the related esp-netif (since is was allocated and created outside of the glue code and it works the same way in esp-eth and esp-wifi driver/glue layers).

Closes https://github.com/espressif/esp-idf/issues/5486
2020-08-31 06:47:01 +00:00
ryan
266be00254 esp-netif: Added esp_netif slip support, slip_modem component and example
Merges https://github.com/espressif/esp-idf/pull/4985
2020-07-15 15:46:46 +02:00
David Cermak
c226270138 pppos-client: support for SIM7600 modem
Reuses most of the code from BG96. At this moment, this is not a
perfect support for other modules as the generic handlers for most
common modem functionality is not easily reusable. Refactoring to a
fully independent modem component will solve this.

Closes https://github.com/espressif/esp-idf/issues/5250
2020-07-13 14:45:19 +00:00
Marius Vikhammer
a80cff924b docs: fix broken links in example READMEs 2020-07-08 10:39:33 +08:00
David Cermak
8f0ec8bd50 pppos client: modem netif fix ignoring potential modem-start error
esp-modem netif glue layer implements esp-netif attach callback to setup corresponding driver functions and start the modem. The error code of esp_modem_start_ppp() was ignored and ESP_OK returned in all cases. Fixed by passing esp_modem_start_ppp()'s error code to post_attach callback.

Closes https://github.com/espressif/esp-idf/issues/5430
2020-06-18 16:20:50 +02:00
morris
0fcb447707 add pppos client restart in example
Closes https://github.com/espressif/esp-idf/issues/4268
2020-05-29 13:09:53 +08:00
morris
6d70b7c352 fix esp_modem switch mode timeout
Closes https://github.com/espressif/esp-idf/issues/3506
Closes https://github.com/espressif/esp-idf/issues/4324
2020-05-29 13:03:15 +08:00
Roland Dobai
5f024e1cd4 Add protocol example tests 2020-05-19 12:17:32 +02:00
Axel Lin
85e9930071 esp_modem: Fix misuse event_queue_size as pattern_queue_size
Also remove event_queue_size from esp_modem_dte_t because
event_queue_size is only used in esp_modem_dte_init.

Fixes: 817c0e3019 ("esp_modem: UART runtime configuration of esp-modem")
Signed-off-by: Axel Lin <axel.lin@gmail.com>
2020-04-25 08:08:01 +08:00
David Cermak
6aabfd50d5 pppos_client: support for PPPAUTHTYPE_NONE
Closes https://github.com/espressif/esp-idf/issues/4616
Closes WIFI-1652
2020-04-14 21:46:07 +02:00
David Cermak
817c0e3019 esp_modem: UART runtime configuration of esp-modem
Basic set of configuration related to UART moved from KConfig
to runtime configuration structure to simplify reusing the component for
testing and examples.
2020-04-14 21:46:07 +02:00
Axel Lin
0784426d6b esp_modem: Ensure uart_param_config and uart pins are set before uart_driver_install
Fixes Guru Meditation Error: Core 0 panic'ed (LoadProhibited) when config with
CONFIG_PM_ENABLE=y && CONFIG_PM_DFS_INIT_AUTO=y.

Signed-off-by: Axel Lin <axel.lin@gmail.com>

Merges https://github.com/espressif/esp-idf/pull/4904
2020-04-14 21:46:07 +02:00