[docs](trx-rs): refresh top-level docs and config example
Rewrite the README, remove AI-generated planning docs, and regenerate the combined example config. Co-authored-by: OpenAI Codex <codex@openai.com> Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
+55
-159
@@ -1,245 +1,141 @@
|
||||
# trx-rs Combined Configuration File
|
||||
#
|
||||
# Copy this file to one of:
|
||||
# ./trx-rs.toml (current directory)
|
||||
# ~/.config/trx-rs/trx-rs.toml (user config)
|
||||
# /etc/trx-rs/trx-rs.toml (system-wide)
|
||||
#
|
||||
# Or use per-binary files (trx-server.toml / trx-client.toml) without the
|
||||
# section headers — both formats are supported and the section headers may
|
||||
# also appear in any per-binary file passed via --config.
|
||||
#
|
||||
# CLI arguments override config file values.
|
||||
|
||||
# =============================================================================
|
||||
# trx-server — connects to radio hardware, exposes a JSON/audio TCP server
|
||||
# =============================================================================
|
||||
[trx-server]
|
||||
rigs = []
|
||||
|
||||
[trx-server.general]
|
||||
# Callsign or station identifier
|
||||
callsign = "N0CALL"
|
||||
|
||||
# Log level: trace, debug, info, warn, error
|
||||
# log_level = "info"
|
||||
log_level = "info"
|
||||
latitude = 52.2297
|
||||
longitude = 21.0122
|
||||
|
||||
[trx-server.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"
|
||||
|
||||
[trx-server.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
|
||||
|
||||
[trx-server.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
|
||||
|
||||
[trx-server.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 = 4530
|
||||
|
||||
[trx-server.listen.auth]
|
||||
# Authentication tokens (empty = no auth required)
|
||||
tokens = []
|
||||
|
||||
[trx-server.pskreporter]
|
||||
# Enable uploads of decoded FT8/WSPR spots to PSK Reporter
|
||||
enabled = false
|
||||
[trx-server.audio]
|
||||
enabled = true
|
||||
listen = "127.0.0.1"
|
||||
port = 4531
|
||||
rx_enabled = true
|
||||
tx_enabled = true
|
||||
sample_rate = 48000
|
||||
channels = 2
|
||||
frame_duration_ms = 20
|
||||
bitrate_bps = 256000
|
||||
|
||||
# PSK Reporter endpoint (UDP)
|
||||
[trx-server.pskreporter]
|
||||
enabled = false
|
||||
host = "report.pskreporter.info"
|
||||
port = 4739
|
||||
|
||||
# Optional receiver locator (4 or 6-char Maidenhead).
|
||||
# If omitted, it is derived from [trx-server.general] latitude/longitude.
|
||||
# receiver_locator = "JO93"
|
||||
|
||||
[trx-server.aprsfi]
|
||||
# Enable APRS-IS IGate uplink (forwards received RF APRS packets to APRS-IS / aprs.fi)
|
||||
enabled = false
|
||||
|
||||
# APRS-IS server (rotate.aprs.net does DNS round-robin across all tier-2 servers)
|
||||
host = "rotate.aprs.net"
|
||||
port = 14580
|
||||
|
||||
# APRS-IS passcode. -1 = auto-computed from [trx-server.general] callsign.
|
||||
# passcode = -1
|
||||
passcode = -1
|
||||
|
||||
[trx-server.decode_logs]
|
||||
# Optional decoder message logs to files (APRS/CW/FT8/WSPR)
|
||||
enabled = false
|
||||
|
||||
# Base directory for decoder logs.
|
||||
# Default (if omitted): $XDG_DATA_HOME/trx-rs/decoders
|
||||
# Fallback: logs/decoders
|
||||
# dir = "/path/to/decoder-logs"
|
||||
|
||||
# Per-decoder log file names (supported tokens: %YYYY% %MM% %DD%)
|
||||
dir = "/path/to/log/dir"
|
||||
aprs_file = "TRXRS-APRS-%YYYY%-%MM%-%DD%.log"
|
||||
cw_file = "TRXRS-CW-%YYYY%-%MM%-%DD%.log"
|
||||
ft8_file = "TRXRS-FT8-%YYYY%-%MM%-%DD%.log"
|
||||
wspr_file = "TRXRS-WSPR-%YYYY%-%MM%-%DD%.log"
|
||||
|
||||
# --- SoapySDR backend example ---
|
||||
# To use an SDR device instead of a physical transceiver, set:
|
||||
#
|
||||
# [trx-server.rig]
|
||||
# model = "soapysdr"
|
||||
# initial_freq_hz = 14074000
|
||||
# initial_mode = "USB"
|
||||
#
|
||||
# [trx-server.rig.access]
|
||||
# type = "sdr"
|
||||
# args = "driver=rtlsdr"
|
||||
#
|
||||
# [trx-server.sdr]
|
||||
# sample_rate = 1920000
|
||||
# bandwidth = 1500000
|
||||
# center_offset_hz = 200000
|
||||
#
|
||||
# [trx-server.sdr.gain]
|
||||
# mode = "auto"
|
||||
# value = 30.0
|
||||
#
|
||||
# [trx-server.sdr.squelch]
|
||||
# enabled = false
|
||||
# threshold_db = -65.0
|
||||
# hysteresis_db = 3.0
|
||||
# tail_ms = 180
|
||||
#
|
||||
# [[trx-server.sdr.channels]]
|
||||
# id = "primary"
|
||||
# offset_hz = 0
|
||||
# mode = "auto"
|
||||
# audio_bandwidth_hz = 3000
|
||||
# decoders = ["ft8", "cw"]
|
||||
# stream_opus = true
|
||||
#
|
||||
# [[trx-server.sdr.channels]]
|
||||
# id = "wspr"
|
||||
# offset_hz = 21600
|
||||
# mode = "USB"
|
||||
# audio_bandwidth_hz = 3000
|
||||
# decoders = ["wspr"]
|
||||
# stream_opus = false
|
||||
[trx-server.sdr]
|
||||
sample_rate = 1920000
|
||||
bandwidth = 1500000
|
||||
wfm_deemphasis_us = 50
|
||||
center_offset_hz = 100000
|
||||
channels = []
|
||||
max_virtual_channels = 4
|
||||
|
||||
# =============================================================================
|
||||
# trx-client — connects to trx-server and exposes user-facing frontends
|
||||
# =============================================================================
|
||||
[trx-server.sdr.gain]
|
||||
mode = "auto"
|
||||
value = 30.0
|
||||
|
||||
[trx-server.sdr.squelch]
|
||||
enabled = false
|
||||
threshold_db = -65.0
|
||||
hysteresis_db = 3.0
|
||||
tail_ms = 180
|
||||
|
||||
[trx-client.general]
|
||||
# Callsign or station identifier displayed in frontends
|
||||
callsign = "N0CALL"
|
||||
|
||||
# Log level: trace, debug, info, warn, error
|
||||
# log_level = "info"
|
||||
website_url = "https://haxx.space"
|
||||
website_name = "haxx.space"
|
||||
ais_vessel_url_base = "https://www.vesselfinder.com/?mmsi="
|
||||
log_level = "info"
|
||||
|
||||
[trx-client.remote]
|
||||
# Remote trx-server URL (host:port)
|
||||
url = "192.168.1.100:9000"
|
||||
# Optional target rig ID on a multi-rig server (omit to use server default rig)
|
||||
# rig_id = "hf"
|
||||
|
||||
# Poll interval in milliseconds
|
||||
rig_id = "hf"
|
||||
poll_interval_ms = 750
|
||||
|
||||
[trx-client.remote.auth]
|
||||
# Bearer token for authenticating with the remote server
|
||||
token = "my-token"
|
||||
|
||||
[trx-client.frontends.http]
|
||||
# Enable HTTP/REST frontend with SSE for real-time updates
|
||||
enabled = true
|
||||
listen = "127.0.0.1"
|
||||
port = 8080
|
||||
default_rig_id = "hf"
|
||||
initial_map_zoom = 10
|
||||
spectrum_coverage_margin_hz = 50000
|
||||
spectrum_usable_span_ratio = 0.9200000166893005
|
||||
show_sdr_gain_control = true
|
||||
|
||||
[trx-client.frontends.http.auth]
|
||||
# Optional passphrase-based authentication for the HTTP frontend
|
||||
# Disabled by default to preserve backward compatibility
|
||||
|
||||
# Enable authentication (default: false)
|
||||
enabled = false
|
||||
|
||||
# Read-only passphrase: grants access to status/events/audio (rx role)
|
||||
# Leave unset to disable rx access
|
||||
# rx_passphrase = "rx-only-passphrase"
|
||||
|
||||
# Full control passphrase: grants access to all endpoints including TX/PTT (control role)
|
||||
# Leave unset to disable control access
|
||||
# control_passphrase = "full-control-passphrase"
|
||||
|
||||
# Enforce TX/PTT access control (default: true)
|
||||
# When true, TX/PTT endpoints return 404 to authenticated users without control role
|
||||
rx_passphrase = "rx-passphrase-example"
|
||||
control_passphrase = "control-passphrase-example"
|
||||
tx_access_control_enabled = true
|
||||
|
||||
# Session time-to-live in minutes (default: 480 = 8 hours)
|
||||
session_ttl_min = 480
|
||||
|
||||
# Set Secure flag on session cookie (default: false)
|
||||
# Should be true if served over HTTPS; false for HTTP/localhost
|
||||
cookie_secure = false
|
||||
|
||||
# Cookie SameSite attribute: Strict, Lax (default), or None
|
||||
cookie_same_site = "Lax"
|
||||
|
||||
[trx-client.frontends.rigctl]
|
||||
# Enable rigctl-compatible TCP interface (hamlib compatible)
|
||||
enabled = false
|
||||
listen = "127.0.0.1"
|
||||
port = 4532
|
||||
|
||||
[trx-client.frontends.rigctl.rig_ports]
|
||||
|
||||
[trx-client.frontends.http_json]
|
||||
# Enable JSON-over-TCP control interface
|
||||
enabled = true
|
||||
listen = "127.0.0.1"
|
||||
# Set to 0 to bind an ephemeral port
|
||||
port = 0
|
||||
# List of accepted bearer tokens (empty = no auth)
|
||||
# auth.tokens = ["example-token"]
|
||||
|
||||
[trx-client.frontends.http_json.auth]
|
||||
tokens = []
|
||||
|
||||
[trx-client.frontends.audio]
|
||||
# Enable remote audio stream and decode transport
|
||||
enabled = true
|
||||
# Remote trx-server audio port
|
||||
server_port = 4531
|
||||
# Optional per-rig audio ports for multi-rig servers:
|
||||
# rig_ports.ft817 = 4531
|
||||
# rig_ports.airspyhf = 4532
|
||||
|
||||
[trx-client.frontends.audio.rig_ports]
|
||||
|
||||
[trx-client.frontends.audio.bridge]
|
||||
# Enable local cpal bridge for WSJT-X virtual audio routing
|
||||
enabled = false
|
||||
# Optional exact output device name for RX playback
|
||||
# rx_output_device = "BlackHole 2ch"
|
||||
# Optional exact input device name for TX capture
|
||||
# tx_input_device = "BlackHole 2ch"
|
||||
# Playback/capture gain multipliers
|
||||
bitrate_bps = 192000
|
||||
rx_gain = 1.0
|
||||
tx_gain = 1.0
|
||||
|
||||
Reference in New Issue
Block a user