| ClientSession |
websocket, channel_type, connected_at |
Runtime connection in ctrl_clients, spectrum_clients, audio_rx_clients, audio_tx_clients |
| RadioConnection |
serial_port, baudrate, connected, model_id |
CAT serial port state within CatController |
| RadioState |
vfo_a_freq, vfo_b_freq, active_vfo, mode, tx_status, s_meter, af_gain, rf_gain, rf_power, filter_width, preamp, attenuator, noise_blanker, noise_reduction, auto_notch, compressor, compressor_level, nr_level, nb_level, tuner_status, power_on, squelch, mic_gain, split, vox, break_in, comp_meter, alc_meter, power_meter, swr_meter, id_meter, vd_meter, scope_span, scope_speed, scope_mode, scope_start_freq, serial_connected |
Dataclass with dirty-field tracking |
| CatCommand |
prefix, value, response |
Serial CAT command: send "FA014200000;" → receive "FA014200000;" |
| ScopeFrame |
wf1[850], wf2[850], s_meter, vfoa_freq, mode, scope_span, scope_mode, preamp, attenuator, scope_start_freq |
Parsed from scope_pipe stdout payload |
| SpectrumFrame |
version_byte, wf1_bytes[850], wf2_bytes[850] |
Binary frame broadcast via /WSspectrum |
| AudioChunk |
pcm_bytes, sample_count, timestamp |
Raw Int16 PCM from PyAudio capture |
| AudioFrame |
tag_byte, payload_bytes |
Tagged dual-codec frame (0x00=PCM, 0x01=Opus) broadcast via /WSaudioRX |
| OpusEncoder |
bitrate, frame_size, cap_bytes |
Server-side libopus encoder via ctypes |
| OpusDecoder |
sample_rate, channels |
WASM Opus decoder in browser |
| PollTier |
interval, commands, fields |
One tier of the 7-task polling scheduler |
| MemoryChannel |
index, frequency, mode, label |
Memory record persisted in mem_channels.json |
| AuthToken |
token_hex, created_at |
32-byte random hex session token |
| SCOPE_PIPE_Process |
pid, stdout, stderr |
Subprocess running scope_pipe.py for FT4222 SPI I/O |