mirror of
https://github.com/tio/tio.git
synced 2026-05-01 14:57:59 +02:00
103 lines
3.8 KiB
Text
103 lines
3.8 KiB
Text
* Add additional hex mode formats
|
|
|
|
- Support traditional hex output format such as:
|
|
|
|
00000000 74 65 73 74 20 74 65 73 74 20 74 65 73 74 20 74 |test test test t|
|
|
00000010 65 73 74 64 66 0a 61 0a 66 61 0a 66 0a 61 73 66 |estdf.a.fa.f.asf|
|
|
00000020 64 61 64 73 66 61 73 66 64 61 73 64 66 61 64 73 |dadsfasfdasdfads|
|
|
00000030 66 0a 61 73 64 66 61 64 73 66 61 73 64 66 61 73 |f.asdfadsfasdfas|
|
|
00000040 64 66 0a 61 73 64 66 61 64 73 66 61 73 64 66 61 |df.asdfadsfasdfa|
|
|
00000050 73 64 66 66 64 61 73 64 66 0a 0a 31 32 33 31 0a |sdffdasdf..1231.|
|
|
00000060 65 32 31 64 73 77 65 64 0a 0a |e21dswed..|
|
|
0000006a
|
|
|
|
With configurable width output (4, 8, 16 bytes etc.). E.g. config file:
|
|
|
|
hex-mode-width = 16
|
|
|
|
With and without timestamp support for each broken up line.
|
|
|
|
* Add support for activity based time stamping in both normal and hex-mode.
|
|
|
|
Will print a new timestamp if there is no input activity within the time
|
|
defined in the configuration file, e.g.:
|
|
|
|
timestamp-timeout = 200
|
|
|
|
Time is in ms.
|
|
|
|
* Advanced line mode
|
|
|
|
Current line mode only support backspace editing. Would be nice with arrow
|
|
key navigation left/right and insert/overwrite support. Also history browsing
|
|
pressing up/down.
|
|
|
|
* Support for running external command
|
|
|
|
Add key command e.g. 'ctrl-t r' which prompts user to run external command.
|
|
The command will be run in a process which stdin/stdout is redirected to the
|
|
serial port.
|
|
|
|
This is the first step towards maybe also adding automatic support for
|
|
x/y/zmodem data transfer protocols by calling external programs such as
|
|
rb/sb, rx/sx, rz/sz, etc.
|
|
|
|
* Allow tio to connect to socket
|
|
|
|
After some more consideration I think it makes sense to support connecting to a
|
|
socket as that will make tio be able to both serve a serial port via a socket
|
|
and connect to it - it will be an end to end solution. In short we will be able
|
|
to do the following:
|
|
|
|
Host serial port on socket (existing feature):
|
|
$ tio --socket unix:/tmp/tio-socket-0 /dev/ttyUSB0
|
|
|
|
Connect to same socket (new feature):
|
|
$ tio unix:/tmp/tio-socket-0
|
|
|
|
Besides a bit of refactoring the following required changes spring to mind:
|
|
|
|
* Socket mode and type of socket should be activated via device name prefix. For example:
|
|
* UNIX socket: tio unix:<filename>
|
|
* TCPv4 socket: tio inet:<ip>:<port>
|
|
* TCPv6 socket: tio inet6:<ip>:<port>
|
|
* If no port number defined default to 3333
|
|
* Mapping flags INLCR, IGNCR, ICRNL needs implementation for socket mode
|
|
* Error messages should just say "device" instead of "tty device" etc.
|
|
* Remove other tty'isms (tty_write() should be device_write() etc.)
|
|
* In session key commands that do not work in socket mode should either not be listed or print an error messages if used.
|
|
* All non-tty features should continue work (auto-connect etc.)
|
|
* Shell completion script update
|
|
* Man page update
|
|
|
|
|
|
* Split I/O feature
|
|
|
|
Allow to split input and output so that it is possible to manage these
|
|
independently.
|
|
|
|
The general idea is to redirect the output stream on the socket port number
|
|
specified but then redirect the input stream on the same port number + 1.
|
|
|
|
Example:
|
|
|
|
$ tio /dev/ttyUSB0 --socket inet:4444,split-io
|
|
|
|
Will result in output stream being hosted on port 4444 and input stream
|
|
hosted on port 4445.
|
|
|
|
For file sockets something similar can be arranged:
|
|
|
|
$ tio /dev/ttyUSB0 --socket unix:/tmp/tio-socket-0,split-io
|
|
|
|
Will result in output stream being hosted via /tmp/tio-socket-0 and input
|
|
stream hosted via /tmp/tio-socket-0_input
|
|
|
|
* Websocket support
|
|
|
|
Extend the socket feature to redirect serial I/O to websocket on e.g. port
|
|
1234 like so:
|
|
|
|
$ tio --socket ws:1234
|
|
|
|
Use libwesockets to implement feature.
|