c4007f16e3
Add a JSON-over-TCP listener so trx-client can connect to trx-server. Speaks the ClientEnvelope/ClientResponse protocol from trx-core::client. - New listener.rs module with per-client connection handling - ListenConfig/AuthConfig in config.rs (default: 127.0.0.1:4532) - CLI args --listen and --port for override - Optional token-based authentication - Updated example config with [listen] section Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com>
65 lines
1.5 KiB
TOML
65 lines
1.5 KiB
TOML
# trx-server Configuration File
|
|
#
|
|
# Copy this file to one of:
|
|
# ./trx-server.toml (current directory)
|
|
# ~/.config/trx-rs/server.toml (user config)
|
|
# /etc/trx-rs/server.toml (system-wide)
|
|
#
|
|
# Or specify a custom path with: trx-server --config /path/to/config.toml
|
|
#
|
|
# CLI arguments override config file values.
|
|
|
|
[general]
|
|
# Callsign or station identifier
|
|
callsign = "N0CALL"
|
|
|
|
# Log level: trace, debug, info, warn, error
|
|
# log_level = "info"
|
|
|
|
[rig]
|
|
# Rig model: ft817 (more models coming)
|
|
model = "ft817"
|
|
# Initial frequency (Hz) before first CAT read
|
|
initial_freq_hz = 144300000
|
|
# Initial mode before first CAT read (LSB, USB, CW, CWR, AM, WFM, FM, DIG, PKT)
|
|
initial_mode = "USB"
|
|
|
|
[rig.access]
|
|
# Access type: "serial" or "tcp"
|
|
type = "serial"
|
|
|
|
# Serial port settings (when type = "serial")
|
|
port = "/dev/ttyUSB0"
|
|
baud = 9600
|
|
|
|
# TCP settings (when type = "tcp")
|
|
# host = "192.168.1.100"
|
|
# tcp_port = 4532
|
|
|
|
[behavior]
|
|
# Polling interval when idle (milliseconds)
|
|
poll_interval_ms = 500
|
|
|
|
# Polling interval when transmitting (milliseconds)
|
|
poll_interval_tx_ms = 100
|
|
|
|
# Maximum retry attempts for transient errors
|
|
max_retries = 3
|
|
|
|
# Base delay for exponential backoff (milliseconds)
|
|
retry_base_delay_ms = 100
|
|
|
|
[listen]
|
|
# Enable the JSON TCP listener for client connections
|
|
enabled = true
|
|
|
|
# IP address to listen on (use "0.0.0.0" for all interfaces)
|
|
listen = "127.0.0.1"
|
|
|
|
# TCP port to listen on
|
|
port = 4532
|
|
|
|
[listen.auth]
|
|
# Authentication tokens (empty = no auth required)
|
|
tokens = []
|