ew8bakandClaude Opus 5 2a16304b91 Merge feature/tci-protocol: TCI 2.0 — EWSDR как сервер для логгеров, скиммеров и цифры
EWSDR встаёт на порт как ExpertSDR3: клиент (MSHV, логгер, скиммер) подключается
по WebSocket, получает при рукопожатии полный снимок состояния и дальше живёт на
уведомлениях. Приёмник TCI — это СЛОТ СЛАЙСА (B..G → 1..6), а не панадаптер:
слайс у нас и есть «приёмник» целиком, со своей модой, фильтром, АРУ и потоками.

Транспорт держится трёх правил (doc/TCI.md §1.1): отправка не блокирует, клиента
освобождает только тик-поток, Stop прокачивает Synchronize. Ими вылечены реальные
отказы — клин на остановке и смерть процесса от SIGPIPE.

Вошло:
- команды и уведомления TCI 2.0 против PDF-спеки; не реализован только
  TX_FOOTSWITCH (его шлёт сервер, разбор — в doc/TCI.md §3.1 и §4);
- бинарные потоки: IQ, аудио приёмника, TX-аудио от клиента и запись линейного
  выхода в WAV — писатель одним потоком с очередью, файл публикуется атомарно;
- KEYER: чужая манипуляция играется очередью элементов по абсолютным дедлайнам,
  а не пробросом сетевых фронтов — сеть в эфир не попадает;
- арбитраж §3.5 (захват параметра на 200 мс) для того, что клиенты действительно
  перетягивают; отказ браузерным клиентам по Origin;
- пейсинг TX-аудио: всплески своего сигнала на передаче лечатся выдачей по
  TX_CHRONO, а не общим тиком 20 мс (проверено на железе);
- CAT: TX-тракт и телеграф, единая дверь SetTXSettings, ревизия всего набора
  стендом test/cat — «нечисловое поле = индекс 0» сидело ещё в семнадцати командах;
- обрыв манипуляции CW — поколение обрыва вместо флага: пакет, пришедший следом,
  больше не отменяет уже отданный обрыв;
- платформенное: монотонные часы (на них живут дедлайны планировщика TX), сборка
  win64, своя обёртка последовательного порта — под macOS RTL-модуля Serial нет.

Стенды: test/tci (276), test/cat (50), test/platform, test/serial — на подставном
радио, без железа и без единого виджета.

На железе проверено: приём и передача с TCI-клиента, потоки, рекордер, пейсинг.
Не проверено: KEYER живым ключом по сети, прогон на живом маке. TCI пока не
заведён в граф демона ewsdrd — намеренно, см. doc/TCI.md §4.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M37eCTZZ9aqppKWkZRxXkP
2026-08-25 08:26:39 +03:00
2026-03-09 18:48:24 +03:00
2026-07-15 10:21:23 +03:00
2026-06-25 12:58:07 +03:00
2026-03-09 18:48:24 +03:00
2026-03-05 16:19:26 +03:00
2026-08-05 16:11:57 +03:00
2026-05-24 16:29:13 +03:00
2026-03-05 16:19:26 +03:00
S
Description
No description provided
Readme
12 MiB
Languages
Pascal 96.3%
Python 3%
Shell 0.6%