1use engine::Engine;
2use pid::pid_controller::PidController;
3
4pub mod engine;
5pub mod pid;
6pub mod servo;
7
8struct InterfaceController {
10 out_amp: f64,
11}
12impl InterfaceController {
13 fn new() -> Self {
14 Self { out_amp: 0.0 }
15 }
16 fn read(&self) -> f64 {
17 0.0
18 }
19
20 fn set(&mut self, amp: f64) {
21 self.out_amp = amp;
22 }
23}
24#[allow(dead_code)]
26fn main() {
27 let goal_set_point = 100.0;
28 let pid_controller = PidController::new(goal_set_point);
29
30 let mut controller = InterfaceController::new();
32 let mut engine = Engine::new(pid_controller);
34 loop {
35 let val = controller.read();
37
38 let control_output = engine.next(val);
40
41 controller.set(val + control_output.value);
43
44 std::thread::sleep(std::time::Duration::from_secs(1));
46 }
47}