11use crate :: mcpwm:: Group ;
22
33use super :: {
4- operator:: {
5- NoOperator , OperatorConfig , OptionalOperator , OPERATOR ,
6- } ,
7- timer:: { Timer , TIMER } , Operator ,
4+ operator:: { NoOperator , OperatorConfig , OptionalOperator , OPERATOR } ,
5+ timer:: { Timer , TIMER } ,
6+ Operator ,
87} ;
98
109// TODO: How do we want fault module to fit into this?
@@ -37,8 +36,13 @@ impl<const N: u8, G: Group> TimerConnection<N, G, NoOperator, NoOperator, NoOper
3736//
3837// Thus we know that after split is called nothing can be added/removed while still having access to
3938// the individual objects. We also garantuee that the operators wont live longer than the timer
40- impl < const N : u8 , G : Group , O0 : OptionalOperator < 0 , G > , O1 : OptionalOperator < 1 , G > , O2 : OptionalOperator < 2 , G > >
41- TimerConnection < N , G , O0 , O1 , O2 >
39+ impl <
40+ const N : u8 ,
41+ G : Group ,
42+ O0 : OptionalOperator < 0 , G > ,
43+ O1 : OptionalOperator < 1 , G > ,
44+ O2 : OptionalOperator < 2 , G > ,
45+ > TimerConnection < N , G , O0 , O1 , O2 >
4246{
4347 pub fn split ( & mut self ) -> ( & mut Timer < N , G > , & mut O0 , & mut O1 , & mut O2 ) {
4448 (
@@ -50,15 +54,17 @@ impl<const N: u8, G: Group, O0: OptionalOperator<0, G>, O1: OptionalOperator<1,
5054 }
5155}
5256// TODO: Do something more builder-pattern like for making the operator?
53- impl < const N : u8 , G : Group , O1 : OptionalOperator < 1 , G > , O2 : OptionalOperator < 2 , G > > TimerConnection < N , G , NoOperator , O1 , O2 > {
57+ impl < const N : u8 , G : Group , O1 : OptionalOperator < 1 , G > , O2 : OptionalOperator < 2 , G > >
58+ TimerConnection < N , G , NoOperator , O1 , O2 >
59+ {
5460 pub fn attatch_operator0 < PA : OptionalOutputPin , PB : OptionalOutputPin > (
5561 self ,
5662 operator_handle : OPERATOR < 0 , G > ,
5763 operator_cfg : OperatorConfig ,
5864 pin_a : PA ,
5965 pin_b : PB ,
6066 ) -> TimerConnection < N , G , Operator < 0 , G , PA , PB > , O1 , O2 > {
61- let operator = todo ! ( ) ; //self.init_and_attach_operator(operator_cfg, pin_a, pin_b);
67+ let operator = todo ! ( ) ; //self.init_and_attach_operator(operator_cfg, pin_a, pin_b);
6268 TimerConnection {
6369 timer : self . timer ,
6470 operator0 : operator,
@@ -68,15 +74,17 @@ impl<const N: u8, G: Group, O1: OptionalOperator<1, G>, O2: OptionalOperator<2,
6874 }
6975}
7076
71- impl < const N : u8 , G : Group , O0 : OptionalOperator < 0 , G > , O2 : OptionalOperator < 2 , G > > TimerConnection < N , G , O0 , NoOperator , O2 > {
77+ impl < const N : u8 , G : Group , O0 : OptionalOperator < 0 , G > , O2 : OptionalOperator < 2 , G > >
78+ TimerConnection < N , G , O0 , NoOperator , O2 >
79+ {
7280 pub fn attatch_operator1 < PA : OptionalOutputPin , PB : OptionalOutputPin > (
7381 self ,
7482 operator_handle : OPERATOR < 1 , G > ,
7583 operator_cfg : OperatorConfig ,
7684 pin_a : PA ,
7785 pin_b : PB ,
7886 ) -> TimerConnection < N , G , O0 , Operator < 1 , G , PA , PB > , O2 > {
79- let operator = todo ! ( ) ; //self.init_and_attach_operator(operator_cfg, pin_a, pin_b);
87+ let operator = todo ! ( ) ; //self.init_and_attach_operator(operator_cfg, pin_a, pin_b);
8088 TimerConnection {
8189 timer : self . timer ,
8290 operator0 : self . operator0 ,
@@ -86,15 +94,17 @@ impl<const N: u8, G: Group, O0: OptionalOperator<0, G>, O2: OptionalOperator<2,
8694 }
8795}
8896
89- impl < const N : u8 , G : Group , O0 : OptionalOperator < 0 , G > , O1 : OptionalOperator < 1 , G > > TimerConnection < N , G , O0 , O1 , NoOperator > {
97+ impl < const N : u8 , G : Group , O0 : OptionalOperator < 0 , G > , O1 : OptionalOperator < 1 , G > >
98+ TimerConnection < N , G , O0 , O1 , NoOperator >
99+ {
90100 pub fn attatch_operator2 < PA : OptionalOutputPin , PB : OptionalOutputPin > (
91101 self ,
92102 operator_handle : OPERATOR < 2 , G > ,
93103 operator_cfg : OperatorConfig ,
94104 pin_a : PA ,
95105 pin_b : PB ,
96106 ) -> TimerConnection < N , G , O0 , O1 , Operator < 2 , G , PA , PB > > {
97- let operator = todo ! ( ) ; //self.init_and_attach_operator(operator_cfg, pin_a, pin_b);
107+ let operator = todo ! ( ) ; //self.init_and_attach_operator(operator_cfg, pin_a, pin_b);
98108 TimerConnection {
99109 timer : self . timer ,
100110 operator0 : self . operator0 ,
@@ -108,4 +118,4 @@ pub struct NoPin;
108118
109119pub trait OptionalOutputPin { }
110120
111- impl < P : crate :: gpio:: OutputPin > OptionalOutputPin for P { }
121+ impl < P : crate :: gpio:: OutputPin > OptionalOutputPin for P { }
0 commit comments