Files
svxhomyak/README.md

67 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SVXHomyak
Android-клиент для подключения к рефлекторам **SVXLink** (svxreflector) — слушайте и участвуйте в групповых переговорах (TG) прямо со смартфона.
## Возможности
- Подключение к рефлектору SVXLink по протоколу v2 с авторизацией по AUTH_KEY
- Выбор группы вещания (TG) — по умолчанию 11
- Голосовая связь в формате **Opus** (8 кГц, моно) через UDP
- Кнопка PTT (Push-To-Talk) — удерживайте, чтобы говорить
- Индикаторы уровня передачи и приёма
- Отображение текущего говорящего
- Автоматическое переподключение при обрыве связи
- Позывной регистронезависимый: `ua1zbe-m` автоматически преобразуется в `UA1ZBE-M` для отправки на сервер
## Требования
- Android 8.0 (API 26) и выше
- Доступ к сети и микрофону
- Рефлектор SVXLink с включённой поддержкой протокола v2 (AUTH_KEY)
## Установка
Скачайте последний APK со страницы [Releases](https://git2.ua1zbe.ru/ua1zbe/svxhomyak/releases) и установите его на устройство (разрешите установку из неизвестных источников).
## Использование
1. Откройте **Настройки** (иконка шестерёнки).
2. Укажите:
- **Сервер** — адрес рефлектора (хост или IP)
- **Порт** — по умолчанию `5300`
- **Позывной** — ваш позывной, например `UA1ZBE-M`
- **Пароль (AUTH_KEY)** — ключ доступа к рефлектору
- **Группа вещания (TG)** — номер группы
3. Нажмите **Сохранить**, затем **Подключиться**.
4. Для передачи удерживайте кнопку PTT.
## Сборка из исходников
```bash
./gradlew :app:assembleDebug
```
APK появится в `app/build/outputs/apk/debug/app-debug.apk`.
Требования: JDK 17, Android SDK (compileSdk 34).
## Структура проекта
- `app/src/main/java/ru/ua1zbe/svxremote/MainActivity.kt` — основной экран
- `app/src/main/java/ru/ua1zbe/svxremote/SettingsActivity.kt` — настройки подключения
- `app/src/main/java/ru/ua1zbe/svxremote/proto/ReflectorClient.kt` — клиент рефлектора (TCP + UDP)
- `app/src/main/java/ru/ua1zbe/svxremote/proto/ReflectorProtocol.kt` — бинарный протокол svxreflector v2
- `app/src/main/java/ru/ua1zbe/svxremote/audio/OpusEngine.kt` — кодирование/декодирование Opus через MediaCodec
- `app/src/main/java/ru/ua1zbe/svxremote/ui/` — кнопка PTT и индикатор уровня
- `app/src/test/java/ru/ua1zbe/svxremote/` — юнит-тесты протокола и рукопожатия
## Тесты
```bash
./gradlew :app:testDebugUnitTest
```
## Лицензия
Проект распространяется без ограничений (для радиолюбительских целей).