0x2200 · mousePointer
读取鼠标传感器的典型分辨率和指针调校提示。
mousePointer 报告鼠标的光学传感器属性和指针调校提示。提供 0x2200 的设备会返回典型分辨率和 3 个主机建议值。此功能不更改指针速度。
规格: Logitech HID++ 2.0 —— mousePointer。交叉核对: Solaar。用于: OpenLogi 未使用此功能。
函数参考
MousePointerFeature 封装器(0x2200,版本 0+)只提供一个读取操作。
方法
| 函数 | HID++ fn | 签名 | 返回值 |
|---|---|---|---|
get_mouse_pointer_info | 0 | () | MousePointerInfo |
所有方法均为 async,并返回 Result<…, Hidpp20Error>。
类型
MousePointerInfo
get_mouse_pointer_info 返回此传感器和建议记录。
| 字段 | 类型 | 说明 |
|---|---|---|
sensor_resolution | u16 | 标准表面的典型分辨率。单位为 1 DPI。表面可造成最多 ±20% 的偏差。 |
pointer_acceleration | PointerAcceleration | 设备的加速曲线建议。 |
suggest_os_ballistics | bool | 值为 true 时,设备建议保留操作系统原生弹道。 |
suggest_vertical_tuning | bool | 值为 true 时,设备建议主机提供 X/Y 方向调校。 |
PointerAcceleration
此枚举表示设备建议的加速曲线。
| 变体 | 值 | 说明 |
|---|---|---|
None | 0 | 不建议使用加速。 |
Low | 1 | 建议低加速曲线。 |
Medium | 2 | 建议中等加速曲线。 |
High | 3 | 建议高加速曲线。 |
事件
MousePointerFeature 未提供事件类型。
线格式
getMousePointerInfo 发送 3 字节短请求。OpenLogi 将响应读取为 16 字节扩展载荷。
get_mouse_pointer_info(fn 0)
请求:[0x00, 0x00, 0x00]。3 个字节都是填充。
| 字节或位 | 字段 | 备注 |
|---|---|---|
| 0~1 | sensor_resolution | 无符号 u16,使用 BE 字节序。 |
| 2,位 1~0 | pointer_acceleration | 0=None、1=Low、2=Medium、3=High。 |
| 2,位 2 | suggest_os_ballistics | 置位时,设备建议保留操作系统原生弹道。 |
| 2,位 3 | suggest_vertical_tuning | 置位时,设备建议提供垂直方向调校。 |
| 2,位 7~4 | 保留 | OpenLogi 忽略这些位。 |
| 3~15 | 保留 | OpenLogi 忽略这些字节。 |
OpenLogi 的用法
OpenLogi 在枚举功能时注册 MousePointerFeature。类型化封装器会解码 3 个已建模的响应字节。v0.8.15 中没有设备层、主机层、库存、代理、CLI 或 UI 路径调用此封装器。
OpenLogi 未为 0x2200 提供用户设置。除版本 0 的封装器注册外,此功能没有版本专用的方法门控。
Rust 用法
use hidpp::{
device::Device,
feature::mouse_pointer::MousePointerFeature,
protocol::v20::Hidpp20Error,
};
async fn show_mouse_pointer_info(device: &mut Device) -> Result<(), Hidpp20Error> {
device.enumerate_features().await?;
if let Some(feature) = device.get_feature::<MousePointerFeature>() {
let info = feature.get_mouse_pointer_info().await?;
println!("Sensor resolution: {} DPI", info.sensor_resolution);
println!("Acceleration hint: {:?}", info.pointer_acceleration);
println!("Use OS ballistics: {}", info.suggest_os_ballistics);
}
Ok(())
}