mirror of
https://github.com/bybrooklyn/openbitdo.git
synced 2026-03-19 12:12:57 -04:00
35 lines
925 B
Rust
35 lines
925 B
Rust
use bitdo_proto::{
|
|
DeviceSession, MockTransport, RetryPolicy, SessionConfig, TimeoutProfile, VidPid,
|
|
};
|
|
|
|
#[test]
|
|
fn set_mode_reads_back_latest_mode() {
|
|
let mut transport = MockTransport::default();
|
|
transport.push_read_data(vec![0x02, 0x01, 0x00, 0x00]);
|
|
|
|
let mut mode = vec![0u8; 64];
|
|
mode[0] = 0x02;
|
|
mode[1] = 0x05;
|
|
mode[5] = 3;
|
|
transport.push_read_data(mode);
|
|
|
|
let config = SessionConfig {
|
|
retry_policy: RetryPolicy {
|
|
max_attempts: 2,
|
|
backoff_ms: 0,
|
|
},
|
|
timeout_profile: TimeoutProfile {
|
|
probe_ms: 10,
|
|
io_ms: 10,
|
|
firmware_ms: 10,
|
|
},
|
|
..SessionConfig::default()
|
|
};
|
|
|
|
let mut session =
|
|
DeviceSession::new(transport, VidPid::new(0x2dc8, 24585), config).expect("session init");
|
|
|
|
let mode_state = session.set_mode(3).expect("set mode");
|
|
assert_eq!(mode_state.mode, 3);
|
|
}
|