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                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="nanoFramework.Bluetooth.Hid" Version="1.0.34" />                
对于支持 包引用 的项目,将此 XML 节复制到项目文件中以引用代码包。
paket add nanoFramework.Bluetooth.Hid --version 1.0.34                
#r "nuget: nanoFramework.Bluetooth.Hid, 1.0.34"                
#r 指令可用于 F# 交互式和 Polyglot Notebooks。将其复制到交互式工具或脚本的源代码中,以引用代码包。
// 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                

Quality Gate Status Reliability Rating NuGet #yourfirstpr Discord

nanoFramework logo

nanoFramework 蓝牙 HID

此库包含蓝牙低功耗 HID 键盘和鼠标的实现(未来还将包含更多)。

构建状态

组件 构建状态 NuGet 代码包
nanoFramework.Bluetooth.Hid Build Status NuGet

硬件要求

目前仅支持在以下固件映像上运行的 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 是兼容的。
兼容目标框架(s)
包括目标框架(s)(在包中)
了解有关 目标框架.NET 标准的更多信息

NuGet 包

此包未被任何 NuGet 包使用。

GitHub 存储库

此包未被任何流行的 GitHub 存储库使用。

版本 下载 最后更新
1.0.34 54 8/9/2024
1.0.33 58 7/26/2024
1.0.32 72 7/12/2024
1.0.30 86 6/19/2024
1.0.26 80 5/10/2024
1.0.24 106 4/5/2024
1.0.22 110 3/13/2024
1.0.19 95 2/28/2024
1.0.17 113 1/24/2024
1.0.15 82 1/18/2024