nimble to windows10 22h2

esp_hid_device 的keyboardReportMap在win10 22h2 csr4.0 下好像识别不了,
Windows(和大多数 BIOS/UEFI)只认 6-byte key array 的 HID Keyboard 描述符。如果不是 6 个字节,Windows HID 驱动就会认为这不是标准键盘 → 不会加载通用键盘驱动。

关键的一行 0x95, 0x06, // Report Count (6)

可行的keyboardReportMap 如下

// HID Report Map characteristic value
static const uint8_t keyboardReportMap[] = {0x05, 0x01, // Usage Pg (Generic Desktop)0x09, 0x06, // Usage (Keyboard)0xA1, 0x01, // Collection: (Application)//0x05, 0x07, // Usage Pg (Key Codes)0x19, 0xE0, // Usage Min (224)0x29, 0xE7, // Usage Max (231)0x15, 0x00, // Log Min (0)0x25, 0x01, // Log Max (1)//// Modifier byte0x75, 0x01, // Report Size (1)0x95, 0x08, // Report Count (8)0x81, 0x02, // Input: (Data, Variable, Absolute)//// Reserved byte0x95, 0x01, // Report Count (1)0x75, 0x08, // Report Size (8)0x81, 0x01, // Input: (Constant)//// LED report0x95, 0x05, // Report Count (5)0x75, 0x01, // Report Size (1)0x05, 0x08, // Usage Pg (LEDs)0x19, 0x01, // Usage Min (1)0x29, 0x05, // Usage Max (5)0x91, 0x02, // Output: (Data, Variable, Absolute)//// LED report padding0x95, 0x01, // Report Count (1)0x75, 0x03, // Report Size (3)0x91, 0x01, // Output: (Constant)//// Key arrays (6 bytes)0x95, 0x06, // Report Count (6)0x75, 0x08, // Report Size (8)0x15, 0x00, // Log Min (0)0x25, 0x65, // Log Max (101)0x05, 0x07, // Usage Pg (Key Codes)0x19, 0x00, // Usage Min (0)0x29, 0x65, // Usage Max (101)0x81, 0x00, // Input: (Data, Array)//0xC0        // End Collection
};
//report id 使用 0esp_hidd_dev_input_set(s_ble_hid_param.hid_dev, 0, 0, buffer, 8);

HID报告描述符中的Report ID其取值范围为0-255(1字节)‌,具体规则如下:
当未在报告描述符中显式声明Report ID时,系统默认使用0作为隐式ID‌
显式声明Report ID的语法为0x85, 0x01(其中0x01为ID值)‌
‌典型应用场景‌
0值Report ID常用于单报告设备,简化数据传输‌
多报告设备(如复合设备)必须使用非零ID区分不同报告‌
键盘/鼠标等标准HID设备通常不使用Report ID,此时默认为0‌

nimble to ios18

nimble hid_device 配对过程不触发输入Pin,连上了也会输入无反应。
原因在于 iOS 对 BLE 安全性要求严格,尤其是 HID(键盘/鼠标)类设备。

在 NimBLE 中:
sdkconfig默认 NIMBLE_SM_LVL=0 时,ESP32 允许 低安全级别配对。
iOS 对 HID 设备要求 至少 MITM 保护,否则它不会弹出 Passkey 或 Numeric Comparison,连接后键盘输入无反应。
修改sdkconfig中nimble项的sm lvl 为2 (默认为0)
提升到 SM_LVL=2 → iOS 认为安全性满足要求 → 才会显示 Passkey/Numeric Comparison 对话框。
因为 iOS HID 要求至少 加密 + MITM,SM_LVL=2 正好满足这个条件。

nimble to android

fields.appearance 改为ESP_HID_APPEARANCE_KEYBOARD时, android 手机配对时闪退(s7edge android 8.0.0)

   // fields.appearance = ESP_HID_APPEARANCE_GENERIC;fields.appearance = ESP_HID_APPEARANCE_KEYBOARD;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/94509.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/94509.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/94509.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

观察者模式 (Observer Pattern)与几个C++应用例子

1. 模式定义与核心思想 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当这个主题对象的状态发生变化时,它会自动通知所有观察者对象,使它们能够自动更新自己。核心思想: 解耦主题和观察者。主题…

[系统架构设计师]论文(二十三)

[系统架构设计师]论文(二十三) 一.论软件系统架构评估 1.架构所关注的质量属性主要有:性能,可用性,安全性,可修改性 1)性能。性能是指系统的响应能力,即要经过多长时间才能对某个事件…

攻克 Java 分布式难题:并发模型优化与分布式事务处理实战指南

攻克 Java 分布式难题:并发模型优化与分布式事务处理实战指南 开场:从“摇摇欲坠”到“稳如磐石”,你的分布式系统进阶之路 你是否曾经遇到过这样的场景?精心打造的电商应用,在大促开启的瞬间,页面响应变得…

如何在Ubuntu中删除或修改已有的IP地址设置?

