Initial commit: SVXHomyak - Android client for SVXLink reflectors
This commit is contained in:
66
README.md
Normal file
66
README.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# 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
|
||||
```
|
||||
|
||||
## Лицензия
|
||||
|
||||
Проект распространяется без ограничений (для радиолюбительских целей).
|
||||
Reference in New Issue
Block a user