Skip to content

Feature/tci rig bridge plugin wsjtx multicast#700

Merged
accius merged 2 commits intoaccius:Stagingfrom
ceotjoe:feature/tci-rig-bridge-plugin
Mar 9, 2026
Merged

Feature/tci rig bridge plugin wsjtx multicast#700
accius merged 2 commits intoaccius:Stagingfrom
ceotjoe:feature/tci-rig-bridge-plugin

Conversation

@ceotjoe
Copy link
Contributor

@ceotjoe ceotjoe commented Mar 9, 2026

What does this PR do?

Add UDP multicast support to WSJT-X relay + update docs

Summary

  • UDP multicast — opt-in multicast group support for the WSJT-X relay plugin (multicast: false by default). Allows rig-bridge and other applications to receive WSJT-X packets simultaneously by joining group 224.0.0.1. Falls back gracefully to unicast on error. Configurable via web UI or rig-bridge-config.json.
  • Docs — README updated to document the mock/simulated radio plugin, WSJT-X relay plugin, and new multicast mode.

Test plan

  • Unicast (default): verify existing WSJT-X relay behaviour unchanged with multicast: false
  • Multicast: set multicast: true, point WSJT-X UDP server to 224.0.0.1, confirm decodes arrive
  • Multi-homed: set multicastInterface to a specific NIC IP, confirm correct interface used
  • Web UI: open Integrations tab, verify multicast fields show/hide correctly on checkbox toggle
  • Error handling: set an invalid multicast group, confirm graceful fallback with clear log message

Type of change

  • Bug fix
  • New feature
  • Performance improvement
  • Refactor / code cleanup
  • Documentation
  • Translation
  • Map layer plugin

Checklist

  • App loads without console errors
  • Tested in Dark, Light, and Retro themes
  • Responsive at different screen sizes (desktop + mobile)
  • If touching server.js: caches have TTLs and size caps (we serve 2,000+ concurrent users)
  • If adding an API route: includes caching and error handling
  • If adding a panel: wired into Modern, Classic, and Dockable layouts
  • No hardcoded colors — uses CSS variables (var(--accent-cyan), etc.)
  • No .bak, .old, console.log debug lines, or test scripts included

Implements multicast to wsjtx plugin like introduced by #686 into server.js

ceotjoe and others added 2 commits March 8, 2026 00:44
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Enables the WSJT-X relay to join a UDP multicast group so multiple
applications on the same machine or LAN can receive WSJT-X packets
simultaneously, rather than competing for a single unicast socket.

Changes:
- core/config.js: Add three new defaults to DEFAULT_CONFIG.wsjtxRelay:
    multicast (bool, default false), multicastGroup ('224.0.0.1'),
    multicastInterface ('' = OS picks NIC). Deep-merge in loadConfig()
    picks these up automatically with no structural changes.

- plugins/wsjtx-relay.js:
    · Derive mcEnabled / mcGroup / mcInterface constants at create() time
    · In the 'listening' handler, call socket.addMembership() after bind
      completes (the only valid moment per the Node.js dgram API).
      Wrapped in try/catch — failure logs a clear error and degrades
      gracefully to unicast; the plugin keeps running.
    · In disconnect(), call socket.dropMembership() before socket.close()
      to cleanly release the IGMP membership. Failure is non-fatal and
      logged but does not block socket teardown.
    · getStatus() now exposes multicast and multicastGroup for the
      status API and any future UI status display.

- core/server.js (Integrations tab UI):
    · Multicast checkbox with onchange toggle handler
    · Collapsible wsjtxMulticastOpts div containing Multicast Group and
      Multicast Interface text inputs, shown only when checkbox is checked
    · populateIntegrations() populates all three new fields on load
    · saveIntegrations() collects and POSTs the new values; the existing
      POST /api/config handler merges and restarts the plugin automatically

- rig-bridge-config.example.json: Add multicast, multicastGroup,
  multicastInterface fields (all at their default/off values)

- README.md: Extend wsjtxRelay config JSON example and field table with
  the three new options; add 'Multicast Mode' subsection explaining when
  and how to use it (WSJT-X UDP server change, multicastInterface for
  multi-homed systems, link-local scope note); add troubleshooting row.

Feature is strictly opt-in (multicast: false by default) — zero impact
on existing unicast configurations.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@accius accius merged commit acc4074 into accius:Staging Mar 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants