BleCommands.Maui
1.1.0
dotnet add package BleCommands.Maui --version 1.1.0
NuGet\Install-Package BleCommands.Maui -Version 1.1.0
<PackageReference Include="BleCommands.Maui" Version="1.1.0" />
<PackageVersion Include="BleCommands.Maui" Version="1.1.0" />
<PackageReference Include="BleCommands.Maui" />
paket add BleCommands.Maui --version 1.1.0
#r "nuget: BleCommands.Maui, 1.1.0"
#:package BleCommands.Maui@1.1.0
#addin nuget:?package=BleCommands.Maui&version=1.1.0
#tool nuget:?package=BleCommands.Maui&version=1.1.0
BleCommands
BleCommands is a simple and reliable library for exchanging text commands between devices via Bluetooth Low Energy (BLE). It provides a unified interface for .NET applications (MAUI, WPF, WinForms) and, together with the companion library for Arduino, makes it easy to control your BLE devices.
Features
- Text-based protocol: Commands are human-readable, simplifying debugging.
- Ease of use: No need to understand the intricacies of GATT, characteristics, descriptors or buffering.
- Cross-platform: A single API for MAUI (Android/iOS), WPF, and WinForms.
- Reliability: Automatic reassembly of fragmented packets, response waiting and timeouts.
- Ready-to-use companion: The dedicated library for Arduino/ESP32 implements the server side of the protocol out of the box.
- Advanced scenarios: Convenient work with a BLE device with access to native objects.
Installation
Add one of the following NuGet packages to your project:
# For MAUI applications (Android, iOS)
Install-Package BleCommands.Maui
# For Windows applications (WPF, WinForms, Console)
Install-Package BleCommands.Windows
Quick Start
If your Arduino sketch uses the Arduino companion library, then the work will be quite simple:
using var transport = await ArduinoClient.CreateTransportAsync("My BLE device");
await transport.StartAsync();
var response = await transport.SendCommandAsync("STATUS");
You can subscribe to regular messages from the device, as well as to timeout and connection loss events:
transport.ListeningTimeoutElapsed += (s, e) => { Console.WriteLine("Timeout"); };
transport.ListeningTokenReceived += (s, e) => { Console.WriteLine($"Token: {e.Text}"); };
transport.Disconnected += (s, e) => { Console.WriteLine("Device disconnected"); };
transport.StartListening(TimeSpan.FromSeconds(1));
You can work directly with Device, Service, and Characteristic objects. To release all system resources after work, simply dispose the Device object:
using var device = await new BleScanner().FindDeviceAsync("My BLE device");
var services = await device.GetServicesAsync();
var characteristics = await services.FirstOrDefault()?.GetCharacteristicsAsync();
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- BleCommands.Core (>= 1.1.0)
- Microsoft.VisualStudio.Threading (>= 17.14.15)
- Plugin.BLE (>= 3.2.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.