espp/cli

0.21.0

uploaded 2 days ago
Command Line Interface (CLI) component for ESP-IDF

readme

# CLI (Command Line Interface) Component

The `cli.hpp` header provides a convenience include / wrapper around
`daniele77/cli <https://github.com/daniele77/cli>`_. It also exposes `cli`'s
include folder, so including `"cli.hpp"` is completely equivalent to including
`<cli/cli.h>` - but you can additionally include other files from
`<cli/>`. It also provides a few conveniences:

1. a `espp::Cli` class which inherits from `cli::CliSession` and has a
   near-identical implementation as `cli`'s `CliFileSesson`, with the exception
   that it explicitly reads character by character instead of line by line and
   prints out the characters as they are being input, and
2. a static `espp::Cli::configure_stdin_stdout()` function which sets up the esp
   UART to enable blocking `std::cin` read, which is needed for `std::cin` to
   work (and therefore - currently - for `cli` to work). This function is
   automatically called by the `espp::Cli` constructor, but it can also be
   called manually without needing to create a `espp::Cli` object if you wish to
   simply use the `std::cin` and related functions.
3. a `espp::LineInput` class which provides support for an interactive input
   system which can optionally have history with navigation. It allows for
   getting the user input as an arbitrary input string while enabling some
   keyboard movement and editing commands. The `espp::Cli` uses the
   `espp::LineInput` class internally to handle the input aspects of the Cli,
   but the `espp::LineInput` class can be re-used anywhere you want to get one
   or more lines of user input in a reusable way. Note that if you use it in
   another class / outside the `espp::Cli` class, you will need to call the
   `espp::Cli::configure_stdin_stdout()` as mentioned above.

The `Cli` and associated `LineInput` classes support:
  *   ctrl+a (move to beginning of line)
  *   ctrl+e (move to end of line)
  *   ctrl+n (move up a line / previous input history)
  *   ctrl+p (move down a line / next input history)
  *   ctrl+k (delete from the cursor to the end of the line)
  *   ctrl+b (move the cursor back one character)
  *   ctrl+f (move the cursor forward one character)
  *   ctrl+l (clear the screen)

Please see the documentation for the `cli submodule
<https://github.com/daniele77/cli>`_ if you have any questions about usage
beyond the examples provided here.

# Example

The [example](./example) shows how to use the `Cli` component to setup and run a
command line interface (CLI) on the ESP.

Links

Supports all targets

Maintainer

  • William Emfinger <waemfinger@gmail.com>

License: MIT

To add this component to your project, run:

idf.py add-dependency "espp/cli^0.21.0"

or download archive

Stats

  • Archive size
    Archive size ~ 236.13 KB
  • Downloaded in total
    Downloaded in total 1 time
  • Downloaded this version
    This version: 1 time

Badge

espp/cli version: 0.21.0
|