Commit graph

495 commits

Author SHA1 Message Date
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
Martin Lund
e837fd0303 Add line response feature
Add a simple line response feature to make it possible to send e.g. a
command string to your serial device and easily receive and parse a line
response.

This is a convenience feature for simple request/response interaction
based on lines. For more advanced interaction the socket feature should
be used instead.

The line response feature is detailed via the following options:

 -r, --response-wait

Wait for line response then quit. A line is considered any string ending
with either CR or NL character. If no line is received tio will quit
after response timeout.

Any tio text is automatically muted when piping a string to tio while in
response mode to make it easy to parse the response.

 --response-timeout <ms>

Set timeout [ms] of line response (default: 100).

Example:

Sending a string (SCPI command) to a test instrument (Korad PSU) and
print line response:

 $ echo "*IDN?" | tio /dev/ttyACM0 --response-wait
 KORAD KD3305P V4.2 SN:32477045
2022-08-15 19:58:28 +02:00
Martin Lund
72eb682267 Cleanup hex mode code 2022-08-06 17:12:16 +02:00
Martin Lund
75aa066bf8 Fix potential sscanf() overflow 2022-08-06 16:54:59 +02:00
Martin Lund
15bef05179 Only print version on '--version' 2022-07-28 21:32:00 +02:00
Martin Lund
a9b7284ba2 Revert "Enable log feature when using --log-filename"
This reverts commit c3116b2b56.

On second thought, this is less appropriate when using the configuration
file. We may want to define the log filename in config file but not
necessarily enable log feature.
2022-07-28 21:23:52 +02:00
Martin Lund
70f69899fc Cleanup 2022-07-25 12:48:20 +02:00