PMR446-channels-for-CHIRP
Pre-configured CHIRP settings for PMR446 channels /subchannels on Baofeng radios
Utilities for Packet Radio in Rust. AX.25 encoding/decoding and radio interfacing.
git clone https://github.com/thombles/ax25-rs.gitthombles/ax25-rsThis project aims to provide everything you need to write cross-platform packet radio software in Rust.
The crate ax25 provides:
no_std environmentsThe crate ax25_tnc provides:
Most developers will want to focus on tnc::TncAddress and tnc::Tnc.
tnc:tcpkiss:192.168.0.1:8001 ortnc:linuxif:vk7ntk-2 ortnc:serialkiss:/dev/ttyUSB0:9600 (must enable serial feature on ax25_tnc)let addr = string.parse::<TncAddress>()?;let tnc = Tnc::open(&addr)?;send_frame() and incoming() to communicate on the radio.Tnc can be cloned for multithreaded use.If your application requires encoding/decoding AX.25 data directly, see the frame module.
This following is one of the included example programs, listen.rs. It is a poor
imitation of axlisten.
use ax25_tnc::tnc::{Tnc, TncAddress};
use std::env;
use time::OffsetDateTime;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let args: Vec<String> = env::args().collect();
if args.len() != 2 {
println!("Usage: {} <tnc-address>", args[0]);
println!("where tnc-address is something like");
println!(" tnc:linuxif:vk7ntk-2");
println!(" tnc:tcpkiss:192.168.0.1:8001");
println!(" tnc:serialkiss:/dev/ttyUSB0:9600");
std::process::exit(1);
}
let addr = args[1].parse::<TncAddress>()?;
let tnc = Tnc::open(&addr)?;
let receiver = tnc.incoming();
while let Ok(frame) = receiver.recv().unwrap() {
println!("{}", OffsetDateTime::now_utc());
println!("{}", frame);
}
Ok(())
}
It produces output like the following. Note that it must be run with sudo when
using the Linux interface.
$ sudo ./target/debug/examples/listen tnc:linuxif:vk7ntk-2
2020-02-02 21:51:11.017220715 +11:00
Source VK7NTK-1
Destination IDENT
Data "hello this is a test"
The above is the Display implementation for Ax25Frame - full protocol information
is available through its fields which are not printed here.
Planned features:
kissattachmore like this
Pre-configured CHIRP settings for PMR446 channels /subchannels on Baofeng radios
Vibe-coded, but not slop. A mobile-first SDR receiver for iOS, Android & Apple Watch — the live waterfall on your wrist…
The DAPNET Core is the core application of DAPNET, responsible for handling transmitter clients, clustering, and provid…
A native SDR client for SoapySDR, HPSDR and CAT/Audio written in Rust, with native and web remote UI (WASM), integrated…
search projects, people, and tags