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
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
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>
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
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
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
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
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
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
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
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>
Basic set of configuration related to UART moved from KConfig
to runtime configuration structure to simplify reusing the component for
testing and examples.