Document radio PTT release fallback and native command coverage
This commit is contained in:
1 parent
46edb1beb5
commit
7780922353
1 file changed
+22
@@ -243,6 +243,22 @@ true только при удалении последнего владельц
|
||||
набора: это позволяет отменить хвост передачи после release. Null снимает всех.
|
||||
Агрегатор не управляет VAD, аудио или таймерами; их владелец — RadioAudioEngine.
|
||||
|
||||
Ручные talkBegin/talkEnd/cancelTalk в RadioAudioEngine проверяют main-поток до
|
||||
изменения владельцев/таймера. Неактивная рация отказывает с WARN; отсутствие
|
||||
RECORD_AUDIO запрашивает разрешение без сохранения удержания. После выдачи
|
||||
пользователь нажимает снова. Принятый PTT — асинхронный запрос, не подтверждение
|
||||
первого PCM/TX: эти этапы видны отдельно в логах capture/native и transmittingGroup.
|
||||
|
||||
Последний talkEnd оставляет 250 мс хвоста; новое нажатие снимает его таймер,
|
||||
cancel последнего владельца снимает хвост сразу. Если postDelayed отказал,
|
||||
ERROR содержит source/group/generation; движок немедленно снимает ручной запрос
|
||||
и ставит согласование capture в io. Сообщение scheduled появляется только при
|
||||
успешной постановке. Когда захват больше не нужен, подписка закрывается и native
|
||||
capture останавливается. При работающем измерителе/автоматике захват сохраняется,
|
||||
а отпускание PTT проходит общей очередью управления/PCM до native radioTalkEnd.
|
||||
Снятие ручного PTT само по себе не выключает автоматическую передачу.
|
||||
Stop/смена группы сбрасывает удержания и прежний хвост; io проверяет generation.
|
||||
|
||||
`RadioTalkState` хранит отдельный снимок говорящих для активной группы. Включение/
|
||||
смена канала создаёт новый снимок, выключение устанавливает groupId=0. Событие 43
|
||||
разбирается строго как 19 little-endian байтов: group/node/stream/on; ID ненулевые,
|
||||
@@ -419,6 +435,12 @@ audio focus, импульса/cancel вибрации и постановки т
|
||||
Для CallRingback/NotificationSound проверяются также запрет смены фазы при
|
||||
неосвобождённом loop, независимость перекрывающихся сигналов, очистка без
|
||||
установленных callbacks и повтор release при выключенном звуке/ошибке create.
|
||||
RadioPttLifecycleTest использует настоящие RadioAudioEngine, MicrophoneCapture и
|
||||
MediaAudioController с host-границами Android/JNI. Проверяется не только UI-флаг,
|
||||
но и команда native capture stop либо упорядоченный radioTalkEnd при сохранённом
|
||||
измерителе: отказ/обычный хвост таймера, повторное нажатие, независимые владельцы,
|
||||
отмена, смена группы, RECORD_AUDIO и запрет фоновых PTT-вызовов. PCM-подписки и
|
||||
workers настоящие; звукового оборудования, DSP и сетевой передачи в модели нет.
|
||||
На Linux `:app:testDebugUnitTest` также запускает 25 fault-сценариев настоящего
|
||||
JNI logger через `:app:testJniLog`; окружение и границы модели: `tests/jni_log/README.md`.
|
||||
Проверки native bridge/standby доступны в `tests/Makefile.am`;
|
||||
|
||||
Reference in new issue
Block a user