Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nandortoth/rtlsdr-manager
.NET Core library to manage RTL-SDR devices
https://github.com/nandortoth/rtlsdr-manager
dotnet-core r820t rtl-sdr rtl2832u software-defined-radio
Last synced: 3 days ago
JSON representation
.NET Core library to manage RTL-SDR devices
- Host: GitHub
- URL: https://github.com/nandortoth/rtlsdr-manager
- Owner: nandortoth
- License: gpl-3.0
- Created: 2018-05-12T14:00:28.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-19T06:46:57.000Z (almost 5 years ago)
- Last Synced: 2024-07-09T11:11:29.749Z (4 months ago)
- Topics: dotnet-core, r820t, rtl-sdr, rtl2832u, software-defined-radio
- Language: C#
- Homepage:
- Size: 174 KB
- Stars: 42
- Watchers: 3
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# RTL-SDR Manager Library for .NET Core
## Installation
RTL-SDR Manager Library is available via NuGet package manager.
You can easily install it via the [usual ways](https://docs.microsoft.com/en-us/nuget/consume-packages/ways-to-install-a-package).```bash
# dotnet CLI
dotnet add package RtlSdrManager# nuget CLI
nuget install RtlSdrManager
```## Usage
Handling RTL-SDR device:
```csharp
// Initialize the Manager instance.
var manager = RtlSdrDeviceManager.Instance;// Open a managed device and set some parameters.
manager.OpenManagedDevice(0, "my-rtl-sdr");
manager["my-rtl-sdr"].CenterFrequency = new Frequency {MHz = 1090};
manager["my-rtl-sdr"].SampleRate = new Frequency {MHz = 2};
manager["my-rtl-sdr"].TunerGainMode = TunerGainModes.AGC;
manager["my-rtl-sdr"].AGCMode = AGCModes.Enabled;
manager["my-rtl-sdr"].MaxAsyncBufferSize = 512 * 1024;
manager["my-rtl-sdr"].DropSamplesOnFullBuffer = true;
manager["my-rtl-sdr"].ResetDeviceBuffer();
```Asynchronous sample reading from the device:
```csharp
// Start asynchronous sample reading.
manager["my-rtl-sdr"].StartReadSamplesAsync();
```Read samples from the buffer:
```csharp
// Dequeue from the buffer.
if (!manager["my-rtl-sdr"].AsyncBuffer.TryDequeue(out var data))
{
Thread.Sleep(100);
continue;
}// Use the sample
Console.WriteLine(data);
```Using KerberosSDR related functions:
```csharp
// Enable KerberosSDR mode.
manager["my-rtl-sdr"].KerberosSDRMode = KerberosSDRModes.Enabled;// Using frequency dithering and configuring GPIO directly.
manager["my-rtl-sdr"].FrequencyDitheringMode = FrequencyDitheringModes.Enabled;
manager["my-rtl-sdr"].SetGPIO(1, GPIOModes.Enabled);
```## Release Notes
v0.2.1 - January 10, 2020
* Implement KerberosSDR related features (frequency dithering, direct GPIO control)
* Implement Bias Tee settings
* Minor fixes in the documentationv0.2.0 - June 10, 2018
* Bugfix in DeviceInfo handling
* Implement singleton pattern for RtlSdrDeviceManagerv0.1.3 - June 9, 2018
* First public NuGet package
v0.1.2 - June 3, 2018
* Handling crystal frequencies (RTL2832, IC)
* Support tuner bandwidth selection (Automatic, Manual)
* Support direct sampling (I-ADC, Q-ADC)
* Support offset tuning mode for zero-IF tunersv0.1.1 - May 12, 2018
* First public release of the RTL-SDR Manager
* Supports most of the imporant functions of RTL-SDR device