Профессиональное приложение для программирования и управления радиостанцией Quansheng K5 на macOS. Разработано с использованием современных технологий Swift и SwiftUI.
- Калибровка батареи: Чтение, редактирование и запись калибровочных данных
- Полная калибровка: Работа с RSSI, TX/RX калибровкой
- Поддержка форматов: JSON (с метаданными) и BIN (сырые данные)
- Резервное копирование: Автоматическое создание бэкапов
- Редактор каналов: Интуитивный интерфейс для настройки параметров
- Массовые операции: Импорт/экспорт каналов в различных форматах
- Валидация: Автоматическая проверка корректности настроек
- Поиск и фильтрация: Быстрый поиск по каналам
- Основные параметры: Частота, мощность, подсветка
- Расширенные настройки: Сканирование, DTMF, FM радио
- Профили настроек: Сохранение и загрузка конфигураций
- Чтение информации: Версия прошивки и загрузчика
- Обновление прошивки: Безопасная прошивка с индикатором прогресса
- Восстановление: Поддержка режима восстановления
- Журнал работы: Детальное логирование всех операций
- Информация об устройстве: Полная техническая информация
- Диагностика портов: Автоматическое обнаружение и тестирование
- macOS 14.0 или новее (Sonoma)
- Процессор Apple Silicon (ARM64) или Intel x86_64
- USB-подключение к радиостанции Quansheng K5
- macOS 14.0 или новее
- Xcode 15.0 или новее
- Xcode Command Line Tools
- Git (для клонирования репозитория)
# Если приложение уже собрано в корневой папке
./run_app.sh# Запуск из папки сборки
open build/DerivedData/Build/Products/Release/QuanshengK5Tool.app- Откройте папку
build/DerivedData/Build/Products/Release/ - Дважды кликните на
QuanshengK5Tool.app
При первом запуске macOS может показать предупреждение о безопасности, так как приложение не подписано цифровой подписью разработчика. Для запуска:
- Откройте Системные настройки → Конфиденциальность и безопасность
- В разделе "Безопасность" найдите сообщение о заблокированном приложении
- Нажмите "Все равно открыть"
Или используйте команду в терминале:
# Для приложения в корневой папке
sudo xattr -rd com.apple.quarantine QuanshengK5Tool.app
# Для приложения в папке сборки
sudo xattr -rd com.apple.quarantine build/DerivedData/Build/Products/Release/QuanshengK5Tool.app- Подключите радиостанцию Quansheng K5 к компьютеру через USB
- Переведите радиостанцию в режим программирования
- Запустите приложение
- Выберите порт из выпадающего списка (например,
/dev/cu.usbserial-*или/dev/cu.usbmodem-*) - Нажмите кнопку "Обновить порты" если порт не отображается
- Нажмите кнопку "Подключиться"
Приложение автоматически сканирует доступные USB-порты и отображает их в выпадающем списке. Обычно порты имеют следующие названия:
- FTDI адаптеры:
/dev/cu.usbserial-*или/dev/tty.usbserial-* - CP210x адаптеры:
/dev/cu.SLAB_USBtoUARTили/dev/tty.SLAB_USBtoUART - CH340 адаптеры:
/dev/cu.usbserial-*или/dev/tty.usbserial-* - Встроенные USB:
/dev/cu.usbmodem-*или/dev/tty.usbmodem-*
Если вы не уверены, какой порт выбрать:
- Отключите радиостанцию
- Нажмите "Обновить порты" и запомните список
- Подключите радиостанцию
- Снова нажмите "Обновить порты" - новый порт и есть ваше устройство
- Считывание текущих калибровочных данных
- Редактирование и сохранение новых значений
- Экспорт/импорт калибровочных файлов
- Редактирование параметров каналов (частота, мощность, тоны)
- Импорт/экспорт в форматах JSON, CSV, CHIRP
- Валидация настроек каналов
- Изменение частоты по умолчанию
- Настройка мощности передачи
- Управление подсветкой дисплея
Собственный формат приложения для полного сохранения всех настроек каналов.
Стандартный табличный формат для редактирования в Excel или других программах.
Совместимость с популярной программой CHIRP для программирования радиостанций.
- Проверьте USB-подключение
- Убедитесь, что радиостанция в режиме программирования
- Попробуйте другой USB-кабель или порт
- Закройте другие программы, работающие с радиостанцией
- Перезапустите приложение
- Отключите и снова подключите устройство
Приложение требует доступа к USB-устройствам. Если возникают проблемы:
sudo chmod 666 /dev/tty.usbserial*- Язык программирования: Swift 5.0+
- Фреймворк UI: SwiftUI
- Минимальная версия macOS: 14.0 (Sonoma)
- Архитектуры: ARM64 (Apple Silicon), x86_64 (Intel)
- Паттерн архитектуры: MVVM с ObservableObject
Quansheng_k5_flasher/
├── QuanshengK5Tool/ # Исходный код приложения
│ ├── QuanshengK5ToolApp.swift # Точка входа приложения
│ ├── Configuration.swift # Конфигурация и константы
│ ├── ContentView.swift # Главное окно приложения
│ ├── ChannelsView.swift # Управление каналами
│ ├── ChannelEditorView.swift # Редактор канала
│ ├── InfoView.swift # Информация об устройстве
│ ├── LogView.swift # Журнал работы
│ ├── USBCommunication.swift # USB коммуникация
│ ├── K5Protocol.swift # Протокол K5
│ ├── K5Utilities.swift # Утилиты и валидация
│ ├── CalibrationManager.swift # Управление калибровкой
│ ├── LogManager.swift # Управление логами
│ ├── Tests.swift # Система тестирования
│ ├── Assets.xcassets/ # Ресурсы приложения
│ └── QuanshengK5Tool.entitlements # Права доступа
├── QuanshengK5Tool.xcodeproj/ # Проект Xcode
├── build_and_test.sh # Скрипт сборки и тестирования
├── run_app.sh # Скрипт запуска приложения
├── check_ports.sh # Скрипт проверки портов
└── build/ # Папка сборки (создается автоматически)
└── DerivedData/Build/Products/Release/
└── QuanshengK5Tool.app # Собранное приложение
- Управление USB подключением
- Обнаружение и подключение к устройствам
- Низкоуровневая коммуникация с K5
- Реализация протокола Quansheng K5
- Команды чтения/записи памяти
- Handshake и управление сессией
- Работа с калибровочными данными
- Сохранение/загрузка в различных форматах
- Валидация и резервное копирование
- Централизованное логирование
- Фильтрация по уровням важности
- Экспорт логов
Приложение использует следующие разрешения:
com.apple.security.device.usb- доступ к USB-устройствамcom.apple.security.files.user-selected.read-write- чтение/запись выбранных файловcom.apple.security.app-sandbox- работа в песочнице macOS
# Клонируйте репозиторий
git clone https://github.com/iwizard7/Quansheng_k5_flasher
cd Quansheng_k5_flasher
# Соберите проект с помощью скрипта
./build_and_test.sh build# Выполнить все операции: очистка, сборка, тесты, проверка
./build_and_test.sh all./build_and_test.sh clean- Очистка проекта./build_and_test.sh build- Сборка проекта./build_and_test.sh test- Запуск тестов./build_and_test.sh verify- Проверка приложения./build_and_test.sh dmg- Создание DMG файла./build_and_test.sh all- Выполнить все операции
# Сборка через xcodebuild
xcodebuild -project QuanshengK5Tool.xcodeproj \
-scheme QuanshengK5Tool \
-configuration Release \
-derivedDataPath build/DerivedData \
clean build
# Приложение будет в:
# build/DerivedData/Build/Products/Release/QuanshengK5Tool.app# После сборки можно скопировать приложение для удобства
cp -R build/DerivedData/Build/Products/Release/QuanshengK5Tool.app ./# Запуск встроенных тестов
./build_and_test.sh test# Проверка доступных USB портов
./check_ports.sh# Проверка корректности сборки
./build_and_test.sh verifyДля отладки проблем с USB подключением:
# Просмотр системных логов USB
log stream --predicate 'subsystem == "com.apple.iokit.usb"'
# Список всех серийных портов
ls -la /dev/cu.*
ls -la /dev/tty.*- GitHub репозиторий: https://github.com/iwizard7/Quansheng_k5_flasher
- Документация протокола: K5_Protocol_Documentation.md
- Руководство разработчика: DEVELOPMENT.md
Этот проект предназначен для образовательных и некоммерческих целей.
Использование данного программного обеспечения осуществляется на ваш собственный риск. Авторы не несут ответственности за возможные повреждения оборудования или потерю данных.
Примечание: Это приложение создано сообществом и не является официальным продуктом Quansheng.