Commit Graph

27 Commits

Author SHA1 Message Date
Guillaume Souchere
87b1e45564 fix(console): USB Serial JTAG freezes when input received before init
When data was sent through USB Serial JTAG before the
driver was installed, the bus was malfunctioning. This
was because the interrupt bit for data reception was cleared
regardless of whether data was received or not. Consequently,
usb_serial_jtag_isr_handler_default was not triggered and the
data was never read causing the bus to malfunction.

This commit is modifying usb_serial_jtag_driver_install to
prevent clearing USB_SERIAL_JTAG_INTR_SERIAL_OUT_RECV_PKT and
USB_SERIAL_JTAG_INTR_SERIAL_IN_EMPTY thus allowing the callback
usb_serial_jtag_isr_handler_default to trigger for possible data
exchanged prior to the call to usb_serial_jtag_driver_install.

This commit also modified the while logic in linenoiseProbe to
discard any data that doesn't match the expected chaaracter sequences
to prevent random input from interfering with evaluating whether the
terminal supports escape sequences or not.

See https://github.com/espressif/esp-idf/issues/13940
2024-06-26 06:32:13 +02:00
Guillaume Souchere
ada38e8d5e fix(linenoise): Skip 0x00 to 0x1F character in dump mode
Skipping through the non printable character assures that
in dumb mode, any special keys will not lead to the cursor
movement.
2024-04-17 13:13:58 +02:00
Guillaume Souchere
aa61062584 fix(console): bug where backspace erases the prompt in dumb mode 2024-04-17 12:03:42 +02:00
David Cermak
bd8b1eca9e fix(console): Fix linux target build on MacOS
We're correctly checking for the CONFIG_IDF_TARGET_LINUX macro, but before including sdkconfig.h
2024-04-02 15:14:19 +02:00
Jakob Hasse
f9c9e18bca fix(linux): prevent build error on MacOS and optimize buffer usage on Linux 2024-03-01 11:01:15 +08:00
Jakob Hasse
a30546cd24 feat(console): Refactored code to support Linux target 2024-01-29 17:13:22 +08:00
Sudeep Mohanty
0313cbca43 fix(console): Fixed linenoise prompt length calculation
This commit fixes a potential issue where in the prompt length used
for the linenoise based console could be calculated as a negative
integer, leading to a console hang.

Closes https://github.com/espressif/esp-idf/issues/4924
2024-01-16 11:52:24 +01:00
Alexey Lapshin
73742dcdaa fix(console): fix linenoise flushing in dumb mode 2023-10-09 12:13:02 +04:00
Peter Dragun
bebd2cec4a bug(idf_monitor): fix color on windows with hints
Closes https://github.com/espressif/esp-idf/issues/9610
2023-04-17 11:18:42 +02:00
simon.chupin
5468d79382 tools: fix idf.py monitor consol problem
Closes https://github.com/espressif/esp-idf/issues/9432
2022-07-27 08:35:30 +00:00
Ivan Grokhotkov
6b5599bb12
console: linenoiseProbe: check if response is valid
Previously linenoiseProbe would accept any 4 byte response, even one
that isn't expected. This adds a check that the first byte of the
response is ESC.
Suggested in https://github.com/espressif/esp-idf/issues/8839.
2022-05-03 21:26:14 +02:00
Ivan Grokhotkov
eab33e7174
console: linenoise: fix usage of an uninitialized buffer
Reported in https://github.com/espressif/esp-idf/issues/6440

The issue could occur if esp_console_config_t::hint_color
was set to -1.
2022-03-11 20:54:09 +01:00
wuzhenghui
ee532d55c5 fix console stuck in auto test 2022-01-25 16:19:35 +08:00
Omar Chebib
0fd74a43c8 console: re-use the available REPL console API and improve linenoise
Console example doesn't duplicate code in `console` component.
Linenoise has been improved: it now has a parametrized command line
length. It is now possible to paste data efficiently to the console.
Note: this can only be done if the cursor is at the end of the line.

Closes https://github.com/espressif/esp-idf/issues/7057
2021-07-15 11:37:11 +08:00
Omar Chebib
b911951cad console: fix a bug preventing us from starting a CLI on non-default UART
It is now possible to start a REPL CLI on another UART than the default
one.

Closes https://github.com/espressif/esp-idf/issues/6897
2021-06-01 15:50:15 +08:00
Ivan Grokhotkov
9b2b86b7d9 console: fix linenoiseProbe never timing out
Fixes a regression from 753a92952: if cb was negative, read_bytes
overflowed, because the type was changed from int to size_t.

Also fixes incorrect timeout calculation: timeout_ms was 200, but
each iteration delayed for 10ms, and reduced timeout_ms by 1. This
made the effective timeout to be 2000ms.
2021-01-15 09:22:04 +01:00
morris
753a929525 global: fix sign-compare warnings 2021-01-12 14:05:08 +08:00
Ivan Grokhotkov
f54d771cd3 linenoise: actively flush the output stream, in case it is buffered 2020-06-24 15:50:51 +02:00
Ivan Grokhotkov
30a6a8f932 Update linenoise.c: calloc returning NULL is not handled
Calloc function tries to allocate 4096 bytes.
If such memory is not available, it returns NULL pointer.
This exception was not handled in the code, causing a dirty crash.
2020-05-06 13:21:56 +08:00
Ivan Grokhotkov
ece41b04e3 console: make empty line behavior run-time configurable 2020-04-29 23:44:46 +02:00
Michael 'ASAP' Weinrich
c34352549a Added Kconfig for enabling 0 length returns from linenoise 2020-04-29 23:44:46 +02:00
MadnessASAP
dfd4227e7a Don't return NULL on 0 length input
A 0 length string is still a valid input and should be treated as such, a NULL return should be reserved for when errors occur during line editing or EOF is reached.

Merges https://github.com/espressif/esp-idf/pull/4926
2020-04-29 23:44:46 +02:00
Anton Maklakov
afbaf74007 tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
Ivan Grokhotkov
fa57fb3c1c console/linenoise: support buffered stdout 2019-03-13 20:17:25 +08:00
Ivan Grokhotkov
abe9516fdc newlib: implement usleep 2017-08-21 15:58:28 +08:00
Ivan Grokhotkov
10f0543080 console: add support for terminal probing and dumb terminal mode 2017-08-21 15:58:28 +08:00
Ivan Grokhotkov
5de7c91a54 add console component and example 2017-08-21 15:58:27 +08:00