Skip to content

iwizard7/Quansheng_k5_flasher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quansheng K5 Tool для macOS

Профессиональное приложение для программирования и управления радиостанцией 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 (для клонирования репозитория)

Запуск приложения

Способ 1: Использование готового приложения (если есть)

# Если приложение уже собрано в корневой папке
./run_app.sh

Способ 2: Запуск из папки сборки

# Запуск из папки сборки
open build/DerivedData/Build/Products/Release/QuanshengK5Tool.app

Способ 3: Через Finder

  1. Откройте папку build/DerivedData/Build/Products/Release/
  2. Дважды кликните на QuanshengK5Tool.app

Первый запуск

При первом запуске macOS может показать предупреждение о безопасности, так как приложение не подписано цифровой подписью разработчика. Для запуска:

  1. Откройте Системные настройкиКонфиденциальность и безопасность
  2. В разделе "Безопасность" найдите сообщение о заблокированном приложении
  3. Нажмите "Все равно открыть"

Или используйте команду в терминале:

# Для приложения в корневой папке
sudo xattr -rd com.apple.quarantine QuanshengK5Tool.app

# Для приложения в папке сборки
sudo xattr -rd com.apple.quarantine build/DerivedData/Build/Products/Release/QuanshengK5Tool.app

Подключение устройства

  1. Подключите радиостанцию Quansheng K5 к компьютеру через USB
  2. Переведите радиостанцию в режим программирования
  3. Запустите приложение
  4. Выберите порт из выпадающего списка (например, /dev/cu.usbserial-* или /dev/cu.usbmodem-*)
  5. Нажмите кнопку "Обновить порты" если порт не отображается
  6. Нажмите кнопку "Подключиться"

Выбор правильного порта

Приложение автоматически сканирует доступные 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-*

Если вы не уверены, какой порт выбрать:

  1. Отключите радиостанцию
  2. Нажмите "Обновить порты" и запомните список
  3. Подключите радиостанцию
  4. Снова нажмите "Обновить порты" - новый порт и есть ваше устройство

Основные функции

Калибровка батареи

  • Считывание текущих калибровочных данных
  • Редактирование и сохранение новых значений
  • Экспорт/импорт калибровочных файлов

Управление каналами

  • Редактирование параметров каналов (частота, мощность, тоны)
  • Импорт/экспорт в форматах JSON, CSV, CHIRP
  • Валидация настроек каналов

Настройки устройства

  • Изменение частоты по умолчанию
  • Настройка мощности передачи
  • Управление подсветкой дисплея

Форматы файлов

JSON

Собственный формат приложения для полного сохранения всех настроек каналов.

CSV

Стандартный табличный формат для редактирования в Excel или других программах.

CHIRP

Совместимость с популярной программой CHIRP для программирования радиостанций.

Устранение неполадок

Устройство не обнаруживается

  1. Проверьте USB-подключение
  2. Убедитесь, что радиостанция в режиме программирования
  3. Попробуйте другой USB-кабель или порт

Ошибки подключения

  1. Закройте другие программы, работающие с радиостанцией
  2. Перезапустите приложение
  3. Отключите и снова подключите устройство

Проблемы с разрешениями

Приложение требует доступа к 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      # Собранное приложение

Ключевые компоненты

USBCommunicationManager

  • Управление USB подключением
  • Обнаружение и подключение к устройствам
  • Низкоуровневая коммуникация с K5

K5Protocol

  • Реализация протокола Quansheng K5
  • Команды чтения/записи памяти
  • Handshake и управление сессией

CalibrationManager

  • Работа с калибровочными данными
  • Сохранение/загрузка в различных форматах
  • Валидация и резервное копирование

LogManager

  • Централизованное логирование
  • Фильтрация по уровням важности
  • Экспорт логов

Безопасность

Приложение использует следующие разрешения:

  • 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

  • ./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 - Выполнить все операции

Ручная сборка через Xcode

# Сборка через 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

# Проверка доступных 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.*

🔗 Ссылки

Лицензия

Этот проект предназначен для образовательных и некоммерческих целей.

Отказ от ответственности

Использование данного программного обеспечения осуществляется на ваш собственный риск. Авторы не несут ответственности за возможные повреждения оборудования или потерю данных.


Примечание: Это приложение создано сообществом и не является официальным продуктом Quansheng.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors