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
填充。
某些请求有响应,某些没有,响应的布局与请求相同。在列出的响应中只显示负载。
检查连接
当使用转接线时,可以检查控制器状态。
0xb4
id0x00
size
响应
0x01
表示已断开连接,0x02
表示已连接
构建细节
可以获取设备信息,它是一个键/值对的列表,键为1字节,值为4字节。
0x83
id0x00
size
Keys
0x0a
是引导加载程序构建日期。0x04
是控制器固件构建日期。0x05
是无线电固件构建日期。
序列号
可以请求序列号。
0xae
id0x15
size0x00
表示主板,0x01
表示控制器
响应
0x00
[u8; 10]
序列号
接收器信息
如果控制器处于无线模式,可以获取接收器的信息。
0xa1
id0x00
size
响应
i32
固件构建日期。- 10字节的 ヽ(´ー` )ノ
[u8; 10]
接收器序列号
控制
所有控制都通过64字节的HID功能发送完成,第一个字节包含ID,第二个字节包含数据包大小,然后是有效负载,其余部分用0x00
填充。
禁用蜥蜴模式
所谓的蜥蜴模式可以被禁用。
0x81
ID0x00
size
启用蜥蜴模式
所谓的蜥蜴模式可以被启用。
0x85
ID0x00
size
反馈
反馈可以发送到任何垫片。
0x8f
ID0x08
大小0x00
用于右侧,0x01
用于左侧u16
用于振幅u16
用于周期u16
用于计数
传感器和超时
可以启用或禁用陀螺仪和加速度计,并可以更改空闲超时。
0x87
ID0x15
size0x32
u16
超时0x18 0x00 0x00 0x31 0x02 0x00 0x08 0x07 0x00 0x07 0x07 0x00 0x30
0x00
用于禁用,0x14
用于禁用0x00 0x2e
LED亮度
可以控制LED亮度。
0x87
ID0x03
大小0x2d
u8
在0 .. 100
之间
通知声音测试
可以测试每个通知声音。
0xb6
ID0x04
大小u8
声音ID
通知声音更改
可以更改打开和关闭的通知声音。
0xc1
ID0x10
大小u8
打开声音IDu8
关闭声音ID0xff 0xff 0x03 0x09
0x05 0xff 0xff 0xff
0xff 0xff 0xff 0xff
0xff 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位集,以下值是按大端存储的。
0b100000000000000000000000
A按钮已被按下。0b001000000000000000000000
B按钮已被按下。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