4个版本
使用旧Rust 2015
| 0.2.1 | 2016年8月31日 |
|---|---|
| 0.2.0 | 2016年4月27日 |
| 0.1.1 | 2016年3月29日 |
| 0.1.0 | 2016年3月28日 |
在音频类别中排名第425位
39KB
932 行
Steam控制器处理
Rust库,用于与Steam控制器协同工作。
请求
所有请求都是通过64字节的HID功能发送完成的,第1个字节包含ID,第2个字节包含数据包的大小,然后是负载,其余部分用0x00填充。
某些请求有响应,某些没有,响应的布局与请求相同。在列出的响应中只显示负载。
检查连接
当使用转接线时,可以检查控制器状态。
0xb4id0x00size
响应
0x01表示已断开连接,0x02表示已连接
构建细节
可以获取设备信息,它是一个键/值对的列表,键为1字节,值为4字节。
0x83id0x00size
Keys
0x0a是引导加载程序构建日期。0x04是控制器固件构建日期。0x05是无线电固件构建日期。
序列号
可以请求序列号。
0xaeid0x15size0x00表示主板,0x01表示控制器
响应
0x00[u8; 10]序列号
接收器信息
如果控制器处于无线模式,可以获取接收器的信息。
0xa1id0x00size
响应
i32固件构建日期。- 10字节的 ヽ(´ー` )ノ
[u8; 10]接收器序列号
控制
所有控制都通过64字节的HID功能发送完成,第一个字节包含ID,第二个字节包含数据包大小,然后是有效负载,其余部分用0x00填充。
禁用蜥蜴模式
所谓的蜥蜴模式可以被禁用。
0x81ID0x00size
启用蜥蜴模式
所谓的蜥蜴模式可以被启用。
0x85ID0x00size
反馈
反馈可以发送到任何垫片。
0x8fID0x08大小0x00用于右侧,0x01用于左侧u16用于振幅u16用于周期u16用于计数
传感器和超时
可以启用或禁用陀螺仪和加速度计,并可以更改空闲超时。
0x87ID0x15size0x32u16超时0x18 0x00 0x00 0x31 0x02 0x00 0x08 0x07 0x00 0x07 0x07 0x00 0x300x00用于禁用,0x14用于禁用0x00 0x2e
LED亮度
可以控制LED亮度。
0x87ID0x03大小0x2du8在0 .. 100之间
通知声音测试
可以测试每个通知声音。
0xb6ID0x04大小u8声音ID
通知声音更改
可以更改打开和关闭的通知声音。
0xc1ID0x10大小u8打开声音IDu8关闭声音ID0xff 0xff 0x03 0x090x05 0xff 0xff 0xff0xff 0xff 0xff 0xff0xff 0xff
协议
在support/中有一个脚本来帮助逆向工程协议,以下是我目前所知的内容。
头部
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x0100 | Type | Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
类型
这是一个1字节的标志。
0x01表示设备正在发送输入。0x03表示设备正在发送电源事件。0x04表示设备处于空闲状态。
大小
表示数据包的大小。
电源
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Event | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
事件
它是一个无符号字符。
0x01表示关闭电源。0x02表示开启电源。
空闲
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Something? | 0x64 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
序列
它是一个小端无符号整型,每次读取时都会增加1。
是什么?
似乎每次从输入转到空闲时都会重置,并以某种指数曲线增加。
输入
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Buttons | Left Trigger |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Right Trigger | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Left Pad X | Left Pad Y |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Right Pad X | Right Pad Y |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Left Trigger Precise | Right Trigger Precise |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Acceleration Pitch |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acceleration Yaw | Acceleration Roll |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Orientation Pitch | Orientation Yaw |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Orientation Roll |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
序列
它是一个小端无符号整型,每次读取时都会增加1。
按钮
这是一个24位集,以下值是按大端存储的。
0b100000000000000000000000A按钮已被按下。0b001000000000000000000000B按钮已被按下。0b010000000000000000000000按下了 X 按钮。0b000100000000000000000000按下了 Y 按钮。0b000000000000000000000010按下了摇杆。0b000000000000000000001000摇杆被触摸。0b000000000000000000010000按下了模拟摇杆。0b000000000000000001000000模拟摇杆被触摸。0b000000000001000000000000按下了摇杆下侧。0b000000000000010000000000按下了摇杆左侧。0b000000000000001000000000按下了摇杆右侧。0b000000000000000100000000按下了摇杆上侧。0b000000000000000000000100按下了触控板。0b000000000000000001000000触控板被触摸。0b000000000001000000000000按下了返回按钮。0b000000000010000000000000按下了主页按钮。0b000000000100000000000000按下了前进按钮。0b000010000000000000000000按下了左侧护盾。0b000001000000000000000000按下了右侧护盾。0b000000001000000000000000按下了左侧握把。0b000000000000000000000001按下了右侧握把。0b000000100000000000000000左侧扳机完全按下。0b000000010000000000000000右侧扳机完全按下。
左侧扳机
它是一个表示扳机施加压力的无符号字节。
右侧扳机
它是一个表示扳机施加压力的无符号字节。
左侧摇杆 X
它是一个小端有符号短整型。
左侧摇杆 Y
它是一个小端有符号短整型。
右侧摇杆 X
它是一个小端有符号短整型。
右侧摇杆 Y
它是一个小端有符号短整型。
方向翻滚
它是一个小端有符号短整型。
方向偏航
它是一个小端有符号短整型。
方向俯仰
它是一个小端有符号短整型。
加速度翻滚
它是一个小端有符号短整型。
加速度偏航
它是一个小端有符号短整型。
加速度俯仰
它是一个小端有符号短整型。
是什么?
有一些东西,我不知道是什么。
依赖项
~380KB