Skip to content

Merge G4KLX's master - #14

Merged
jancona merged 4 commits into
M17-Project:masterfrom
jancona:upstream-merge
Oct 16, 2026
Merged

jancona merged 4 commits into
M17-Project:masterfrom
jancona:upstream-merge

Conversation

@jancona

@jancona jancona commented Oct 16, 2026

Copy link
Copy Markdown
Collaborator

Replaces #13, which conflicted. Merges W0CHP's listen-only state (g4klx#895), resolving a conflict in MMDVM-Host.cpp next to our M17 network handling, and applies listen-only to M17, which upstream doesn't have: the M17 network stays off and the modem drops M17 transmissions while it's on.

W0CHP and others added 4 commits October 15, 2026 08:00
A station may need to stop transmitting on command and later start
again, without anyone at its console: a remote kill switch, which some
licenses require of unattended stations. The obvious way, "mode
lockout", can't be undone over the air: in lockout, RF data from the
modem is discarded without being decoded, so a later "start" command
sent from a radio is never heard.

Add the remote commands "listen on" and "listen off". While on:

- RF is still decoded and its calls published (JSON over MQTT) as usual,
  so a remote control can hear the command to start again.
- The modem never keys up: CModem::setTXInhibit() drops every transmit
  path (D-Star, DMR, YSF, P25, NXDN, POCSAG and FM data, DMR short LC
  and Aloha, the CW ID) and forces a duplex DMR start to off.
- Nothing heard on RF is written to a network (each network's outgoing
  writes check g_listenOnly), and incoming network traffic is off: the
  places that enable a network on a mode change keep it disabled while
  listening. Each network's polls continue, so gateways and reflectors
  stay linked.

"listen off" restores the networks of the enabled modes and the CW ID
timer. The state isn't kept across a restart; the remote control that
set it can send it again.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jancona
jancona merged commit b8ebbcf into M17-Project:master Oct 16, 2026
1 check passed
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.

3 participants