Commit graph

401 commits

Author SHA1 Message Date
Wes Koerber
df5379bac5 chore: reorder log-strip and log-append
reorder to maintain consistency with documentation
2023-07-13 20:58:20 -04:00
Wes Koerber
5656381cc3 chore: update readme, bash completion, man page 2023-07-13 20:58:01 -04:00
Wes Koerber
d461751a71 fix: support --log-append in cli options
fixes: #199
2023-07-13 20:49:53 -04:00
Martin Lund
d3bd5d8e17 Remove warning when using pattern option 2023-06-09 20:13:39 +02:00
Martin Lund
148a3c1da1 Add --log-append option
Add --log-append option which makes tio append to any existing log file.

This also changes the default behaviour of tio from appending to
overwriting any existing log file. Now you have to use this new option
to make tio append.
2023-04-28 20:50:34 +02:00
Martin Lund
8fe5dde4b8 Fix line termination for response wait feature
The response wait feature waited for a line response, a string
terminated with either CR or NL. However, some devices may send a CR and
then their line content and then NL. This means tio will quit before
receiving and printing the line response. To solve this we simply ignore
the CR character and only consider lines terminated with a NL character.

This should work for all devices as lines are AFAIK always terminated
with either CRNL or a NL.
2023-04-20 17:28:43 +02:00
Braden Young
afc9e3be5b Move map variables to tty to keep them all in one spot 2023-04-14 15:00:03 -07:00
Braden Young
5651c1c5d7 Configure socket mapping flags from tty parsing logic. Remove duplicate parsing logic in socket 2023-04-14 13:08:48 -07:00
Braden Young
65b3353f57 Support input mapping modes for sockets 2023-04-14 11:18:27 -07:00
Josh Soref
cbb8ad8362 spelling: timestamp
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-03 17:40:32 -04:00
Martin Lund
4008969ca7
Merge pull request #191 from Habbie/setspeed-warning-unused
avoid "warning: unused parameter" on setspeed stub
2023-03-20 21:09:06 +01:00
Peter van Dijk
c16e004757 avoid "warning: unused parameter" on setspeed stub 2023-03-20 20:00:50 +00:00
Peter van Dijk
0cdc3ce045 use right /dev/ path on Haiku 2023-03-10 23:58:52 +00:00
Martin Lund
f6905b4213 Update tty device listing configuration
Cleanup and add FreeBSD tty device listing support.
2023-02-28 17:57:10 +01:00
Martin Lund
4e9d29c88d Add support for $HOME/.tioconfig
Replaces what used to be $HOME/.tiorc
2022-12-07 04:10:56 +01:00
Vyacheslav Patkov
42739c0817 Better error checking in config file, rename the file
Accept "true", "enable", "on", "yes", "1" as true values, their
counterparts as false ones. Check integer values for errors and range.
Warn about ignored (e.g. misspelled) options.

Check getenv() return value for NULL.

Rename "tiorc" to "config", as it's a static INI file, not an executable
"run commands".
2022-12-06 20:27:14 +04:00
Martin Lund
2915d26a19 Fix double prefix key regression 2022-12-05 16:27:53 +01:00
Martin Lund
cd24797961 Update flush command 2022-12-02 12:45:45 +01:00
Martin Lund
93e6efc001 Add threaded input handling
To make tio more responsive to quit and I/O flush key command when main I/O
thread is blocked on output.
2022-11-28 14:44:32 +01:00
Martin Lund
12f20c84e3 Fix so that is it possible to quit tio in tio etc.
Fix regression so that it is possible to send the prefix key code to the
remote tio session without local tio session reacting to same key code
(quitting etc.).
2022-11-28 14:30:54 +01:00
Martin Lund
419fbdc3fa Add key command to toggle log on/off
Add key command 'ctrl-t f' which will toggle log on/off.

If no log filename has been specified via the 'log-filename' option then
tio will automatically generate a new log filename every time the log
feature is toggled on. Meaning, when toggled multiple times, multiple
log files will be generated.

However, if a log filename has been specified, tio will only write and
append to that same file.
2022-11-23 17:24:54 +01:00
Martin Lund
a4f0d4da53 Add socket input comment 2022-11-21 17:16:14 +01:00
Martin Lund
c80f833a06 Add mute feature
This will make tio go fully silent and not print anything.
2022-10-22 08:59:41 +02:00
Martin Lund
784201ea2e Deprecate tty config keyword but keep it around for now 2022-10-19 23:56:31 +02:00
Martin Lund
2cba4b863f Update text 2022-10-19 22:44:10 +02:00
Martin Lund
fba56318f8 Update show config 2022-10-19 22:35:34 +02:00
Martin Lund
48a2298e81 Rename config variable 'tty' to 'device' 2022-10-19 22:29:33 +02:00
Martin Lund
6f9e41152b Update show config 2022-10-19 22:18:25 +02:00
Martin Lund
b00b0e872f Beautify help 2022-10-17 13:55:00 +02:00
Martin Lund
c2aa3489fd Fix error message 2022-10-17 01:12:35 +02:00
Martin Lund
ad9b93dc52 Simplify configfile implementation 2022-10-17 00:23:26 +02:00
Martin Lund
a97b2c00cd Add shell completion of sub-configuration names
Does not work with sub configuration names that contains one or more
white spaces.
2022-10-16 23:02:04 +02:00
Martin Lund
c8aeba7ef8 Fix output line delay
Apply output line delay on lines ending with \n.

