Request preparation
What would you like?
These commands are well-documented in FlexLib (CWX.cs). They do NOT require
a separate VITA-49 stream — they travel on the existing TCP command channel.
TCI protocol
TCI uses a plain TCP socket with newline-delimited text commands.
Reference: https://github.com/maksimus1210/TCI
Key messages: cw:, cw_macros_speed:, voice_message:, stop, trx:, xit:
SSB voice playback
No radio-side command needed for voice playback — audio is injected on the
client side via the existing AudioEngine TX path. The radio receives it as
ordinary mic audio when xmit 1 is asserted.
Acceptance Criteria
Request preparation
What would you like?
These commands are well-documented in FlexLib (
CWX.cs). They do NOT requirea separate VITA-49 stream — they travel on the existing TCP command channel.
TCI protocol
TCI uses a plain TCP socket with newline-delimited text commands.
Reference:
https://github.com/maksimus1210/TCIKey messages:
cw:,cw_macros_speed:,voice_message:,stop,trx:,xit:SSB voice playback
No radio-side command needed for voice playback — audio is injected on the
client side via the existing
AudioEngineTX path. The radio receives it asordinary mic audio when
xmit 1is asserted.Acceptance Criteria
CW text command from N1MM+ or DXLog.net causes the radio to key CW
correctly on the active slice.
PhoneCwAppletsends queued CW text viacw queueand the STOP button flushes the queue; macro text and labelssurvive an application restart.
cw_macros_speedmessage or the WPM spinnerin the macro panel is reflected on the radio (verify with
slice getresponse showing the new speed).
.wavfile over the TX audio path,asserts PTT automatically, and drops PTT when playback ends or STOP is
pressed; no audio artifact is audible after PTT release.
in the GUI and persisted via
AppSettings(notQSettings)