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
|
|
@ -52,21 +52,28 @@ SkyView is a high-performance, multi-source ADS-B aircraft tracking system built
|
|||
|
||||
## Core Components
|
||||
|
||||
### 1. Beast Format Clients (`internal/client/`)
|
||||
### 1. Multi-Format Clients (`internal/client/`)
|
||||
|
||||
**Purpose**: Manages TCP connections to dump1090 receivers
|
||||
**Purpose**: Manages TCP connections to dump1090/readsb receivers using multiple protocols
|
||||
|
||||
**Key Features**:
|
||||
- Concurrent connection handling for multiple sources
|
||||
- Automatic reconnection with exponential backoff
|
||||
- Beast binary format parsing
|
||||
- Support for Beast binary and VRS JSON formats
|
||||
- Per-source connection monitoring and statistics
|
||||
- Mixed-format multi-source support
|
||||
|
||||
**Files**:
|
||||
- `beast.go`: Main client implementation
|
||||
- `beast.go`: Beast binary client and multi-source manager
|
||||
- `vrs.go`: VRS JSON format client
|
||||
|
||||
### 2. Mode S/ADS-B Decoder (`internal/modes/`)
|
||||
**Supported Formats**:
|
||||
- **Beast Binary**: Traditional binary format from dump1090 (port 30005)
|
||||
- **VRS JSON**: JSON format from readsb VRS output (port 33005)
|
||||
|
||||
### 2. Data Format Processors
|
||||
|
||||
#### Mode S/ADS-B Decoder (`internal/modes/`)
|
||||
**Purpose**: Decodes raw Mode S and ADS-B messages into structured aircraft data
|
||||
|
||||
**Key Features**:
|
||||
|
|
@ -78,6 +85,18 @@ SkyView is a high-performance, multi-source ADS-B aircraft tracking system built
|
|||
**Files**:
|
||||
- `decoder.go`: Core decoding logic
|
||||
|
||||
#### VRS JSON Parser (`internal/vrs/`)
|
||||
**Purpose**: Parses Virtual Radar Server JSON format aircraft data
|
||||
|
||||
**Key Features**:
|
||||
- Newline-delimited JSON stream parsing
|
||||
- Direct aircraft data extraction (no Mode S decoding required)
|
||||
- Support for VRS-specific fields (registration, aircraft type, operator)
|
||||
- Position source identification (ADS-B, MLAT, TIS-B, Satellite)
|
||||
|
||||
**Files**:
|
||||
- `parser.go`: VRS JSON message parsing
|
||||
|
||||
### 3. Data Merger (`internal/merger/`)
|
||||
|
||||
**Purpose**: Fuses aircraft data from multiple sources using intelligent conflict resolution
|
||||
|
|
@ -144,9 +163,9 @@ SkyView is a high-performance, multi-source ADS-B aircraft tracking system built
|
|||
## Data Flow
|
||||
|
||||
### 1. Data Ingestion
|
||||
1. **Beast Clients** connect to dump1090 receivers via TCP
|
||||
2. **Beast Parser** processes binary message stream
|
||||
3. **Mode S Decoder** converts raw messages to structured aircraft data
|
||||
1. **Multi-format Clients** connect to dump1090/readsb receivers via TCP
|
||||
2. **Format Parsers** process binary Beast or JSON VRS message streams
|
||||
3. **Data Converters** convert messages to structured aircraft data (Mode S decoding for Beast, direct mapping for VRS)
|
||||
4. **Data Merger** receives aircraft updates with source attribution
|
||||
|
||||
### 2. Data Fusion
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue