Categorygithub.com/tzneal/ham-go
repositorypackage
0.2.1
Repository: https://github.com/tzneal/ham-go.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

Ham related go code

cmd/termlog

screenshot

The main driver for writing the rest of this code. A cross platform console based ham contact logger. I'm developing it for my own use, so it only has features I need/want.

  • Saves logs as ADIF files with custom fields
  • Supports auto-commiting log filesgit to a git repository
  • DX cluster & POTA spot monitoring
  • Radio control through hamlib (github.com/dh1tw/goHamlib)
  • Logs for both WSJT-X and fldigi
  • LoTW integration (syncs QSL information from LoTW to stored ADIF files)

Installation

Linux x64

```
sudo apt-get install -y libhamlib2
sudo wget https://github.com/tzneal/ham-go/releases/download/v0.2.0/termlog.amd64 -O /usr/bin/termlog
sudo chmod a+x /usr/bin/termlog
/usr/bin/termlog --upgrade-config
```

Linux/32 bit ARM (Raspberry Pi)

sudo apt-get install -y libhamlib2
sudo wget https://github.com/tzneal/ham-go/releases/download/v0.2.0/termlog.arm -O /usr/bin/termlog
sudo chmod a+x /usr/bin/termlog
/usr/bin/termlog --upgrade-config

Linux/64 bit ARM

sudo apt-get install -y libhamlib2
sudo wget https://github.com/tzneal/ham-go/releases/download/v0.2.0/termlog.arm64 -O /usr/bin/termlog
sudo chmod a+x /usr/bin/termlog
/usr/bin/termlog --upgrade-config

Precompiled binaries are also available at https://github.com/tzneal/ham-go/releases

Configuration

  1. Run termlog once, then hit Ctrl+Q to quit. This will create an initial config file at ~/.termlog.toml that you can then modify.
  2. Fill out the operator section at a minimum

Custom Commands

Custom user commands can be reached through Ctrl+E. These command are defined in the configuration file and environment variables are used to pass state to the command line.

As an exanple, the following will construct a command that syncs the current ADIF log file with LoTW using tqsl.

  [[Operator.Commands]]
    Name = "Sync Current Logfile with LoTW"
    Command = "$TQSL -a compliant --nodate --upload --batch $LOGFILE"

Environment Variables

  • LOGFILE - Path to the current logfile
  • TQSL - Path to the tqsl binary configured in the configuration file

Custom Fields

In the configuration file, custom ADIF fields can be defined. A SOTA field is defined in the default configuration and can be removed if not needed.

  [[Operator.CustomFields]]
    Name = "sota_ref"
    Label = "SOTA"
    Width = 8
    Default = ""

Command line options

Usage of ./termlog:
  -color-test
    	display a color test
  -config string
    	path to the configuration file (default "~/.termlog.toml")
  -hamlib-list
    	list the supported libhamlib devices
  -index
    	index the ADIF files passed in on the command line
  -key-test
    	list keyboard events
  -log string
    	specify a log file to load and write to
  -no-net
    	disable all features that require network access (useful for POTA/SOTA)
  -no-rig
    	disable rig control, even if enabled in the config file
  -search string
    	search the indexed ADIF files and print the results
  -sync-lotw-qsl
    	fetches QSL information from LoTW to update log QSL information in the default log directory
  -upgrade-config
    	upgrade the configuration file to the latest format

Commands

ShortcutCommand
Ctrl+QQuit termlog
Ctrl+HDisplay Help
Ctrl+NStart a new QSO (clearing the current one if not saved)
Ctrl+DSet the QSO time on to the current time
Ctrl+SSave the QSO to the log and start a new one
Ctrl+GCommit the current logfile to git
Ctrl+BSave a bookmark
Alt+BOpen the bookmark list
Ctrl+LFocus the QSO List
Ctrl+EDisplay custom user commands
Ctrl+RForce screen redraw
Alt+LeftTune down 500khz
Alt+RightTune up 500khz

adif

ADIF parsing and writing

callsigns

Callsign lookup interface with a couple of supported backends.

db

ADIF indexer used to quickly identify when you last saw a contact and how many times you've logged him.

dxcc

Callsign lookup via prefixes/exceptions through the data at www.country-files.com (works offline).

dxcluster

The beginnings of a DXCluster client.

fldigi

Enough code to parse the realtime fldigi emitted logs and save them to termlog.

wsjtx

Enough code to parse the realtime WSJT-X emitted logs and save them to termlog. I use this when running FT8 to capture logs in real time from WSJT-X.