Skip to content

MIDI tx.mox toggle stuck in TX on Linux/Pi - getter uses isMox() not isTransmitting() #2858

@M8WLO

Description

@M8WLO

When a MIDI button is mapped to MOX via the toggle sentinel (scaledValue == -1.0), pressing once turns TX on but a second press does not release it. Only the GUI can release TX.

Root Cause

The toggle sentinel reads the getter, flips it, then calls the setter. The tx.mox getter used isMox() which reads m_mox. The radio never sends mox= in transmit status messages (SmartSDR protocol v1.4.0.0 — documented in CLAUDE.md), so m_mox is always false. The getter always returns 0, the toggle always computes 1, and setTransmit(true) is called on every press — stuck in TX.

The FlexControl path at MainWindow.cpp:3545 already correctly used isTransmitting(). The MIDI path did not.

Fix

Change the tx.mox MIDI getter from isMox() to isTransmitting(). isTransmitting() is set optimistically by setTransmit() the moment the command is sent, so it immediately reflects toggle state.

Affected Platforms

Reproducible on Raspberry Pi / Linux with any MIDI controller mapped to MOX toggle.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingexternal devicesFlexControl, MIDI, serial port, USB peripheralsmaintainer-reviewRequires maintainer review before any action is taken

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions