Windows集成笔设备
Windows集成笔设备一般是指屏(数字化仪/笔数字化转换器)和笔(笔传感器)构成的整体。屏、笔、主机之间的连接包含了屏与笔的连接、屏与主机的连接、笔与主机的连接,集成笔的主要功能由屏与笔的连接和屏与主机的连接来实现,笔与主机的连接可以实现一些可选的扩展功能。
屏与主机的连接
屏通过USB或I2C或SPI(或其他能够提供兼容的HID驱动的总线),使用HID连接到主机上。
在微软的一些文档中,会把数字化仪(屏)和笔传感器(笔)组合在一起叫做集成笔设备。在物理层上,和主机连接的是屏(标准笔设备,不包含笔和主机的蓝牙连接)

- Pen Reports用于实现书写和向主机传递笔的唯一标识符
- Mouse Reports用于在Win10以前的系统上显示鼠标光标
- Device Certification Status
- Latency Mode用于主机通知集成笔设备何时进入高延迟(低功耗)模式
笔与主机的连接
笔通过蓝牙使用HID连接到主机上,主要实现触觉反馈、提笔检测、快捷按键功能。

- Stylus Identifier用来传递笔的唯一标识符。触摸屏也会给主机传递笔的唯一标识符,因此主机系统可以将笔与触摸屏的输入报告关联起来
- Haptic Parameters/Waveform/Configuration用于实现触觉反馈(即某些操作会使笔身振动)
- Keyboard Reports用于实现提笔检测和快捷按钮
- 放入/取出笔槽时报告WIN+CTRL+F19/WIN+CTRL+F20的键盘组合按键
- 单击/双击/长按快捷按钮时报告WIN+F20/WIN+F19/WIN+F18的键盘组合按键
笔与主机的蓝牙无缝配对
Surface pro8和pro11的笔看标签应该是同一个型号的,两支笔在两个平板上都能自动连接(放入充电槽或者靠近屏都可以),已经有笔连接的情况下,另一支笔也可以自动连接。
hp的笔也是mpp协议的,在surface上可以书写,但不能自动连接。
把surface的笔放在旁边,然后用hp的笔在surface上书写,不能自动连接上surface的笔,这说明笔需要发送某些信息才能够触发自动连接。(笔靠近屏时可以通过mpp协议发送信息给屏,通过屏传递给系统,放入充电槽时怎么发送给系统?通过NFC传递给充电槽,由充电槽传递给系统?)

实现笔与系统的蓝牙无缝配对需要相关的设备实现Microsoft Bluetooth Out-of-Band集合(这是Vendor-defined类型的集合,usage_page为0xFFF4,usage_id为0x01)。该集合应由屏或充电槽实现。
Device Capability Report用于主机向设备报告自己是否支持无缝配对,并获取设备是否支持无缝配对
Device Bluetooth Report用于向主机报告笔的蓝牙参数
Host Bluetooth Report用于主机向设备提供自己的蓝牙参数
Pairing Key Report用于主机向指定的笔发送蓝牙配对密钥
无缝配对的一般流程:

笔与屏的连接
笔与屏之间没有一一对应的连接关系,只要符合约定的电气传输的协议就能够进行通信。笔输出的是经过编码的高压打码信号,触摸屏按照约定的协议对主动笔的信号进行采样和解码,得到笔尖位置、压力等信息。用于约定笔和触摸屏之间电气信号的交互流程、时序、频点等信息的就是主动笔协议(也就是说,协议没有定义触摸屏/主动笔如何跟系统交互),目前使用比较广泛的是微软主导的MPP协议和谷歌主导的USI协议。
笔到触摸屏的通信使用笔尖的编码脉冲,触摸屏到笔的通信使用整屏的编码脉冲
主动式电容笔和被动式电容笔的最大区别在于,主动式电容笔的内部电路会通过电极向触摸屏发送电信号,从而实现更高性能的书写。主动式电容笔并不会以无线传输的方式与触摸屏或系统进行通信。和被动式电容笔的基本原理一样,触摸屏需要通过检测它和笔尖之间的电信号来识别触摸。区别在于,使用被动式电容笔时,电信号是触摸屏-笔尖-人-地通路产生的,需要较粗的笔尖来产生电信号,而使用主动式电容笔时,电信号是笔的内部电路产生后通过笔尖电极传输到触摸屏的,笔尖可以做到很细。


