mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 17:27:32 +00:00
Со времён прошлой правки CAT в EWSDR появились TX-профили со всей «звуковой» цепью и телеграф — команды, которые doc/CAT_STATUS.md объявлял незакрываемыми, стали рабочими. TX-тракт: MG/ZZMG (усиление микрофона), MO/ZZMO + ZZTM (монитор передачи и его уровень), ZZTL/ZZTH (кромки TX-фильтра), PR/ZZPK + ZZPL (речевой компрессор), ZZET + ZZEB (эквалайзер), ZZTO + ZZTU (мощность и кнопка настройки), ZZUT (2TON), ZZLI + ZZUS (PureSignal), ZZTP (выбор профиля), ZZFD (девиация). Телеграф (были проброшены только KS/KY/ZZKS/ZZKY): ZZCS скорость, ZZCL тон, ZZCI иамбик, ZZCB/ZZCD break-in и hang-time, ZZCM сайдтон. Ревизия подписей. Комментарии у заглушек писались по буквам кода, а не по Thetis, и врали примерно в 150 местах. Хуже: часть РАБОТАЮЩИХ команд была привязана не к своей функции — внешний софт получал осмысленный, но неверный ответ, что хуже честной заглушки. Всё сверено с CATCommands.cs: ZZMA режим -> кнопка MUT ZZNN заглушка -> SNB ZZRX переход в RX -> аттенюатор RX1 ZZNS SNB -> кнопка NR2 ZZRV версия ПО -> напряжение питания ZZVS алиас ZZSP -> операции с VFO ZZMV индекс режима-> счётчик памяти ZZBM режим -> VFO B вниз на nn ZZKM режим кейера -> запуск CW-макроса ZZFT всегда A -> TX-частота (split) ZZFI/ZZBS были алиасами -> сами держат фильтр и диапазон Ошибочные алиасы на громкость/мощность сняты (ZZAA ZZVG ZZOA ZZAP ZZDN ZZAC ZZBI ZZMB ZZVA ZZPD ZZPO ZZQM ZZSR ZZRD ZZRU) — теперь честные заглушки с указанием, где функция живёт на самом деле. Кенвудовские команды сверены отдельно, покрытие полное (все 40 из Thetis), ширины полей совпадают с CATStructs.xml. Исправлено: SM отдавал 4 цифры вместо 5; RD/RU перестраивали VFO, хотя это RIT; KY не срезал набивку поля пробелами и гнал её в эфир паузами; CT принимала любой символ и «CT9;» молча гасил тон; OF/OS несли реализацию сами, а ZZOT/ZZOS были заглушками — клиент Thetis обращается как раз к ZZ* и не получал ничего. Валидация. Команды без параметров не проверяли суффикс: «TXanything;» доходил до CmdTX и ПОДНИМАЛ ПЕРЕДАЧУ (так же RX UP DN BD BU QI RC ID IF) — эталон отбраковывает лишний суффикс в парсере, у нас теперь список в IsParamless. ZZTX поднимал передачу на любом значении кроме нуля («2=TUNE» — выдумка). ZZFL/ZZFH принимали поле любой длины от 4 символов и через StrToIntDef молча схлопывали кромку в ноль. ZZMG принимал 1-2 символа. KY/ZZKY не ограничивали текст 25 символами, и очередь передачи могла расти произвольно. Осознанные отклонения от эталона сведены в отдельную таблицу документа: ZZBS (индекс диапазона вместо кода), ZZMN (имя режима вместо пресетов фильтров), ZZST (шаг FM вместо размера шага настройки), ZZCD (потолок 2000 мс — наш предел, он же в поле HangDelay пакета DUC Specific). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>