From: Kent Gibson <warthog618@gmail.com>
To: linux-gpio@vger.kernel.org, brgl@bgdev.pl
Cc: Kent Gibson <warthog618@gmail.com>
Subject: [libgpiod v2][PATCH 0/4] tools: line name focussed rework
Date: Mon, 27 Jun 2022 21:44:43 +0800 [thread overview]
Message-ID: <20220627134447.81927-1-warthog618@gmail.com> (raw)
This patch series is an optimistic reimagining of the tools intended to
simplify usage for well configured systems, i.e. for systems where lines
can be uniquely identified by name. In such systems the chip and offset
location of the line is no longer of relevance to the user, so the tools
should be able to operate without mentioning them.
e.g.
gpioget GPIO17
gpioset GPIO17=active
gpiomon --localtime GPIO17 GPIO18
It is accepted that the kernel does not guarantee line name uniqueness
within the system, or even within a chip, and not all systems are well
configured, so the tools retain the option to identify lines by chip
and offset. The hope and expectation is that over time systems will
become more well configured, not less, and identification of GPIO lines
by name will become the norm.
The core of the series is patch 1 which is a reworking of the tools to
support identifying lines by name, and to operate across multiple GPIO
chips if named lines are located on different chips.
The gpioset tool is extended to support toggling lines and interactive
control of line values, so some common use cases can be trivially
implemented from the command line.
e.g.
gpioset --toggle 500ms LED=on
will blink the LED line at 1Hz, indefinitely.
More complex outputs can be generated by adding more entries to the
toggle sequence:
gpioset --toggle 1s,2s,1s,300ms LED=on
Even more complex outputs can be generated by driving gpioset in
interactive mode from another script.
Those are the major changes. A more complete list of the changes can be
found in the patch description.
Patch 2 updates and extends the tool tests to cover the reworked tools,
including demonstrating gpioset being driven interactively via a script.
The final two patches add a gpiowatch tool that monitors changes to
the state line information, similar to the gpio-watch tool in the kernel,
and extend the test suite to cover it.
Cheers,
Kent.
Kent Gibson (4):
tools: line name focussed rework
tools: tests for line name focussed rework
tools: add gpiowatch
tools: gpiowatch tests
configure.ac | 9 +-
man/Makefile.am | 2 +-
tools/.gitignore | 1 +
tools/Makefile.am | 4 +-
tools/gpio-tools-test | 3 -
tools/gpio-tools-test.bats | 2189 ++++++++++++++++++++++++++++--------
tools/gpiodetect.c | 108 +-
tools/gpiofind.c | 126 ++-
tools/gpioget.c | 200 ++--
tools/gpioinfo.c | 356 +++---
tools/gpiomon.c | 493 ++++----
tools/gpioset.c | 861 ++++++++++----
tools/gpiowatch.c | 214 ++++
tools/tools-common.c | 640 ++++++++++-
tools/tools-common.h | 59 +-
15 files changed, 3927 insertions(+), 1338 deletions(-)
create mode 100644 tools/gpiowatch.c
--
2.36.1
next reply other threads:[~2022-06-27 13:45 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-27 13:44 Kent Gibson [this message]
2022-06-27 13:44 ` [libgpiod v2][PATCH 1/4] tools: line name focussed rework Kent Gibson
2022-07-06 20:20 ` Bartosz Golaszewski
2022-07-07 2:24 ` Kent Gibson
2022-07-07 9:01 ` Bartosz Golaszewski
2022-07-07 9:18 ` Kent Gibson
2022-06-27 13:44 ` [libgpiod v2][PATCH 2/4] tools: tests for " Kent Gibson
2022-07-01 0:42 ` Kent Gibson
2022-06-27 13:44 ` [libgpiod v2][PATCH 3/4] tools: add gpiowatch Kent Gibson
2022-07-06 20:46 ` Bartosz Golaszewski
2022-07-07 2:27 ` Kent Gibson
2022-07-07 8:41 ` Bartosz Golaszewski
2022-07-07 8:55 ` Kent Gibson
2022-06-27 13:44 ` [libgpiod v2][PATCH 4/4] tools: gpiowatch tests Kent Gibson
2022-06-28 5:26 ` [libgpiod v2][PATCH 0/4] tools: line name focussed rework Kent Gibson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220627134447.81927-1-warthog618@gmail.com \
--to=warthog618@gmail.com \
--cc=brgl@bgdev.pl \
--cc=linux-gpio@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).