m5evt / hellocontest

A simple HF contest log for Linux, written in Go
MIT License
1 stars 0 forks source link

Hello Contest

A simple HF contest log for Linux, written in Go using gotk3 for the UI. As I'm using this only for CW contests on HF, the program might not be very useful for other modes or higher frequencies. Anyway, here are some highlights:

I use this little project mainly as training ground to learn how to develop a desktop application in Go and to improve my Go-Fu.

Build

gtk+3.0

To build the software on your system with the gotk3 library, you may need to set a tag with the version number of gtk+3.0 that is installed on your system:

# find out the version number
pkg-config --modversion gtk+-3.0

# build hellocontest (example for gtk+ 3.22.30)
go build -tags gtk_3_22

Protobuf

Hellocontest uses Google's protocol buffers to define the data format of the log data stored on disk. The proto definition of the data format resides in the core/pb package. This package also contains the generated Go code to access the binary logbook data according to the proto definition. If you make any changes to the proto definition, you need to regenerate this code. The code generation is done using Google's protoc compiler for protocol buffers (see Google's documentation on protocol buffers for more information about how to install this tool). To run the code generation simply execute

go generate ./core/pb

This will generate the Go code to access the binary data in the logbook files into the core/pb package.

Glade

The UI is defined using a Glade file. This file is automatically integrated into the executable by the Go compiler, using Go's embed package (new in 1.16).

License

This software is published under the MIT License.

Copyright Florian Thienel