OpenLogi

0x8300 · sidetone

HID++ 0x8300 协议封装中的耳机旁音音量和各通道静音控制。

0x8300 控制耳机旁音,即回送至耳罩的麦克风音频。OpenLogi 提供版本 1 的类型化封装。OpenLogi 没有将该功能接入设备、agent、CLI 或桌面控制路径。

**规格:**Logitech HID++ 2.0 —— Sidetone。**交叉核对:**G HUB 2026.6(静态分析)。用于:openlogi-hidpp 中的类型化封装;没有设备层路径。

函数参考

SidetoneFeature 从版本 1 起实现 HID++ 0x8300。每个方法都是异步方法,并返回 Result<…, Hidpp20Error>。

方法

函数HID++ fn签名返回值
get_sidetone_level0(&self)u8
set_sidetone_level1(&self, level: u8)()
get_sidetone_mute2(&self)SidetoneMuteStatus
set_sidetone_mute3(&self, change: SidetoneMuteChange)()

类型

SidetoneMuteStatus

字段类型说明
statusesu8原始静音状态位掩码。置位表示对应通道静音。

SidetoneMuteStatus 带有 #[non_exhaustive]。

SidetoneMuteChange

字段类型说明
change_masku8置位表示选择对应通道进行更新。
statusesu8置位表示请求将对应的已选择通道静音。

事件

OpenLogi v0.8.15 没有定义旁音事件类型。SidetoneFeature 没有实现 EmittingFeature。

线格式

每个方法都发送 3 字节短请求。封装读取回复前调用 extend_payload()。因此,OpenLogi 会将短回复扩展为 16 字节,并在缺失部分填零。

封装将音量记录为 0..=100,但会发送任意 u8,不会在本地验证范围。G HUB 的静态分析确认同名方法集合,但未验证这些负载布局或设备的范围行为。

get_sidetone_level(fn 0)

请求:[0x00, 0x00, 0x00]。

字节字段备注
0音量OpenLogi 返回原始 u8。记录的范围是 0..=100。

set_sidetone_level(fn 1)

请求:[level, 0x00, 0x00]。

字节字段备注
0levelOpenLogi 发送任意 u8。没有本地范围检查。
1~2填充OpenLogi 写入零。

OpenLogi 等待响应,但忽略响应负载。

get_sidetone_mute(fn 2)

请求:[0x00, 0x00, 0x00]。

字节字段备注
0SidetoneMuteStatus::statuses原始 u8 静音状态位掩码。

set_sidetone_mute(fn 3)

请求:[change_mask, statuses, 0x00]。

字节字段备注
0SidetoneMuteChange::change_mask选择要更新的通道状态位。
1SidetoneMuteChange::statuses已选择通道的请求状态位。
2填充OpenLogi 写入零。

OpenLogi 等待响应,但忽略响应负载。

OpenLogi 的用法

功能注册表为版本 1 及更高版本的 0x8300 创建 SidetoneFeature。v0.8.15 的设备层、agent、CLI 和桌面路径都不会打开该封装。因此,OpenLogi 没有旁音状态模型、能力门控、读-改-写操作、读回检查或退出时恢复行为。

未确认的细节

G HUB 2026.6 的静态分析发现了旁音音量和静音的读写方法,以及一个事件处理器。现有证据没有给出函数编号、回复宽度、静音位分配、事件子 ID 或事件布局。需要硬件抓包或 Logitech 的功能专用规格才能验证这些细节。

Rust 用法

use hidpp::{
    feature::sidetone::SidetoneFeature,
    protocol::v20::Hidpp20Error,
};

async fn lower_sidetone(feature: &SidetoneFeature) -> Result<(), Hidpp20Error> {
    let level = feature.get_sidetone_level().await?;
    feature.set_sidetone_level(level.saturating_sub(10)).await
}

本页目录