blob: 8ce266c3cf66fe3ea84331d20f883d0cc5369adb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# CATS Radio Node
This project contains a web user interface for controlling a
[https://cats.radio](CATS Radio) device, consisting of a Raspberry Pi with a
[https://gitlab.scd31.com/cats/pi-hardware](RF4463 hat).
## Goals
1. Show incoming packets, and store them in the sqlite database `cats-radio-node.db`
1. Allow the user to send custom packets
1. Configure igate and other settings, stored in `node-config.toml`
## Current state of the project
Configuration read/write through UI is done.
RF4463 integration, message decoding and presentation, UI to send messages.
Tunnel IP packets through Arbitrary whiskers, using TUN.
### TODO:
* Nicer UI for presenting incoming packets. For now it just shows the Comment whisker.
* Live update of incoming packets using WebSocket.
* A 'chat' page that works better to actually chat with another node.
* igate integration
## Additional tools
### fake-radio
If no radio is available, frames can be sent and received over UDP for debugging.
cats-radio-node receives on 127.0.0.1:9073, and transmits to 127.0.0.1:9074.
The `fake-radio` binary can be used to inject frames for that, and decodes those sent by cats-radio-node.
Build with `cargo build --bin fake-radio`
## Remarks
Careful when installing Rust on a Raspberry Pi with a 64-bit kernel running a 32-bit userland: `rustup` will want
to install the aarch64 toolchain, but that one doesn't work!
If that happens, be sure to select the `stable-arm-unknown-linux-gnueabihf` toolchain, and set it as default using
`rustup default`.
|