PololuRust/
lib.rs

1#![allow(non_snake_case)]
2#![allow(unused)]
3
4use std::error::Error;
5use std::thread;
6use std::time::Duration;
7
8// Gpio uses BCM pin numbering. BCM GPIO 23 is tied to physical pin 16.
9const GPIO_UART_TX: u8 = 14;
10
11struct PololuController {
12    target:[u8; 24],
13    min:[u8; 24], 
14    max:[u8; 24],
15    pololuHeader : u8
16}
17
18impl PololuController {
19    pub fn new () -> Self {
20        return PololuController {
21            target: [0; 24],
22            min: [0; 24],
23            max: [0; 24],
24            //170: AA in decimal
25            //12: default device id
26            pololuHeader: 170 + 12
27        }
28    }
29}
30
31#[cfg(test)]
32mod tests {
33    // use rppal::{
34    //     uart::{
35    //         Parity,
36    //         Uart,
37    //         Result,
38    //     },
39    //     system::DeviceInfo,
40    // };
41 
42    #[test]
43    fn it_works() {
44        assert_eq!(2 + 2, 4);
45    }
46
47    // #[test]
48    // fn lights() -> () {
49    //     // println!("Blinking an LED on a {}.", super::DeviceInfo::new().unwrap().model());
50    //     let mut uart: Uart = Uart::new(115_200, Parity::None, 8u8, 1u8).unwrap();
51    //     // uart.set_baud_rate(115_200u32);
52    //     uart.set_baud_rate(50u32);
53    //     uart.send_start();
54
55    //     let buffer: &[u8; 1usize] = &[0x01u8];
56
57    //     loop {
58    //         uart.write(buffer);
59    //     }
60
61    //     // Blink the LED by setting the pin's logic level high for 500 ms.
62    //     // uart.set_high();
63    //     // thread::sleep(Duration::from_millis(500));
64    //     // uart.set_low();
65
66    //     // Ok(())  
67    // }
68}