nanoFramework.Bluetooth.Hid 1.0.34
前缀已预留
dotnet add package nanoFramework.Bluetooth.Hid --version 1.0.34
NuGet\Install-Package nanoFramework.Bluetooth.Hid -Version 1.0.34
<PackageReference Include="nanoFramework.Bluetooth.Hid" Version="1.0.34" />
paket add nanoFramework.Bluetooth.Hid --version 1.0.34
#r "nuget: nanoFramework.Bluetooth.Hid, 1.0.34"
// Install nanoFramework.Bluetooth.Hid as a Cake Addin #addin nuget:?package=nanoFramework.Bluetooth.Hid&version=1.0.34 // Install nanoFramework.Bluetooth.Hid as a Cake Tool #tool nuget:?package=nanoFramework.Bluetooth.Hid&version=1.0.34
nanoFramework 蓝牙 HID
此库包含蓝牙低功耗 HID 键盘和鼠标的实现(未来还将包含更多)。
构建状态
组件 | 构建状态 | NuGet 代码包 |
---|---|---|
nanoFramework.Bluetooth.Hid |
硬件要求
目前仅支持在以下固件映像上运行的 ESP32 设备
- ESP32_BLE_REV0
- ESP32_BLE_REV3
- ESP32_PSRAM_BLE_GenericGraphic_REV3
- ESP32_S3_BLE
- M5Core2
- LilygoTWatch2021
- ESP32_ETHERNET_KIT_1.2
由于固件映像中 IRAM 内存空间的限制,蓝牙并非所有固件中都存在。对于早期版本的 1 ESP32 设备,PSRAM 的实现需要大量的 PSRAM 库修复,这大大减少了 IRAM 区域的可用空间,因此目前 ESP32_BLE_REV0 已禁用 PSRAM。对于版本 3 的设备,蓝牙和 PSRAM 都可用。
用法
键盘
首先初始化一个 Keyboard
类
var kbd = new Keyboard(deviceName: "nF BLE Keyboard",
deviceInfo: new DeviceInformation("nF", "BLEKBD1", "1", "01", "01", "01"),
protocolMode: ProtocolMode.Report,
plugAndPlayElements: new PnpElements(sig: 0x02, vid: 0xE502, pid: 0xA111, version: 0x210));
deviceName
参数是显示给任何扫描蓝牙的设备的名称。
deviceInfo
参数接受一个包含制造商和设备信息(序列号、硬件/软件版本等)的 DeviceInformation
对象实例。
protocolMode
指定要使用的 HID 协议:默认的 ReportMode
(支持)或当前未支持/未测试的 BootMode
。
plugAndPlayElements
字段设置 HID 主操作系统用于识别和与设备交互的各种即插即用属性。这些是产品唯一的值,您可以在此网站上找到 PnP 设备数据库。
接下来,必须在蓝牙上初始化和发布 Keyboard
。这可以通过以下两行代码完成:
kbd.Initialize();
kbd.Advertise();
键盘现在应该可以被附近的设备发现。要停止广告,请调用 kbd.StopAdvertising()
。
一旦键盘与主机配对,就可以模拟按键了
模拟按键
Keyboard
包含模拟按键和释放的方法。示例用法:
// open task manager
kbd.Press(Keys.Modifiers.LeftCtrl);
kbd.Press(Keys.Modifiers.LeftShift);
kbd.Press(Keys.Control.Escape);
kbd.ReleaseAll();
或者,Send
是一个简短的快捷方法,可以缩短上面的代码
kbd.Send(Keys.Modifiers.LeftCtrl, Keys.Modifiers.LeftShift, Keys.Control.Escape);
当使用 Press
按键时,可以使用 Release(key)
从按下的键集合中仅释放该键,并传入要释放的键。
在键盘上模拟输入
这是使用 KeyboardUtilities
类完成的。
KeyboardUtilities.TypeText(kbd, "Hello, World. I want to play a game.");
鼠标
初始化 Mouse
的方式与 Keyboard
相同。
var mouse = new Mouse("nF BLE Mouse",
deviceInfo: new DeviceInformation("nF", "BLEMOUSE1", "1", "01", "01", "01"),
protocolMode: ProtocolMode.Report,
plugAndPlayElements: new PnpElements(sig: 0x02, vid: 0xE502, pid: 0xA111, version: 0x210));
mouse.Initialize();
mouse.Advertise();
一旦连接到主机,就可以模拟基本鼠标功能。
模拟鼠标移动
// move to the right and bottom (diagonal)
mouse.Move(x: 5, y: 5);
X
& Y
参数是累积的,因为操作系统将从先前的 Move
调用增量 X
& Y
。
模拟滚动
// scroll down
mouse.Scroll(-5);
模拟按钮点击
// left click something
mouse.Click(MouseButton.Left);
示例
可用于此库的示例项目可在 Samples
文件夹中找到。它们可以直接部署到设备上并使用。
反馈和文档
有关文档、提供反馈、问题以及了解如何参与的更多信息,请参阅主存储库。
加入我们的 Discord 社区在此。
鸣谢
此项目的贡献者名单可在CONTRIBUTORS中找到。
许可证
nanoFramework 类库根据 MIT 许可证 许可。
行为准则
本项目采用了Contributor Covenant定义的行为准则,以明确社区中预期的行为。更多信息请参阅.NET Foundation 行为准则。
.NET 基金会
本工程由.NET 基金会 支持。
产品 | 版本 兼容和附加目标框架版本。 |
---|---|
.NET 框架 | net 是兼容的。 |
-
- nanoFramework.CoreLibrary (>= 1.15.5)
- nanoFramework.Device.Bluetooth (>= 1.1.75)
- nanoFramework.Runtime.Events (>= 1.11.18)
- nanoFramework.System.Collections (>= 1.5.31)
- UnitsNet.nanoFramework.Ratio (>= 5.56.0)
NuGet 包
此包未被任何 NuGet 包使用。
GitHub 存储库
此包未被任何流行的 GitHub 存储库使用。