每英寸鼠标点数……如何分辨?


11

我正在创建一个承载USB鼠标的嵌入式应用程序。我正在尝试使其对任何USB HID鼠标/轨迹球/其他通用。我发现老鼠的报告方式有所不同...虽然它们大多数都报告+ -127相对X / Y坐标,但不同模型之间应用程序的“感觉”发生了巨大变化,其中一些动作非常缓慢,而另一些动作非常快。我假设这与鼠标报告的逻辑空间的物理大小有关。

虽然HID描述符对此具有特定的字段,但是鼠标从未使用过它们……至少,对于我正在使用的引导模式(此处没有驱动程序!)(编辑:鼠标不会以引导模式开始,这是我的错) 。至此,我简化为创建以VID / PID为键的表。这意味着我将不得不测试每只鼠标并为其进行调整,这已经是我已经厌倦的(并且客户也已经厌倦了!)。

您可以将这些鼠标插入Windows并从它们中获得相当不错的运动。我正在寻找特殊的驱动程序,而我看到的普通驱动程序是MS的通用2006 HID。

我的主要问题:在典型的操作系统中该如何处理?我是否缺少某些东西,例如移动速度更快的小鼠的报告间隔更短(我还没有阅读终点描述符)?还是有人必须为所有VID / PID组合制作一张DPI表?如果他们只是将物理或逻辑放入报告描述符中,那么它将像应该的那样工作!请帮忙...


您实现了鼠标“加速”吗?
pjc50

2
小鼠具有其固有的分辨率,但是主机操作系统也可以以不同的速率进行轮询。因此,操作系统通常使您可以微调鼠标速度和鼠标加速度。我敢肯定,就单位转换而言,鼠标必须报告的内容并没有标准...而且我想打赌,如果您想标准化鼠标响应,那么您将无法完成这些自定义表映射。
托比·劳伦斯

1
@TobyLawrence-鼠标分辨率和轮询速率不一样!如果您更频繁地轮询鼠标,则每次轮询将报告较小的增量位置值。但是,基础DPI 不会更改。为了模拟较低的DPI,您必须将增量位置值除以硬件DPI与所需DPI的比率。
康纳·沃尔夫

1
@TobyLawrence-轮询速率根本不应该影响鼠标的移动。它只会影响响应能力。这就是我想要达到的目的。
康纳·沃尔夫

1
本质上,鼠标会集成和,并在每次计算机请求时返回值。如果您更频繁地轮询,则报告的增量将较小,但是如果随时间推移对它们进行求和(就像绘制光标一样),则总体结果是相同的。ΔXΔÿ
康纳·沃尔夫

Answers:


1

尝试单词MICKEY http://www.webopedia.com/TERM/M/mickey.html

注意,某些操作系统(我相信Windows和Mac也会这样做)会根据人类用户移动的速度自动更改不同的“每英寸点数”。如果用户快速移动鼠标,则会增加“每英寸点数”。当用户缓慢移动鼠标时,就像在photoshop上进行精细绘画一样,鼠标数量会减少,因此用户可以控制/移动一个或几个像素。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.