在 Ubuntu 中为新增加的网卡设置网络时,需要区分原有网卡和新网卡的配置,确保它们可以独立工作(可在同一网段或不同网段)。以下是具体步骤,假设你需要为新网卡配置静态 IP(以 192.168.1.190/24 为例&#x…

Ansible Playbook 概述与实践案例(下)

#作者:张桐瑞 文章目录四、条件判断的实现五、循环的实现六、Jinja模板应用1、Jinja模板2、handlers组件七、角色 role1、角色介绍2、案例: 部署zabbix-agent四、条件判断的实现 when: 条件 - hosts: appserveruser: roottasks:- name: create userAuser: nameuser…

LeetCode 100 -- Day6

1. 哈希:49、128(1)49 字母异位词分组 -- 字典from collections import defaultdict class Solution(object):def groupAnagrams(self, strs):"""创建字典{sorted_string:原str}"""resultsdefaultd…

多因素认证(MFA/2FA)实战指南:如何保护你的账号

一、MFA/2FA 基础认知 1. 概念辨析与演进 单因素认证(1FA)的局限性:仅依赖 “知识因素”(如密码),据 2024 年 Verizon 数据泄露报告,81% 的账户入侵源于密码泄露 —— 要么是用户使用弱密码&a…

vue3 字符 居中显示

在Vue 3中&#xff0c;要实现字符的居中显示&#xff0c;你可以使用多种方法&#xff0c;具体取决于你是想在HTML元素内居中文本&#xff0c;还是在CSS样式中实现。下面是一些常见的方法&#xff1a;1. 使用内联样式你可以直接在元素上使用style属性来实现文本的居中。<temp…

《Spring Boot 进阶:从零到一打造自定义 @Transactional》 ——支持多数据源、动态传播行为、可插拔回滚策略

《Spring Boot 进阶&#xff1a;从零到一打造自定义 Transactional》 ——支持多数据源、动态传播行为、可插拔回滚策略版本&#xff1a;Spring Boot 3.2.x JDK 17一、背景与痛点痛点默认 Transactional 限制多数据源只能绑定一个 DataSourceTransactionManager多租户无法在运…

open3D学习笔记

这里写自定义目录标题 核心3D数据结构 1.1 PointCloud(点云) 最近邻搜索 (KNN/Radius) 与空间索引(KDTree/Octree) 法线估计 (Normal Estimation) 聚类分割 (基于欧氏距离的聚类) 1.2 TriangleMesh (三角形网格) 泊松表面重建 (Poisson Surface Reconstruction) 滚球法 (Ba…

gt_k_char设计模块

是不是再fiber或者gt设计中经常遇到接收数据没有对齐&#xff1f;是的。很多协议需要手动对齐设计。这不&#xff0c;它来了。下面是手动对齐代码设计&#xff0c;本人在很多工程和项目中应用过&#xff0c;现在共享出来&#xff0c;给大家使用。module gt_k_char (input …

网页版云手机怎么样

随着科技的不断发展&#xff0c;云手机这一新兴概念逐渐走入大众视野&#xff0c;而网页版云手机作为云手机的一种便捷使用方式&#xff0c;备受关注&#xff0c;下面从多个方面来探讨网页版云手机究竟怎么样。与传统的需要在本地设备安装专门APP的云手机使用方式不同&#xff…

XFile v2 系统架构文档

XFile v2 系统架构文档 1. 概述 XFile 是一个基于 Go 语言开发的分布式文件管理系统&#xff0c;提供本地文件存储、网络文件共享、安全认证和多种文件操作功能。该系统采用模块化设计&#xff0c;支持大文件分片存储、用户权限管理、双因素认证等高级功能。 XFile系统的核心特…

写一个天气查询Mcp Server

上篇文章&#xff0c;我们聊到了 MCP 的基本概念&#xff0c;带大家快速入门了 MCP。 说入门应该毫不夸张&#xff0c;对于科普性质的文章&#xff0c;只需要知道这件事情的诞生背景以及有什么作用就可以了。 但是&#xff0c;如果要开发给大模型调用的 Mcp Server&#xff0…

leecode-三数之和

思路 我的思路先顺序遍历一个变量,然后使用首尾双指针去遍历&#xff0c;根据结果去更新另外两个变量&#xff0c;如何和为零&#xff0c;将结果加入集合&#xff0c;但是这里要注意去重。 class Solution {public List<List<Integer>> threeSum(int[] nums) {// 排…

【数学建模】灰色关联分析的核心步骤

文章目录步骤一&#xff1a;读数据步骤二&#xff1a;指标正向化步骤三&#xff1a;数据标准化步骤三&#xff1a;数据标准化步骤四&#xff1a;结果处理步骤一&#xff1a;读数据 步骤一&#xff1a;读数据 X xlsread(‘blind date.xlsx’); % 读取Excel文件中的相亲数据 详…

基于高德地图的怀化旅发精品路线智能规划导航之旅

目录 前言 一、2025湖南旅发 1、关于旅发 2、精品路线发布 二、高德技术赋能 1、地理编码服务简介 2、地理编码服务参数介绍 3、自驾路径规划 4、自驾路径规划参数介绍 三、Java集成高德地图服务 1、业务调用时序 2、Java地理编码服务 3、Java路径规划 4、整体集成…

OpenCV实战1.信用卡数字识别

1. 任务说明 有如下几张信用卡&#xff0c;我们需要根据模板匹配出其中的数字&#xff0c;进行卡号的识别2. Debug源码 cursor的debug&#xff1a;launch.json&#xff1a; {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息&#xff0c;请…

Spring Security 深度学习(一): 基础入门与默认行为分析

目录1. 引言&#xff1a;为何选择Spring Security&#xff1f;2. 核心概念&#xff1a;认证 (Authentication) 与 授权 (Authorization)2.1 什么是认证 (Authentication)&#xff1f;2.2 什么是授权 (Authorization)&#xff1f;2.3 安全性上下文 (SecurityContext)3. Spring B…

数学建模--模糊综合评价法

一、概念 模糊综合评价法是一种基于模糊数学的综合评价方法。它针对评价过程中存在的模糊性&#xff08;如 “好”“较好”“差” 等模糊概念&#xff09;&#xff0c;通过建立模糊集合&#xff0c;将定性评价转化为定量评价&#xff0c;从而对具有多种属性的评价对象做出全面、…