1- extern crate linux_embedded_hal as linux_hal;
21extern crate embedded_hal;
2+ extern crate linux_embedded_hal as linux_hal;
33extern crate pscontroller_rs;
44
5- use std:: io;
6- use std:: { thread, time} ;
7- use linux_hal:: Spidev ;
85use linux_hal:: spidev:: { SpidevOptions , SPI_MODE_3 } ;
96use linux_hal:: Pin ;
7+ use linux_hal:: Spidev ;
8+ use std:: io;
9+ use std:: { thread, time} ;
1010
1111use pscontroller_rs:: PlayStationPort ;
1212
@@ -16,69 +16,69 @@ const SPI_DEVICE: &str = "/dev/spidev0.0";
1616const SPI_SPEED : u32 = 100_000 ;
1717// If you need to use an alternate pin for cable select, uncomment the relevant bits
1818// and pass the pin into psp's new() function.
19- //const SPI_ENABLE_PIN: u64 = 4;
19+ //const SPI_ENABLE_PIN: u64 = 4;
2020
2121fn build_spi ( ) -> io:: Result < Spidev > {
22- let mut spi = Spidev :: open ( SPI_DEVICE ) ?;
23- let opts = SpidevOptions :: new ( )
24- . bits_per_word ( 8 )
25- . max_speed_hz ( SPI_SPEED )
26- . mode ( SPI_MODE_3 )
27- . build ( ) ;
28- spi. configure ( & opts) ?;
22+ let mut spi = Spidev :: open ( SPI_DEVICE ) ?;
23+ let opts = SpidevOptions :: new ( )
24+ . bits_per_word ( 8 )
25+ . max_speed_hz ( SPI_SPEED )
26+ . mode ( SPI_MODE_3 )
27+ . build ( ) ;
28+ spi. configure ( & opts) ?;
2929
30- Ok ( spi)
30+ Ok ( spi)
3131}
3232
3333fn main ( ) {
3434 let spi = build_spi ( ) . unwrap ( ) ;
3535 //let enable_pin = Pin::new(SPI_ENABLE_PIN);
3636 //let mut psp = PlayStationPort::new(spi, Some(enable_pin));
37- let mut psp = PlayStationPort :: new ( spi, None :: < Pin > ) ;
38- let mut command = [ 0u8 ; 32 ] ;
39- let mut buffer = [ 0u8 ; 32 ] ;
37+ let mut psp = PlayStationPort :: new ( spi, None :: < Pin > ) ;
38+ let mut command = [ 0u8 ; 32 ] ;
39+ let mut buffer = [ 0u8 ; 32 ] ;
4040
41- command[ 1 ] = 0x42 ;
41+ command[ 1 ] = 0x42 ;
4242
43- let mut now = time:: Instant :: now ( ) ;
44- let sleep_duration = time:: Duration :: from_micros ( 20_000 ) ;
45- let sample_duration = time:: Duration :: from_secs ( 1 ) ;
46- let mut count = 0 ;
47- let mut failure = 0 ;
48- let mut rate = String :: new ( ) ;
43+ let mut now = time:: Instant :: now ( ) ;
44+ let sleep_duration = time:: Duration :: from_micros ( 20_000 ) ;
45+ let sample_duration = time:: Duration :: from_secs ( 1 ) ;
46+ let mut count = 0 ;
47+ let mut failure = 0 ;
48+ let mut rate = String :: new ( ) ;
4949
50- psp. enable_pressure ( ) . unwrap ( ) ;
50+ psp. enable_pressure ( ) . unwrap ( ) ;
5151
52- loop {
53- thread:: sleep ( sleep_duration) ;
52+ loop {
53+ thread:: sleep ( sleep_duration) ;
5454
55- psp. send_command ( & command, & mut buffer) . unwrap ( ) ;
55+ psp. send_command ( & command, & mut buffer) . unwrap ( ) ;
5656
57- if now. elapsed ( ) > sample_duration {
58- now = time:: Instant :: now ( ) ;
59- rate = format ! ( "{0:04}/{1:04}" , count, failure) ;
60- count = 0 ;
61- failure = 0 ;
62- }
63- println ! ( "" ) ;
64- print ! ( "Rate: ({}) - " , rate) ;
57+ if now. elapsed ( ) > sample_duration {
58+ now = time:: Instant :: now ( ) ;
59+ rate = format ! ( "{0:04}/{1:04}" , count, failure) ;
60+ count = 0 ;
61+ failure = 0 ;
62+ }
63+ println ! ( "" ) ;
64+ print ! ( "Rate: ({}) - " , rate) ;
6565
66- // Print the three byte header and X * 16bit message
67- let mut c = 3 + ( buffer[ 1 ] & 0xF ) * 2 ;
68- for item in buffer. iter ( ) {
69- // Only print the number of bytes the controller claims exists
70- if c == 0 {
71- break ;
72- }
66+ // Print the three byte header and X * 16bit message
67+ let mut c = 3 + ( buffer[ 1 ] & 0xF ) * 2 ;
68+ for item in buffer. iter ( ) {
69+ // Only print the number of bytes the controller claims exists
70+ if c == 0 {
71+ break ;
72+ }
7373
74- print ! ( "{:02x} " , item) ;
75- c -= 1 ;
76- }
74+ print ! ( "{:02x} " , item) ;
75+ c -= 1 ;
76+ }
7777
78- if buffer[ 1 ] == 0xff {
79- failure += 1 ;
80- } else {
81- count += 1 ;
82- }
83- }
78+ if buffer[ 1 ] == 0xff {
79+ failure += 1 ;
80+ } else {
81+ count += 1 ;
82+ }
83+ }
8484}
0 commit comments