Commit Graph

45 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 espressif/esp-idf!15621
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 espressif/esp-idf!15392
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
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
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
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
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
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
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
Liu Han
7f3bcc13d7 esp-modem: prefix the crash issue both bg96 and sim800l in OVERALL mode 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
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
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
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
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
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
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
David Cermak
636621d1c5 pppos_client: Add a test application for pppos_client
Adding testing facilities for pppos-client including esp-modem component
and PPP client in lwip. Testing is provided with PPP server running on
rpi.
2020-04-14 21:46:07 +02:00
David Cermak
745f062e07 esp_modem: pppos_client modem to use uart with REF_TICK
pppos_client example used the UART default clock configuration which might
cause issues if power management enabled. Settings updated to UART_SCLK_REF_TICK
Also need to explicitly disable RX interrupts in UART pattern detection
mode.

Closes https://github.com/espressif/esp-idf/issues/4801
2020-04-14 21:46:07 +02:00
David Cermak
fffdc1d789 esp-netif-ppp: support for setting ppp netif up and down
calling esp_netif_up() and esp_netif_down() was not supported if the
underlying netif wos of ppp type. Updated the code to enable setting
these interfaces up/down and registered actions in moden_netif glue for
connection/disconnection events to set the netif up/down.
2020-03-19 13:16:24 +00:00
Francesco Giancane
d8755fff3f esp_modem.c: post PPP stop event when requested
When library users call esp_stop_ppp(), it is expected that the PPP link
is closed and the DCE is moved into command mode.

If the STOP event is not posted into the event loop, then the PPP stack
would not be turned off, resulting in the impossibility to switch into
command mode, as the modem is still sending PPP binary data.

Signed-off-by: Francesco Giancane <francesco.giancane@accenture.com>

Merges https://github.com/espressif/esp-idf/pull/4642
2020-02-10 09:49:27 +00:00
David Cermak
04a25394aa esp_modem: add simple compatibility layer for new esp_modem connecting over esp-netif 2019-12-16 17:34:10 +00:00
David Cermak
25913af2cc pppos_client: udated example code to use esp-netif in PPP configuration 2019-12-16 17:34:10 +00:00
houwenxiang
f27ae9b0e2 feature: Add uart hal support. 2019-11-26 20:01:50 +08:00
David Cermak
b834c99148 examples: modify other examples and tests to use esp_netif instead of tcpip_adapter 2019-11-13 12:36:25 +01:00
Angus Gratton
24d26fccde Merge branch 'master' into feature/esp32s2beta_update 2019-08-08 13:44:24 +10:00
chenjianqiang
e43513b610 bugfix(uart): uniform AT_CMD char configuration 2019-07-18 19:24:13 +08:00
xueyunfei
fa02598b5c lwip_2.1.2 for idf_4.0 2019-07-07 01:51:45 +00:00
Roland Dobai
151f757912 Rename Kconfig options (examples) 2019-05-21 09:32:55 +02:00
Akbar Hashim
6f5f40dae4 updated buffer size too small for popular carrier in India Airtel -> airtelgprs.com
Merges https://github.com/espressif/esp-idf/pull/3010
2019-03-21 15:06:24 +08:00
morris
2e1f98f8f5 modem: support modem facility and PPPoS
1. add support for ESP32 DTE
2. add support for SIM800/BG96 DCE
3. add PPPoS setup procedure
4. add support for SMS
5. add mqtt example after PPP connection established
2019-01-23 18:53:32 +08:00