C# библиотека для управления SDR-устройством HackRF One. Предоставляет высокоуровневую обёртку над нативной библиотекой hackrf.dll с безопасным управлением ресурсами.
- Полный контроль над HackRF One через простой C# API
- Поддержка приёма и передачи данных в реальном времени
- Автоматическое управление ресурсами с SafeHandle
- Развёртка частот (линейная и псевдослучайная)
- Настройка всех радиопараметров (частота, усиление, фильтры)
- Поддержка множественных устройств
- .NET 8.0 или .NET 9.0
- Windows x64
- HackRF One или совместимое устройство
- Установленные драйверы HackRF
MathCore.HackRF/
├── MathCore.HackRF/ # Основная библиотека
│ ├── HackRFLib.cs # Главный класс с P/Invoke методами
│ ├── TransferInfo.cs # Структура передачи данных
│ ├── DeviceListSafeHandle.cs # Безопасная работа с устройствами
│ └── *.cs # Перечисления и вспомогательные классы
├── Tests/
│ ├── MathCore.HackRFTests/ # Unit тесты
│ └── MathCore.HackRF.ConsoleTests/ # Консольные тесты
└── README.md # Документация репозитория
- Visual Studio 2022 или JetBrains Rider
- .NET SDK 9.0
- Git
# Клонирование репозитория
git clone https://github.com/infarh/mathcore.hackrf.git
cd mathcore.hackrf
# Восстановление пакетов
dotnet restore
# Сборка решения
dotnet build
# Запуск тестов
dotnet test
# Создание NuGet пакета
dotnet pack --configuration ReleaseПакет доступен в NuGet Gallery:
dotnet add package MathCore.HackRFПроект содержит два типа тестов:
- Unit тесты (
MathCore.HackRFTests) - тестирование логики без реального оборудования - Консольные тесты (
MathCore.HackRF.ConsoleTests) - интеграционные тесты с реальным HackRF
Для запуска консольных тестов необходимо подключённое HackRF устройство.
Подробная документация по использованию библиотеки находится в README пакета.
- Форкните репозиторий
- Создайте ветку для новой функции (
git checkout -b feature/amazing-feature) - Сделайте коммит изменений (
git commit -m 'Add amazing feature') - Отправьте изменения в ветку (
git push origin feature/amazing-feature) - Создайте Pull Request
- Используйте русские комментарии (см. .github/copilot-instructions.md)
- Следуйте соглашениям именования .NET
- Покрывайте новый код тестами
- Обновляйте XML документацию для публичных методов
Проект распространяется под лицензией MIT.
Шмачилин Павел
- Email: shmachilin@yandex.ru
- GitHub: @infarh