Commit graph

521 commits

Author SHA1 Message Date
Martin Lund
0a22142957 Update README 2022-06-07 07:27:11 +02:00
Martin Lund
10199f6053 Update AUTHORS 2022-06-06 21:22:58 +02:00
Martin Lund
54830e3528 Update README 2022-06-06 21:19:09 +02:00
Martin Lund
2109a0063b Update README 2022-06-06 20:32:47 +02:00
Martin Lund
387f47a39c Update README 2022-06-06 20:29:17 +02:00
Martin Lund
989efeae88 Remove print of hex mode status at startup 2022-06-06 20:08:05 +02:00
Martin Lund
d41649afb6 Update bash completion 2022-06-06 19:47:08 +02:00
Martin Lund
6d007d39d7 Remove newline option in hex mode 2022-06-06 19:38:31 +02:00
g0mb4
0b55981e52 Extended hexadecimal mode.
While in hex mode (ctrl-t h) you can output hexadecimal values.
E.g.: to send 0x0A you have to type 0A (always 2 characters).

Added option -x, --hex to start in hexadecimal mode.

Added option --newline-in-hex to interpret newline characters in hex mode.
This is disabled by default, because, in my opinion, hex stream is
fundamentally different from text, so a "new line" is meaningless in this
context.
2022-06-06 19:10:00 +02:00
Martin Lund
7d3b687eb4 Update README 2022-06-06 10:19:37 +02:00
Martin Lund
a5bde2ea51 Update README 2022-06-06 01:40:49 +02:00
Martin Lund
732a768970 Update TODO 2022-06-05 09:29:33 +02:00
Martin Lund
d907834f72 Update README 2022-06-04 22:28:54 +02:00
Martin Lund
5b7191ed7c Fix configfile memory leaks 2022-06-04 20:37:06 +02:00
Martin Lund
8a83d2a973 Update bash completion 2022-06-04 19:24:26 +02:00
Martin Lund
9476422922 Remove command-line option inconsistencies
Optional arguments, as parsed by the getopt_long mechanism, are
inherently inconsistent with how you define required arguments.

To avoid confusion we decide to avoid this inconsistency by replacing
optional options with additional options with required argmuments.
2022-06-04 19:08:05 +02:00
Martin Lund
8d2ad8d82d Update man page 2022-06-04 17:45:19 +02:00
Martin Lund
d43ef3333f Replace '1' with 'enable' in config files 2022-06-04 17:33:36 +02:00
Martin Lund
6b91159fdf Update README 2022-06-04 17:08:16 +02:00
Martin Lund
be2c682da6 Convert errors to warnings 2022-06-02 20:51:23 +02:00
Martin Lund
b0590fb021 Bump version 2022-06-02 10:54:08 +02:00
Martin Lund
ba201c7248 Update version date 2022-06-02 09:36:36 +02:00
Martin Lund
4e89858816 Update ChangeLog 2022-06-02 01:06:37 +02:00
Martin Lund
b0c085debd Revert back to showing help when no arguments 2022-06-02 01:04:24 +02:00
Martin Lund
89574b2469 Mention config file in --help 2022-06-02 00:29:25 +02:00
Martin Lund
fb1fc9b7a1 Update README 2022-06-01 23:46:42 +02:00
Martin Lund
6e0fcd1280 Update ChangeLog 2022-06-01 23:43:21 +02:00
Martin Lund
836c28098c Redirect error messages to stderr 2022-06-01 19:55:44 +02:00
Martin Lund
5b6a106b34 Improve help and man page 2022-06-01 19:26:42 +02:00
Martin Lund
c94e8826fd Fix running without config file 2022-06-01 18:37:11 +02:00
Martin Lund
c96c3c4c83 Fix config file error messages 2022-06-01 18:23:14 +02:00
Martin Lund
c7b27b022f Redirect error messages to stderr 2022-05-24 13:35:27 +02:00
Martin Lund
9bc6e34e82 Add repology packaging status 2022-05-22 20:19:21 +02:00
Martin Lund
9a1afc09c2 Fix parsing of default settings
Default configuration file settings were not parsed in case a section
was matched. Now we make sure that the default (unnamed) settings are
always parsed.
2022-05-15 22:37:59 +02:00
Martin Lund
8da06ebf2c Fix typo 2022-05-15 20:21:58 +02:00
Martin Lund
16cba00c54 Append to existing log file (no truncation) 2022-05-07 16:02:41 +02:00
Martin Lund
2369c0558d
Merge pull request #146 from lexaone/master
fix for using option 'log' without 'log-filename' in config file
2022-05-07 15:54:37 +02:00
lexaone
334ae28c76
fix for using option 'log' without 'log-filename' in config file 2022-05-03 17:44:43 +03:00
Martin Lund
fa91a3fcc4 Update man page 2022-04-21 02:28:53 +02:00
Martin Lund
2e0b0386dc
Merge pull request #144 from pcc/config-section-name
Match user input against config section names if pattern matching was…
2022-04-21 01:29:24 +02:00
Peter Collingbourne
a81c43a01a Match user input against config section names if pattern matching was unsuccessful.
This allows for better config file ergonomics if the user has a diverse
set of serial devices as the name does not need to be specified in
the config file twice.
2022-04-20 15:31:41 -07:00
Martin Lund
b882827b97 Add socket info to show configuration 2022-04-20 19:43:29 +02:00
Martin Lund
b0b0856a8b Print socket info at startup 2022-04-20 19:20:26 +02:00
Martin Lund
7096bc3a96 Fix socket option parsing 2022-04-20 14:59:27 +02:00
Martin Lund
45c32f78a8 Update socket interface documentaton 2022-04-20 12:08:55 +02:00
Martin Lund
af93efb9e4 Bump version 2022-04-19 20:09:02 +02:00
Martin Lund
97a4c415bf Update AUTHORS 2022-04-19 20:08:02 +02:00
Martin Lund
09bb6a34bb
Merge pull request #143 from pcc/socket
Add support for external control via a Unix domain socket.
2022-04-19 20:04:44 +02:00
Peter Collingbourne
fb453160ef Add support for external control via a Unix domain socket.
This feature allows an external program to inject output into and
listen to input from a serial port via a Unix domain socket (path
specified via the -S/--socket command line flag, or the socket
config file option) while tio is running. This is useful for ad-hoc
scripting of serial port interactions while still permitting manual
control. Since many serial devices (at least on Linux) get confused
when opened by multiple processes, and most commands do not know
how to correctly open a serial device, this allows a more convenient
usage model than directly writing to the device node from an external
program.

Any input from clients connected to the socket is sent on the serial
port as if entered at the terminal where tio is running (except that
ctrl-t sequences are not recognized), and any input from the serial
port is multiplexed to the terminal and all connected clients.

Sockets remain open while the serial port is disconnected, and writes
will block.

Example usage 1 (issue a command):

  echo command | nc -UN /path/to/socket > /dev/null

Example usage 2 (use the expect command to script an interaction):

  #!/usr/bin/expect -f

  set timeout -1
  log_user 0

  spawn nc -UN /path/to/socket
  set uart $spawn_id

  send -i $uart "command1\n"
  expect -i $uart "prompt> "
  send -i $uart "command2\n"
  expect -i $uart "prompt> "
2022-04-18 14:06:33 -07:00
Martin Lund
03e41b61a3 Update version date 2022-04-13 18:00:34 +02:00