Add VRS JSON format support for readsb integration
Added comprehensive support for VRS (Virtual Radar Server) JSON format
as a simpler alternative to Beast binary protocol, enabling integration
with readsb --net-vrs-port output.
## Key Features:
- **VRS JSON Parser**: Stream parsing of newline-delimited JSON aircraft data
- **VRS Client**: TCP client with automatic reconnection and error recovery
- **Mixed Format Support**: Use Beast and VRS sources simultaneously
- **Enhanced Aircraft Data**: Added VRS-specific fields (registration, type, operator)
- **Position Source Tracking**: Identifies ADS-B, MLAT, TIS-B, and satellite positions
## Implementation:
- `internal/vrs/parser.go`: VRS JSON message parsing and validation
- `internal/client/vrs.go`: VRS TCP client implementation
- Enhanced `MultiSourceClient` to support both Beast and VRS formats
- Extended `Aircraft` struct with validity flags and additional metadata
- Updated configuration to include `format` field ("beast" or "vrs")
## Testing:
- Successfully tested against svovel:33005 VRS JSON stream
- Verified aircraft data parsing and position tracking
- Confirmed mixed-format operation with existing Beast clients
## Documentation:
- Updated README.md with VRS format configuration examples
- Enhanced ARCHITECTURE.md with VRS parser documentation
- Added data format comparison and configuration guide
This enables simpler integration with modern readsb installations while
maintaining full backward compatibility with existing Beast deployments.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
3d92ce4481
commit
073acb7304
10 changed files with 903 additions and 40 deletions
42
README.md
42
README.md
|
|
@ -1,12 +1,13 @@
|
|||
# SkyView - Multi-Source ADS-B Aircraft Tracker
|
||||
|
||||
A high-performance, multi-source ADS-B aircraft tracking application that connects to multiple dump1090 Beast format TCP streams and provides a modern web interface with advanced visualization capabilities.
|
||||
A high-performance, multi-source ADS-B aircraft tracking application that connects to multiple dump1090/readsb receivers using Beast binary or VRS JSON formats and provides a modern web interface with advanced visualization capabilities.
|
||||
|
||||
## ✨ Features
|
||||
|
||||
### Multi-Source Data Fusion
|
||||
- **Beast Binary Format**: Native support for dump1090 Beast format (port 30005)
|
||||
- **Multiple Receivers**: Connect to unlimited dump1090 sources simultaneously
|
||||
- **Multiple Formats**: Support for both Beast binary (port 30005) and VRS JSON (port 33005) protocols
|
||||
- **Multiple Receivers**: Connect to unlimited dump1090/readsb sources simultaneously
|
||||
- **Mixed Sources**: Use Beast and VRS sources together in the same system
|
||||
- **Intelligent Merging**: Smart data fusion with signal strength-based source selection
|
||||
- **High-throughput Processing**: High-performance concurrent message processing
|
||||
|
||||
|
|
@ -75,13 +76,25 @@ sudo systemctl enable skyview
|
|||
"sources": [
|
||||
{
|
||||
"id": "primary",
|
||||
"name": "Primary Receiver",
|
||||
"name": "Primary Receiver (Beast)",
|
||||
"host": "localhost",
|
||||
"port": 30005,
|
||||
"format": "beast",
|
||||
"latitude": 51.4700,
|
||||
"longitude": -0.4600,
|
||||
"altitude": 50.0,
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"id": "secondary",
|
||||
"name": "Secondary Receiver (VRS JSON)",
|
||||
"host": "192.168.1.100",
|
||||
"port": 33005,
|
||||
"format": "vrs",
|
||||
"latitude": 51.4800,
|
||||
"longitude": -0.4500,
|
||||
"altitude": 75.0,
|
||||
"enabled": true
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
|
|
@ -97,6 +110,27 @@ sudo systemctl enable skyview
|
|||
}
|
||||
```
|
||||
|
||||
### Data Format Configuration
|
||||
|
||||
SkyView supports two ADS-B data formats:
|
||||
|
||||
#### Beast Binary Format
|
||||
- **Port**: Typically 30005
|
||||
- **Format**: Binary protocol developed by FlightAware
|
||||
- **Source**: dump1090, dump1090-fa, readsb with `--net-bo-port 30005`
|
||||
- **Configuration**: `"format": "beast"` (default if not specified)
|
||||
- **Advantages**: Compact binary format, includes precise timestamps and signal strength
|
||||
|
||||
#### VRS JSON Format
|
||||
- **Port**: Typically 33005
|
||||
- **Format**: JSON objects with aircraft arrays
|
||||
- **Source**: readsb with `--net-vrs-port 33005`
|
||||
- **Configuration**: `"format": "vrs"`
|
||||
- **Advantages**: Human-readable JSON, simpler to parse and debug
|
||||
- **Update Interval**: Configurable with `--net-vrs-interval` (default 5 seconds)
|
||||
|
||||
Both formats can be used simultaneously in the same SkyView instance for maximum flexibility and redundancy.
|
||||
|
||||
### Command Line Options
|
||||
|
||||
```bash
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue