Bug
After loading a global profile (profile global load), the radio destroys and recreates the active slice. During this process, the TX client handle resets to 0x00000000 and our client never re-requests TX assignment. PTT is non-functional until the user restarts the app.
Root Cause
The profile load sequence:
profile global load "profileName" sent
- Radio sends
slice 0 in_use=0 → our SliceModel is removed
- Radio rebuilds the slice with the profile's settings
- New
slice 0 in_use=1 arrives → new SliceModel created
- We send
slice set 0 active=1 but never re-request TX
interlock tx_client_handle=0x00000000 — no client owns TX
- PTT/MOX commands are ignored
Log Evidence (from user LB9KJ, FLEX-6600 on macOS)
[11:22:43.253] slice 0 in_use=0 tx=1 active=0 ← slice destroyed
[11:22:43.253] MainWindow: slice removed 0
...
[11:22:43.622] slice 0 pan=0x40000000 mode=USB qsk=0 tx=1 ← slice recreated
[11:22:43.622] MainWindow: slice added 0
[11:22:43.622] TX: "C118|slice set 0 active=1" ← active set, but no TX request
...
[11:23:43.621] interlock tx_client_handle=0x00000000 state=READY ← nobody owns TX
Fix
In onSliceAdded(), after setting the slice active, check if it has tx=1 and re-send slice set <id> tx=1 to claim TX assignment. Or re-request TX after detecting a profile load completion.
Affected
Any user who loads a global profile from the Profiles menu after connecting.
Bug
After loading a global profile (
profile global load), the radio destroys and recreates the active slice. During this process, the TX client handle resets to0x00000000and our client never re-requests TX assignment. PTT is non-functional until the user restarts the app.Root Cause
The profile load sequence:
profile global load "profileName"sentslice 0 in_use=0→ our SliceModel is removedslice 0 in_use=1arrives → new SliceModel createdslice set 0 active=1but never re-request TXinterlock tx_client_handle=0x00000000— no client owns TXLog Evidence (from user LB9KJ, FLEX-6600 on macOS)
Fix
In
onSliceAdded(), after setting the slice active, check if it hastx=1and re-sendslice set <id> tx=1to claim TX assignment. Or re-request TX after detecting a profile load completion.Affected
Any user who loads a global profile from the Profiles menu after connecting.