Skip to content

Would like to contribute #4

@imrenor

Description

@imrenor

Hi Francois,
I've recently started using your TinyConsole library and love it. Thanks for your work!
My main goal is to provide a telnet based CLI for my ESP projects.
I'm on Win10, using MobaXTerm.
If you don't mind, I'd like to contribute to the library and work on some features like:

  1. Add full support for xterm over telnet. I have TinyConsole working over a websocket stream, but control commands are currently very sketchy. Need to understand and comply with telnet protocol.

  2. Add callback for ASCII C0 control characters. See my branch
    The main goal is to provide an api for a command line interpreter to be able to manipulate input and cursor in response to C0 characters. A good example is tab completion.
    Current TODO is to solve passing input and cursor to C0 callback. E.g. as parameters to callback function. I'd like to know your opinion on this one.

  3. Focus a bit more on being instance based instead of the global TinyConsole approach. In my scenario each telnet session should have their own TinyConsole instance. Serial TinyConsole access is optional. I was thinking of adding support for define NO_GLOBAL_TINYCONSOLE on top of current NO_GLOBALS and NO_GLOBAL_SERIAL. Also need to make sure that an instance and related resources can be fully destroyed once the telnet session ends.

  4. Make debug option better. Currently it is only possible by changing TinyConsole.cpp. Add an external way of turning debug on and off. Possibly thru a variable. Downside is that debug code is always compiled, but I don't see that as a big problem on an ESP (takes only a small flash space).

As a start I'm adding a small PR for handling Shift+Backspace ASCII 127 (default backspace for some terminal clients).

Let me know your thoughts.
Thanks,
Norbert

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions