Skip to content

Commit 73089b3

Browse files
committed
Warn about unknown device monitor filters // Resolve #4362
1 parent 3a70c90 commit 73089b3

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

HISTORY.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ PlatformIO Core 6
1818

1919
* Export a ``PIO_UNIT_TESTING`` macro to the project source files and dependent libraries in the |UNITTESTING| mode
2020
* Improved detection of Windows architecture (`issue #4353 <https://github.com/platformio/platformio-core/issues/4353>`_)
21+
* Warn about unknown `device monitor filters <https://docs.platformio.org/en/latest/core/userguide/device/cmd_monitor.html#filters>`__ (`issue #4362 <https://github.com/platformio/platformio-core/issues/4362>`_)
2122
* Fixed a regression bug when `libArchive <https://docs.platformio.org/en/latest/manifests/library-json/fields/build/libarchive.html>`__ option declared in the `library.json <https://docs.platformio.org/en/latest/manifests/library-json/index.html>`__ manifest was ignored (`issue #4351 <https://github.com/platformio/platformio-core/issues/4351>`_)
2223
* Fixed an issue when the `pio pkg publish <https://docs.platformio.org/en/latest/core/userguide/pkg/cmd_publish.html>`__ command didn't work with Python 3.6 (`issue #4352 <https://github.com/platformio/platformio-core/issues/4352>`_)
2324

platformio/device/monitor/command.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from platformio import exception, fs
2121
from platformio.device.finder import find_serial_port
2222
from platformio.device.monitor.filters.base import register_filters
23-
from platformio.device.monitor.terminal import start_terminal
23+
from platformio.device.monitor.terminal import get_available_filters, start_terminal
2424
from platformio.platform.factory import PlatformFactory
2525
from platformio.project.config import ProjectConfig
2626
from platformio.project.exception import NotPlatformIOProjectError
@@ -138,6 +138,17 @@ def device_monitor_cmd(**options):
138138
"--exit-char can not be the same as --menu-char"
139139
)
140140

141+
# check for unknown filters
142+
known_filters = set(get_available_filters())
143+
unknown_filters = set(options["filters"]) - known_filters
144+
if unknown_filters:
145+
options["filters"] = list(known_filters & set(options["filters"]))
146+
click.secho(
147+
("Warning! Skipping unknown filters `%s`. Known filters are `%s`")
148+
% (", ".join(unknown_filters), ", ".join(sorted(known_filters))),
149+
fg="yellow",
150+
)
151+
141152
start_terminal(options)
142153

143154

platformio/device/monitor/terminal.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ def writer(self):
4141
self.pio_unexpected_exception = exc
4242

4343

44+
def get_available_filters():
45+
return sorted(miniterm.TRANSFORMATIONS.keys())
46+
47+
4448
def start_terminal(options):
4549
retries = 0
4650
is_port_valid = False
@@ -116,7 +120,7 @@ def print_terminal_settings(terminal):
116120
)
117121
click.echo(
118122
"--- Available filters and text transformations: %s"
119-
% ", ".join(sorted(miniterm.TRANSFORMATIONS.keys()))
123+
% ", ".join(get_available_filters())
120124
)
121125
click.echo("--- More details at https://bit.ly/pio-monitor-filters")
122126
click.echo(

0 commit comments

Comments
 (0)