67 lines
3.4 KiB
Markdown
67 lines
3.4 KiB
Markdown
# 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
|
||
```
|
||
|
||
## Лицензия
|
||
|
||
Проект распространяется без ограничений (для радиолюбительских целей).
|