MPP历史版本
- mpp1.51:支持单个传输电极并提供 1024 级压力灵敏度
- mpp2.0:支持两个传输电极以实现倾斜功能,并将压力灵敏度提高到 2048 级
- mpp2.5:支持触摸和显示驱动程序集成(TDDI)
- mpp2.6:添加了蓝牙和触觉反馈功能(通过带上行的笔协议实现触觉反馈跟mpp有关,通过蓝牙实现触觉反馈跟mpp无关)
参考链接
Windows 笔无缝配对实施指南_ Microsoft Learn
集成笔设备所需的 HID 顶级集合_Microsoft Learn
Windows集成笔设备的更多相关文章
- Windows 数字化器类输入设备--笔设备分析(1)(原创)
一.前言: 参考microsoft公司的链接:https://developer.microsoft.com/zh-cn/windows/hardware 将对Windows数字化器类输入设备--笔设 ...
- 没有了SA密码,无法Windows集成身份登录,DBA怎么办?
一同事反馈SQL无法正常登录了,以前都是通过windows集成身份验证登录进去的(sa密码早忘记了),今天就改了服务器的机器名,现在无论如何都登录不进去. SQL登录时如果采用windows集成身份验 ...
- Windows集成认证全过程
开发环境:win7旗舰版,vs2013 服务器环境:windows server 2008 R2 IIS7.5 目的:在局域网搭建一个网站,用户必须使用域帐号登录网站访问 Step 1: 创建proj ...
- [转]没有了SA密码,无法Windows集成身份登录,DBA怎么办?
没有了SA密码,无法Windows集成身份登录,DBA怎么办? 原文:http://www.cnblogs.com/i6first/p/3512779.html 一同事反馈SQL无法正常登录了,以前 ...
- 配置ArcGIS Server使用Windows AD Windows集成身份认证
1.配置 ArcGIS Server 以使用 Windows Active Directory 用户和角色. 2.填写Windows域账号凭证,对账号的要求如下: 需要能读取域中的用户和组,一般从属于 ...
- SQL SERVER SA密码忘记,windows集成身份验证都登录不了不怎么办
有时候SQL SERVER 的SA强密码策略真的很烦人,不同的系统密码策略又不一样,导致经常会忘记密码,这不,这回我本机的SQL SERVER很久不用了,彻底忘了密码是什么.查了一下资料还是找到了解决 ...
- windows I/O设备
当外部设备连接到windows后,设备所连接到的集线器驱动程序将为设备分配硬件ID,然后Windows 使用硬件 Id 查找设备与包含设备驱动程序的驱动程序包之间最近的匹配项. 如果查找到,设备就可以 ...
- windows集成身份验证
集成windows身份验证 这种验证方式里面也分为两种情况 NTLM验证 这种验证方式需要把用户的用户名和密码传送到服务端,服务端验证用户名和密码是否和服务器的此用户的密码一致.用户名用明码传送,但是 ...
- Windows驱动开发-设备读写方式
设备读写方式共三种: 方式 Flag 特点 缓冲区方式读写 DO_BUFFERED_IO I/O管理器先创建一个与用户模式数据缓冲区大小相等的系统缓冲区.而你的驱动程序将使用这个系统缓冲区工作.I/O ...
- windows驱动开发-设备扩展
设备对象Device_Object记录通用设备信息,另外一些信息记录在设备扩展里,设备扩展由程序员自己定义,由程序员指定内容和大小,由I/O管理器创建,并保存在非分页内存中. 驱动程序中,尽量避免使用 ...
随机推荐
- DotTrace系列:3. 时间度量之墙钟时间和线程时间
一:背景 1. 讲故事 在用 dotTrace 对程序进行性能评测的时候,有一个非常重要的概念需要使用者明白,那就是 时间度量 (Time measurement),主要分为两种. 墙钟时间 线程时间 ...
- XSY3490 / ZROI P618 广义线段树 + 莫队 + 点分树
\(Solution\) 为了与普通区间区分,我们称线段树上某个结点 \([l, r]\) 为 块 \([l, r]\) 考虑模拟线段树区间查询 \([l, r]\) 时下放到的底部端点,必然是一堆连 ...
- SQL Server高级进阶之索引碎片维护
SELECT OBJECT_SCHEMA_NAME(B.OBJECT_ID) 架构,OBJECT_NAME(B.OBJECT_ID) 表名,B.NAME 索引名,ROUND(A.AVG_FRAGMEN ...
- Oracle并发控制
并发与锁定 当多用户同一时刻访问相同的数据库资源时,将产生并发.并发极易破坏数据的一致性.锁定是处理并发的重要手段,用户在修改某一资源前,必须首先获得资源的修改权.而这种修改权具有排他性. 并发与锁定 ...
- Luogu P8800 [蓝桥杯 2022 国 B] 卡牌 题解
P8800 [蓝桥杯 2022 国 B] 卡牌 我们看到这样一句话: 请问小明最多能凑出多少套牌? 很明显用贪心可以做了. 首先要理解一个东西,卡牌套数等于最少的卡牌牌数.因为一套卡牌需要所有卡牌各一 ...
- 文献阅读 A Subdivision Scheme for Hexahedral Meshes
简介 本文提出了一种六面体体细分的方案,可以将六面体分成比较光顺的六面体.同时增加六面体的数量且不改变六面体的拓扑. 本文作者 Bajaj =.= 论文方案 主要由两个步骤组成 split & ...
- CF862E Mahmoud and Ehab and the function
首先 \(f(j)=\displaystyle|\sum_{i=1}^{n}(-1)^{i-1}a_i+(-1)^ib_{i+j}|=|\sum_{i=1}^{n}(-1)^{i-1}a_i+\sum ...
- 如何理解hadoop Zookeeper Phoenix HBase Hive Mapreduce HDFS spark yarn之间的关系
以前电商平台数据量很小,现在有一份 PB 级的超大数据需要分析统计,比如对用户每日的关键词搜索进行词频统计,能够精琢定位用户需求. 我们以前的方法是使用 oracle 等传统数据库或者写 python ...
- IntelliJ IDEA插件IDE Feature Trainer
这个插件就是个关于IDEA的一些基础快捷键教学,很多快捷键都还没有,比如Ctrl+Alt+← 编辑器基础(Editor Basics) 选择,删除,复制,移动行,收缩和展开代码. Ctrl+Shift ...
- BSGS代码简叙
#include <bits/stdc++.h> using namespace std; #define ll long long const int maxn=1e6+7; const ...