Files
trx-rs/trx-server.toml.example
T
sjg 0d6a35a933 [feat](trx-server): add APRS-IS IGate uplink (aprs.fi integration)
Forwards CRC-valid RF APRS packets to APRS-IS via plain TCP using the
TNC2 line format, making them visible on aprs.fi and other APRS-IS
consumers. Mirrors the pskreporter module in structure.

- New aprsfi.rs: IGate task with reconnect loop (exponential backoff
  1s→60s), login/logresp, 60s keepalive, 60s stats, passcode
  auto-computation from callsign (standard APRS hash algorithm)
- config.rs: AprsFiConfig struct with enabled/host/port/passcode fields
  and validation; default host rotate.aprs.net:14580
- main.rs: mod aprsfi; spawn task inside audio block when aprsfi.enabled
- trx-server.toml.example, CONFIGURATION.md: document [aprsfi] section
- Remove APRSFI_IMPLEMENTATION.rs planning artifact

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 18:23:35 +01:00

105 lines
2.6 KiB
TOML

# trx-server Configuration File
#
# Copy this file to one of:
# ./trx-server.toml (current directory)
# ~/.trx-server.toml (legacy user config)
# ~/.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 = 4530
[listen.auth]
# Authentication tokens (empty = no auth required)
tokens = []
[pskreporter]
# Enable uploads of decoded FT8/WSPR spots to PSK Reporter
enabled = false
# PSK Reporter endpoint (UDP)
host = "report.pskreporter.info"
port = 4739
# Optional receiver locator (4 or 6-char Maidenhead).
# If omitted, it is derived from [general].latitude/[general].longitude.
# receiver_locator = "JO93"
[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 [general].callsign.
# passcode = -1
[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%
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"