Ahsoka.Extensions.Bluetooth
5.7.0
See the version list below for details.
dotnet add package Ahsoka.Extensions.Bluetooth --version 5.7.0
NuGet\Install-Package Ahsoka.Extensions.Bluetooth -Version 5.7.0
<PackageReference Include="Ahsoka.Extensions.Bluetooth" Version="5.7.0" />
<PackageVersion Include="Ahsoka.Extensions.Bluetooth" Version="5.7.0" />
<PackageReference Include="Ahsoka.Extensions.Bluetooth" />
paket add Ahsoka.Extensions.Bluetooth --version 5.7.0
#r "nuget: Ahsoka.Extensions.Bluetooth, 5.7.0"
#:package Ahsoka.Extensions.Bluetooth@5.7.0
#addin nuget:?package=Ahsoka.Extensions.Bluetooth&version=5.7.0
#tool nuget:?package=Ahsoka.Extensions.Bluetooth&version=5.7.0
Ahsoka.Extensions.Bluetooth
An OpenPV Bluetooth Extension that provides Bluetooth Classic (BR/EDR) and Bluetooth Low Energy (BLE) support through two Ahsoka services.
Services
| Service | Port | Description |
|---|---|---|
| BluetoothService | 5104 | Bluetooth Classic adapter management, discovery, pairing, and profile services |
| BLEService | 6108 | Bluetooth Low Energy peripheral mode, GATT services, and advertisements |
Both services auto-start and are configured via the extension info bundled with this package.
Bluetooth Classic
Manages Bluetooth Classic adapter operations and profile-based connections over BR/EDR.
Capabilities
- Adapter power, discoverable, and pairable mode control (with configurable timeouts)
- Device discovery with configurable timeout
- Pairing, unpairing, and paired device management
- Multi-adapter support
- Profile service plugin architecture
Built-in Profile Services
| Profile | Description |
|---|---|
| A2DP (Audio Sink / Source) | High-quality audio streaming and playback |
| AVRCP | Media remote control (play, pause, next, previous, etc.) |
| HFP (Hands-Free) | Voice call management via oFono telephony integration |
| SPP (Serial Port) | Serial data communication over RFCOMM |
| PBAP (Phonebook Access) | Contact synchronization with vCard and SQLite storage |
| MAP (Message Access) | SMS/MMS message access and composition |
| OBEX (Object Exchange) | Object transfer protocol |
Client Usage
var client = new BluetoothServiceClient();
// Listen for notifications
client.NotificationReceived += OnBluetoothNotification;
// Control adapter
client.EnableAdapter(adapterIndex);
client.StartDiscovery(adapterIndex, timeoutSeconds);
client.RequestToPair(deviceInfo);
Bluetooth Low Energy (BLE)
Provides BLE peripheral mode functionality including GATT server and advertisement management.
BLE Capabilities
- BLE stack lifecycle management
- Advertisement creation and management (including manufacturer data)
- GATT service, characteristic, and descriptor management
- Characteristic read, write, and notify operations
- Pairing confirmation flow
Attribute-Based Service Definition
Define BLE services declaratively using attributes and a ViewModel base class:
[BLEService(UUID = "180F", Name = "Battery Service", IsPrimary = true, Advertise = true)]
public class BatteryService : BLEServiceViewModelBase
{
[BLECharacteristic(UUID = "2A19", Name = "Battery Level",
Flags = new[] { BLECharacteristicFlag.Read, BLECharacteristicFlag.Notify })]
public byte BatteryLevel
{
get => batteryLevel;
set => SetValue(ref batteryLevel, value);
}
}
Available attributes:
BLEServiceAttribute— Defines service UUID, name, and advertisement behaviorBLECharacteristicAttribute— Defines characteristic UUID, name, and flags (Read, Write, Notify, Indicate)BLEManufactureDataAttribute— Defines manufacturer-specific advertisement data
BLE Client Usage
var client = new BLEServiceClient();
// Start BLE stack
client.StartStack(new BLEStackRequest { LocalName = "My Device" });
// Enable an attribute-defined service
var batteryService = new BatteryService();
batteryService.EnableService(client, advertProps);
Platform Support
The production platform is Linux using the BlueZ Bluetooth stack over D-Bus.
Companion Package
Ahsoka.Extensions.Bluetooth.UX — An OpenPV Developer Toolkit plugin providing an Avalonia-based UI for configuring Bluetooth Classic adapters, profiles, and Class of Device settings.
Requirements
- .NET 8.0 or .NET 10.0
- Ahsoka.Core 5.x
Useful Links
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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 is compatible. 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. |
-
net10.0
- Ahsoka.Core (>= 5.12.1-zzz-develop.1)
- Microsoft.Data.Sqlite (>= 10.0.2)
- MixERP.Net.VCards (>= 1.0.7)
- protobuf-net (>= 3.2.56)
- System.Drawing.Common (>= 10.0.2)
- System.Security.Cryptography.Xml (>= 10.0.2)
- Tmds.DBus (>= 0.23.0)
-
net8.0
- Ahsoka.Core (>= 5.12.1-zzz-develop.1)
- Microsoft.Data.Sqlite (>= 10.0.2)
- MixERP.Net.VCards (>= 1.0.7)
- protobuf-net (>= 3.2.56)
- System.Drawing.Common (>= 10.0.2)
- System.Security.Cryptography.Xml (>= 10.0.2)
- Tmds.DBus (>= 0.23.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Ahsoka.Extensions.Bluetooth:
| Package | Downloads |
|---|---|
|
Ahsoka.Extensions.Bluetooth.UX
Package Description |
|
|
Ahsoka.Extensions.CygnusReach
Reach Service Extension for OpenPV 5.0 // 60f365e6af3b712659435adb8e2f8c34e4c7c2f5 - OpenPV_Extension_Info { "extensionName": "Reach Service Extension", "packageName": "Ahsoka.Extensions.CygnusReach", "uxpackageName": "Ahsoka.Extensions.CygnusReach.UX", "uxViewModelName": "CygnusReachSetupViewModel", "serviceConfigurations": [ { "socketType": "TcpSocket", "serviceName": "ReachService", "tcpListenAddress": "localhost", "tcpConnectionAddress": "localhost", "dataChannel": 6112, "behaviors": "AutoStart" } ], "hasCommands": "false", "hasUx": "true" } |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 5.7.1-zzz-develop.5 | 86 | 2/25/2026 |
| 5.7.1-zzz-develop.4 | 57 | 2/23/2026 |
| 5.7.1-zzz-develop.3 | 47 | 2/23/2026 |
| 5.7.1-zzz-develop.2 | 53 | 2/20/2026 |
| 5.7.1-zzz-develop.1 | 54 | 2/19/2026 |
| 5.7.0 | 88 | 2/19/2026 |
| 5.6.1-zzz-develop.19 | 52 | 2/19/2026 |
| 5.6.1-zzz-develop.18 | 46 | 2/18/2026 |
| 5.6.1-zzz-develop.17 | 74 | 2/13/2026 |
| 5.6.1-zzz-develop.16 | 61 | 2/12/2026 |
| 5.6.1-zzz-develop.15 | 69 | 2/10/2026 |
| 5.6.1-zzz-develop.14 | 59 | 2/9/2026 |
| 5.6.1-zzz-develop.13 | 71 | 2/4/2026 |
| 5.6.1-zzz-develop.12 | 62 | 2/3/2026 |
| 5.6.1-zzz-develop.11 | 53 | 2/3/2026 |
| 5.6.1-zzz-develop.10 | 71 | 1/28/2026 |
| 5.6.1-zzz-develop.8 | 63 | 1/28/2026 |
| 5.6.1-zzz-develop.7 | 59 | 1/27/2026 |
| 5.6.1-zzz-develop.6 | 61 | 1/27/2026 |
| 5.6.1-zzz-develop.5 | 73 | 1/26/2026 |