3.8 KiB
Next Steps
Priority
- Investigate Protocol 2 stop handling.
- Validate Protocol 2 wideband behavior on real hardware.
- Complete Protocol 2 Alex support for boards with
Alex1.
Immediate Issues To Debug
Protocol 2 stop crash
- Re-test why the application crashes when the user presses
Stopwhile working with a Protocol 2 device. - Re-verify why the Protocol 2 stop command may still not be correctly sent to the transceiver.
- Check the shutdown path across:
src/DataEngine/cusdr_dataEngine.cppsrc/DataEngine/cusdr_dataIO.cppsrc/DataEngine/cusdr_protocol2_io.cpp
- Already fixed one likely cause in
src/DataEngine/cusdr_protocol2_io.cpp:- duplicate
P2 stopsend, - stop without
m_running, - timer/socket signal disconnect before deletion.
- duplicate
- Already fixed a second class of issues in
src/DataEngine/cusdr_dataEngine.cpp:DataIOcontrol calls now go throughQMetaObject::invokeMethod(..., Qt::BlockingQueuedConnection),- so start/stop/init execute in the
DataIOthread instead of the caller thread.
- Already fixed a concrete
Protocol 2destructor bug insrc/DataEngine/cusdr_dataIO.cpp:m_dataIOSocketOn == truewithm_dataIOSocket == 0could dereference a null pointer during shutdown.
- Already moved
CSoundOutdeletion out ofDataIO::stop()and into the destructor to reduce timer/thread teardown issues. - Pay special attention to:
- socket lifetime,
- timer lifetime,
QObjectownership and deletion thread,- repeated stop calls,
networkDeviceStartStop(0),Protocol2DataPath::stop(),sendHighPriorityPacket(false),- whether the command socket is still valid when stop is triggered,
- whether
DataIO/Protocol2DataPathshould be destroyed viadeleteLater()in their own thread instead of direct delete fromDataEngine, - whether the target
P2board expects additional shutdown packets or repeatedrun = 0frames.
Protocol 2 Functional Work
Protocol 2 wideband runtime verification
-
Re-test Protocol 2 wideband on real hardware after the 2026-04-14 integration.
-
Verify that pressing the UI
Widebandbutton now really causes the transceiver to:- start sending wideband UDP data,
- stop sending wideband UDP data.
-
Verify that this works while the device is already running, without requiring a full stop/start cycle.
-
Verify the incoming packet format and pacing match what the implementation now assumes:
- UDP base port
1027, - sequence number in bytes
0..3, - 16-bit raw ADC samples starting at byte
4, - one full spectrum block formed from
Settings::getWidebandBuffers()packets.
- UDP base port
-
Pay special attention to boards that may not follow the default
32 packets per framebehavior. -
If a board reports or requires fixed wideband constraints, use the protocol document/device profile to specialize the current defaults.
-
Implement proper
Alex1/BPF2/RX2handling for boards that support a second Alex register:- Orion MkII
- SATURN / ANAN-G2
-
Use Appendix D from
doc/openHPSDR Ethernet Protocol v4.3.docxto map the second Alex register bits correctly. -
Consider extending Protocol 2 capability handling beyond board defaults where discovery returns more precise information.
-
Consider support for XML/full hardware description discovery replies for board
254/255.
UI Work
- Review UI areas that still assume
Metis/Hermessemantics internally. - Confirm the
Widebandbutton behavior is now correct from the user point of view:- button state,
- dock visibility,
widebandDatasetting,- real hardware stream enable/disable.
- Make Protocol 2 model/capability presentation more explicit where useful:
- selected model,
- protocol version,
- ADC/DDC count,
- Alex availability.
Reference
- Detailed log of completed work:
WORKLOG_PROTOCOL2_2026-04-13.md