On most systems lines ends with \n or \r\n.
2022-10-11 12:12:40 +02:00
Martin Lund
a65b5b0e3a Do not print timestamps in hex mode 2022-09-29 20:50:12 +02:00
Martin Lund
5f14924c96 Improve input mechanism in hex mode
Print the 2 character hex code that you input in hex mode but then
delete it before sending. This way it is easier to keep track of what
you are inputting. It basically mimics the ctrl-shift-u input mechanism
that is used to input unicode.
2022-09-29 20:18:36 +02:00
Attila Veghelyi
4924969268 Complete bit reorder feature for release 2022-09-29 17:33:35 +02:00
Attila Veghelyi
5b8f33bd78 Add bit reverse order feature 2022-09-29 15:42:44 +02:00
Martin Lund
ce3101a380 Clean up indentation 2022-09-18 19:20:12 +02:00
Martin Lund
ab885713b9 Add support for sending prefix character to serial device
Do so by inputting prefix key twice, e.g. input ctrl-t ctrl-t to send
ctrl-t character to serial device.
2022-09-11 22:17:29 +02:00
Martin Lund
6618642acf Fix tty path on MSYS/CYGWIN platforms 2022-09-11 13:38:13 +02:00
Martin Lund
16479c8d86 Cleanup 2022-09-11 11:55:19 +02:00
Martin Lund
8188bb5b76 Handle stale unix socket file
Delete existing unix socket file if it is tested to be stale, meaning no
one is listening on it.
2022-09-11 11:20:27 +02:00
Martin Lund
0afcef807b Cleanup 2022-09-11 00:57:05 +02:00
Martin Lund
1dc3a3891d Cleanup 2022-09-10 23:31:02 +02:00
Martin Lund
ba2d49d2f7 Consolidate timestamp implementation in one file 2022-09-10 23:29:23 +02:00
Martin Lund
dbc9a8e82d Add visual or audible alert support on connect/disconnect
The feature is detailed via the following option:

 --alert none|bell|blink

     Set alert action on connect/disconnect.

     It will sound the bell once or blink once on successful connect.
     Likewise it will sound the bell twice or blink twice on disconnect.

     Default value is "none" for no alert.
2022-09-10 22:33:42 +02:00
Martin Lund
68fc159654 Fix listing of serial devices in MSYS2/Cygwin
We generally try to list serial devices by ID but in the MSYS2/Cygwin
environment serial devices are not available by ID and so we simply list
the basic serial device paths instead.
2022-09-10 19:06:18 +02:00
Martin Lund
ee46686fb6 Add experimental RS-485 support
Many modern RS-485 serial devices such as the ones from FTDI already
operate in RS-485 mode by default and will work with tio out of the box.
However, there are some RS-232/485 devices which need to be switched
from e.g. RS-232 to RS-485 mode to operate accordingly on the physical
level.

This commit implements the switching mechanism and interface required to
enable RS-485 mode. It only works on Linux and with serial devices which
use device drivers that support the Linux RS-485 control interface.

The RS-485 feature is detailed via the following options:

 --rs-485                           Enable RS-485 mode
 --rs-485-config <config>           Set RS-485 configuration

Set the RS-485 configuration using the following key or key value pair
format in the configuration field:

 RTS_ON_SEND=value             Set logical level (0 or 1) for RTS pin when sending
 RTS_AFTER_SEND=value          Set logical level (0 or 1) for RTS pin after sending
 RTS_DELAY_BEFORE_SEND=value   Set RTS delay (ms) before sending
 RTS_DELAY_AFTER_SEND=value    Set RTS delay (ms) after sending
 RX_DURING_TX                  Receive data even while sending data

If defining more than one key or key value pair, they must be comma
separated.

Example use:

 $ tio /dev/ttyUSB0 --rs-485 --rs-r485-config=RTS_DELAY_AFTER_SEND=50,RX_DURING_TX
2022-09-10 17:52:54 +02:00
Martin Lund
a58d406a3c Update list description 2022-09-08 09:32:51 +02:00
Peter Collingbourne
db765bc371 Ignore SIGPIPE signals
If the remote end of a socket is closed between when an input character
is received from the serial port and when it is written to the socket,
tio will receive a SIGPIPE signal when writing the character to the
socket, which will terminate the program. To prevent this, ignore the
signal, which will cause write(2) to return -EPIPE, causing tio to close
the socket.
2022-08-17 16:51:15 -07:00