@marineyachtradar/signalk-playback-plugin
v0.2.0
Published
MaYaRa Radar Playback - Play .mrr radar recordings through SignalK Radar API (Developer Tool)
Maintainers
Readme
MaYaRa Radar Playback Plugin for SignalK
A SignalK plugin for playing back .mrr radar recordings through the SignalK Radar API.
What This Plugin Does
This plugin allows you to play pre-recorded radar data (.mrr files) through SignalK's Radar API. During playback, the recording appears as a virtual radar that any SignalK radar consumer can connect to and display.
Use cases:
- Test and develop SignalK radar display applications without live radar hardware
- Demo radar functionality at exhibitions or presentations
- Debug radar rendering code with consistent, repeatable data
- Share interesting radar captures with other developers
Installation
Install from the SignalK App Store:
- Open your SignalK server web interface
- Go to Appstore > Available
- Search for "MaYaRa Radar Playback"
- Click Install
- Restart SignalK when prompted
Getting Started
1. Access the Playback Interface
After installation, navigate to:
http://your-signalk-server:3000/plugins/@marineyachtradar/signalk-playback-plugin/playback.htmlOr find it in SignalK's Webapps menu.
2. Upload a Recording
You can upload .mrr or .mrr.gz files:
- Drag and drop a file onto the upload zone
- Or click the upload zone to browse for a file
Recordings are stored on the SignalK server and persist across restarts.
3. Load and Play
- Select a recording from the list
- Click Load to prepare it for playback
- Click Play to start playback
- Use Pause and Stop as needed
- Enable Loop to repeat the recording continuously
4. View the Radar
Click View Radar to open the radar display. This shows the playback radar using the built-in viewer.
Viewing with Other Clients
During playback, the recording registers as a virtual radar in SignalK. The radar ID follows the pattern playback-{filename}.
Using mayara-server-signalk-plugin
If you have the mayara-server-signalk-plugin installed (the main MaYaRa radar plugin), you can also view playback recordings through its interface:
- Start playback in this plugin
- Open the mayara-server-signalk-plugin's radar viewer
- The playback radar will appear in the radar list
- Select it to view the recording with full MaYaRa GUI features
Using Other SignalK Radar Consumers
Any application that implements the SignalK Radar API can display the playback:
- The radar appears at
/signalk/v2/api/vessels/self/radars/playback-{filename} - Spoke data streams via SignalK's binary WebSocket
Obtaining Recording Files
Recording files (.mrr) are created by mayara-server when connected to a live radar:
- Run mayara-server with a radar connected
- Open the recordings page at
http://localhost:6502/recordings.html - Select a radar and click Start Recording
- Click Stop Recording when done
- Download the recording as
.mrr.gz(compressed) - Upload to this SignalK plugin
File Format
.mrr- MaYaRa Radar Recording (uncompressed).mrr.gz- Gzip-compressed recording (~95% smaller for transfer)
Both formats are supported for upload. Files are stored uncompressed on the server for fast playback.
Troubleshooting
Recording won't load:
- Check the SignalK server logs for errors
- Ensure the file is a valid
.mrror.mrr.gzfile - Verify the file wasn't corrupted during transfer
No radar appears in SignalK:
- Make sure playback is started (not just loaded)
- Refresh the radar consumer application
- Check that SignalK's Radar API is enabled
Playback stutters:
- This can happen on slower systems with large recordings
- Try using recordings with fewer spokes per revolution
Technical Details
This plugin:
- Reads
.mrrfiles directly (no mayara-server required) - Registers as a RadarProvider via SignalK's Radar API
- Emits spoke frames through SignalK's
binaryStreamManager - Plays back frames at their original recorded timing
- Sets power status to "transmit" so GUI shows radar as active (not STANDBY)
- Pre-loads all frames for accurate timing
- Auto-stops current playback when loading a different file
Development
After cloning, install dependencies and build the GUI:
npm install
npm run buildTo use a local mayara-gui checkout (sibling directory) instead of npm:
npm run build -- --local-guiNote: The
public/directory is gitignored but included in the npm tarball. It's built automatically duringnpm publishviaprepublishOnly.
Related Projects
- mayara-server - Standalone radar server (creates recordings)
- mayara-server-signalk-plugin - SignalK plugin for live radar (connects to mayara-server)
License
MIT License - See LICENSE for details.
