All Projects → la5nta → wl2k-go

la5nta / wl2k-go

Licence: MIT license
A Winlink framework for Go.

Programming Languages

go
31211 projects - #10 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to wl2k-go

VnArduino
VNA software with an Arduino
Stars: ✭ 27 (-22.86%)
Mutual labels:  amateur-radio
gnuradio ham
Basic example of using GNU Radio Companion for amateur (ham) radio communications
Stars: ✭ 19 (-45.71%)
Mutual labels:  amateur-radio
pyhamtools
A Library with Amateur Radio specific Functions and Methods
Stars: ✭ 71 (+102.86%)
Mutual labels:  amateur-radio
chirp
A mirror of the popular ham radio software from http://chirp.danplanet.com/projects/chirp/repository
Stars: ✭ 24 (-31.43%)
Mutual labels:  amateur-radio
remoteAudio
Audio streaming application for Amateur Radio purposes
Stars: ✭ 121 (+245.71%)
Mutual labels:  amateur-radio
MasterFrequencyList
Erics Master Frequency lists for RF tuning
Stars: ✭ 43 (+22.86%)
Mutual labels:  amateur-radio
FT857d
CAT support for Arduino, simulating a Yaesu FT-857D
Stars: ✭ 31 (-11.43%)
Mutual labels:  hamlib
HeartLib
Comprehensive API for Nintendo GBA inspired by HAMLib and HELlib.
Stars: ✭ 23 (-34.29%)
Mutual labels:  hamlib
1bitSDR
Minimal SDR with Lattice MachXO2 FPGA. And a port to Cyclone3 by Steven Groom
Stars: ✭ 53 (+51.43%)
Mutual labels:  amateur-radio
aredn ar71xx
AREDN develop branch porting on top of OpenWRT 19.07.0
Stars: ✭ 68 (+94.29%)
Mutual labels:  amateur-radio
Faraday-Software
Faraday node software
Stars: ✭ 41 (+17.14%)
Mutual labels:  amateur-radio
codec2 talkie
Turn your Android phone into Codec2 Walkie-Talkie (Bluetooth/USB/TCPIP KISS modem client for DV digital voice communication)
Stars: ✭ 65 (+85.71%)
Mutual labels:  amateur-radio
aprs-weather-submit
Manually submit weather station information to the APRS-IS network.
Stars: ✭ 17 (-51.43%)
Mutual labels:  amateur-radio
FAPRS
This repo is obsolete. Please use Chickadee
Stars: ✭ 16 (-54.29%)
Mutual labels:  amateur-radio
antenna analyzer vna
Pocket Arduino Nano based graphical SWR 160-6m bands panoramic VNA antenna analyzer based on AD9850, AD8302 and SGA3386
Stars: ✭ 17 (-51.43%)
Mutual labels:  amateur-radio
demod
Command line utility based on liquid-dsp for realtime SDR IQ stream demodulation
Stars: ✭ 32 (-8.57%)
Mutual labels:  ax25
pyqso
PyQSO is a contact logging tool for amateur radio operators.
Stars: ✭ 75 (+114.29%)
Mutual labels:  amateur-radio
k3ng antenna tuner
Arduino-based Automatic Amateur Radio Antenna Tuner
Stars: ✭ 33 (-5.71%)
Mutual labels:  amateur-radio
klog
KLog is a multiplatform free hamradio logger. It runs natively on Linux, macOS and Windows.
Stars: ✭ 31 (-11.43%)
Mutual labels:  amateur-radio
remoteRotator
remoteRotator lets you expose a local antenna rotator (azimuth / elevation) to the network
Stars: ✭ 32 (-8.57%)
Mutual labels:  amateur-radio

PkgGoDev Build Status Windows Build Status Go Report Card

Looking for the cross platform winlink client? Visit http://getpat.io.

Overview

wl2k-go is a collection of Go packages implementing various parts needed to build a Winlink client.

The project's goal is to encourage and facilitate development of cross-platform Winlink clients.

This project is under heavy development and breaking API changes are to be expected.

Pat: The client application

On 6 March 2016 the cmd/wl2k application moved to it's own repository.

Check out getpat.io for the latest version of the cross platform Winlink client, Pat.

fbb: The FBB (Winlink 2000 - B2F) protocol implementation

An implementation of the B2 Forwarding Protocol and Winlink 2000 Message Structure (the WL2K-protocol).

mycall := "LA5NTA"
mbox := mailbox.NewDirHandler("/tmp/mailbox", false)
session := fbb.NewSession(
	mycall,
	telnet.TargetCall,
	"JP20qh",
	mbox, // Use /tmp/mailbox as the mailbox for this session
)

// Exchange messages over any connection implementing the net.Conn interface
conn, _ := telnet.Dial(mycall)
session.Exchange(conn)

// Print subjects of messages in the inbox
msgs, _ := mbox.Inbox()
for _, msg := range msgs {
	fmt.Printf("Have message: %s\n", msg.Subject())
}

For detailed package documentation, see http://godoc.org/github.com/la5nta/wl2k-go.

A big thanks to paclink-unix by Nicholas S. Castellano N2QZ (and others). Without their effort and choice to share their knowledge through open source code, this implementation would probably never exist.

Paclink-unix was used as reference implementation for the B2F protocol since the start of this project.

Gzip experiment

Gzip message compression has been added as an experimental B2F extension, as an alternative to LZHUF. The feature can be enabled by setting the environment variable GZIP_EXPERIMENT=1 at runtime.

The protocol extension is negotiated by an additional character (G) in the handshake SID as well as a new proposal code (D), thus making it backwards compatible with software not supporting gzip compression.

The G sid flag tells the other party that gzip is supported through a D-proposal. The D-proposal has the same format as C-proposals, but is used to flag the data as gzip compressed.

The gzip feature works transparently, which means that it will not break protocol if it's unsupported by the other winlink node.

lzhuf: The compression

Package lzhuf implements the lzhuf compression used by the binary FBB protocols B, B1 and B2.

For detailed package documentation, see http://godoc.org/github.com/la5nta/wl2k-go/lzhuf.

transport

Package transport provides access to various connected modes commonly used for winlink.

The modes is made available through common interfaces and idioms from the net package, mainly net.Conn and net.Listener.

For detailed package documentation, see http://godoc.org/github.com/la5nta/wl2k-go/transport.

telnet

  • A simple TCP dialer/listener for the "telnet"-method.
  • Supports both P2P and CMS dialing.

ax25

  • Wrapper for the Linux AX.25 library (build with tag "libax25").
  • Kenwood TH-D7x/TM-D7x0 (or similar) TNCs over serial.

winmor

A WINMOR TNC driver that provides dialing and listen capabilities for a local or remote TNC.

The WINMOR TNC can be run under Wine:

  • Tested OK with WINMOR TNC 1.5.7.0 running on wine 1.6.2-17 (debian jessie) with .NET 2.0, 3.0 and 3.5 installed.
  • Tested OK with WINMOR TNC 1.4.7.0 running on wine 1.4.1-4 (debian wheezy) with .NET 2.0, 3.0, 3.5 and 4.0 installed.

When running WINMOR TNC under wine through pulseaudio, set PULSE_LATENCY_MSEC=60.

ardop

A driver for the ARDOP_Win (alpha) TNC that provides dialing and listen capabilities over ARDOP (Amateur Radio Digital Open Protocol).

mailbox: Directory based MBoxHandler implementation

For detailed package documentation, see http://godoc.org/github.com/la5nta/wl2k-go/mailbox.

mbox := mailbox.NewDirHandler("/tmp/mailbox", false)

session := fbb.NewSession(
    "N0CALL",
    telnet.TargetCall,
    "JP20qh",
    mbox,
)

rigcontrol/hamlib

Go bindings for a subset of hamlib. It provides both native cgo bindings and a rigctld client.

Build with -tags libhamlib to link against libhamlib (the native library).

See http://godoc.org/github.com/la5nta/wl2k-go/rigcontrol/hamlib for more details.

Copyright/License

Copyright (c) 2014-2015 Martin Hebnes Pedersen LA5NTA

(See LICENSE)

Thanks to

The JNOS developers for the lzhuf implementation which got ported to Go.

The paclink-unix team (Nicholas S. Castellano N2QZ and others) - reference implementation

Amateur Radio Safety Foundation, Inc. - The Winlink 2000 project

F6FBB Jean-Paul ROUBELAT - the FBB forwarding protocol

Contributors (alphabetical)

  • LA3QMA - Kai Günter Brandt
  • LA5NTA - Martin Hebnes Pedersen
  • Colin Stagner

wl2k-go is not affiliated with The Winlink Development Team nor the Winlink 2000 project [http://winlink.org].

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].