@@ -5,10 +5,15 @@ macro_rules! generate_servo {
55 ) => {
66 paste:: paste! {
77 pub struct [ <$servo_name Controller >] {
8- dph: Option <crate :: DynamixelProtocolHandler >,
8+ dph: Option <$ crate:: DynamixelProtocolHandler >,
99 serial_port: Option <Box <dyn serialport:: SerialPort >>,
1010 }
1111
12+ impl Default for [ <$servo_name Controller >] {
13+ fn default ( ) -> Self {
14+ Self :: new( )
15+ }
16+ }
1217
1318 impl [ <$servo_name Controller >] {
1419 pub fn new( ) -> Self {
@@ -25,10 +30,10 @@ macro_rules! generate_servo {
2530 }
2631 }
2732
28- crate :: generate_protocol_constructor!( $servo_name, $protocol) ;
33+ $ crate:: generate_protocol_constructor!( $servo_name, $protocol) ;
2934
3035 $(
31- crate :: generate_reg_access!( $servo_name, $reg_name, $reg_access, $reg_addr, $reg_type) ;
36+ $ crate:: generate_reg_access!( $servo_name, $reg_name, $reg_access, $reg_addr, $reg_type) ;
3237 ) *
3338 } ;
3439}
@@ -42,7 +47,7 @@ macro_rules! generate_protocol_constructor {
4247 self ,
4348 ) -> Self {
4449 Self {
45- dph: Some ( crate :: DynamixelProtocolHandler :: v1( ) ) ,
50+ dph: Some ( $ crate:: DynamixelProtocolHandler :: v1( ) ) ,
4651 ..self
4752 }
4853 }
@@ -56,7 +61,7 @@ macro_rules! generate_protocol_constructor {
5661 self ,
5762 ) -> Self {
5863 Self {
59- dph: Some ( crate :: DynamixelProtocolHandler :: v2( ) ) ,
64+ dph: Some ( $ crate:: DynamixelProtocolHandler :: v2( ) ) ,
6065 ..self
6166 }
6267 }
@@ -68,14 +73,14 @@ macro_rules! generate_protocol_constructor {
6873#[ macro_export]
6974macro_rules! generate_reg_access {
7075 ( $servo_name: ident, $reg_name: ident, r, $reg_addr: expr, $reg_type: ty) => {
71- crate :: generate_reg_read!( $servo_name, $reg_name, $reg_addr, $reg_type) ;
76+ $ crate:: generate_reg_read!( $servo_name, $reg_name, $reg_addr, $reg_type) ;
7277 } ;
7378 ( $servo_name: ident, $reg_name: ident, w, $reg_addr: expr, $reg_type: ty) => {
74- crate :: generate_reg_write!( $servo_name, $reg_name, $reg_addr, $reg_type) ;
79+ $ crate:: generate_reg_write!( $servo_name, $reg_name, $reg_addr, $reg_type) ;
7580 } ;
7681 ( $servo_name: ident, $reg_name: ident, rw, $reg_addr: expr, $reg_type: ty) => {
77- crate :: generate_reg_read!( $servo_name, $reg_name, $reg_addr, $reg_type) ;
78- crate :: generate_reg_write!( $servo_name, $reg_name, $reg_addr, $reg_type) ;
82+ $ crate:: generate_reg_read!( $servo_name, $reg_name, $reg_addr, $reg_type) ;
83+ $ crate:: generate_reg_write!( $servo_name, $reg_name, $reg_addr, $reg_type) ;
7984 } ;
8085}
8186#[ macro_export]
@@ -84,10 +89,10 @@ macro_rules! generate_reg_read {
8489 paste:: paste! {
8590 #[ doc = concat!( "Read register *" , stringify!( $name) , "* (addr: " , stringify!( $addr) , ", type: " , stringify!( $reg_type) , ")" ) ]
8691 pub fn [ <read_ $reg_name>] (
87- io: & crate :: DynamixelProtocolHandler ,
92+ io: & $ crate:: DynamixelProtocolHandler ,
8893 serial_port: & mut dyn serialport:: SerialPort ,
8994 id: u8 ,
90- ) -> crate :: Result <$reg_type> {
95+ ) -> $ crate:: Result <$reg_type> {
9196 let val = io. read( serial_port, id, $reg_addr, size_of:: <$reg_type>( ) . try_into( ) . unwrap( ) ) ?;
9297 let val = $reg_type:: from_le_bytes( val. try_into( ) . unwrap( ) ) ;
9398
@@ -96,10 +101,10 @@ macro_rules! generate_reg_read {
96101
97102 #[ doc = concat!( "Sync read register *" , stringify!( $name) , "* (addr: " , stringify!( $addr) , ", type: " , stringify!( $reg_type) , ")" ) ]
98103 pub fn [ <sync_read_ $reg_name>] (
99- io: & crate :: DynamixelProtocolHandler ,
104+ io: & $ crate:: DynamixelProtocolHandler ,
100105 serial_port: & mut dyn serialport:: SerialPort ,
101106 ids: & [ u8 ] ,
102- ) -> crate :: Result <Vec <$reg_type>> {
107+ ) -> $ crate:: Result <Vec <$reg_type>> {
103108 let val: Vec <Vec <u8 >> = io. sync_read( serial_port, ids, $reg_addr, size_of:: <$reg_type>( ) . try_into( ) . unwrap( ) ) ?;
104109 let val = val
105110 . iter( )
@@ -114,7 +119,7 @@ macro_rules! generate_reg_read {
114119 pub fn [ <read_ $reg_name>] (
115120 & mut self ,
116121 ids: & [ u8 ] ,
117- ) -> crate :: Result <Vec <$reg_type>> {
122+ ) -> $ crate:: Result <Vec <$reg_type>> {
118123 [ <sync_read_ $reg_name>] (
119124 self . dph. as_ref( ) . unwrap( ) ,
120125 self . serial_port. as_mut( ) . unwrap( ) . as_mut( ) ,
@@ -132,21 +137,21 @@ macro_rules! generate_reg_write {
132137 paste:: paste! {
133138 #[ doc = concat!( "Write register *" , stringify!( $name) , "* (addr: " , stringify!( $addr) , ", type: " , stringify!( $reg_type) , ")" ) ]
134139 pub fn [ <write_ $reg_name>] (
135- io: & crate :: DynamixelProtocolHandler ,
140+ io: & $ crate:: DynamixelProtocolHandler ,
136141 serial_port: & mut dyn serialport:: SerialPort ,
137142 id: u8 ,
138143 val: $reg_type,
139- ) -> crate :: Result <( ) > {
144+ ) -> $ crate:: Result <( ) > {
140145 io. write( serial_port, id, $reg_addr, & val. to_le_bytes( ) )
141146 }
142147
143148 #[ doc = concat!( "Sync write register *" , stringify!( $name) , "* (addr: " , stringify!( $addr) , ", type: " , stringify!( $reg_type) , ")" ) ]
144149 pub fn [ <sync_write_ $reg_name>] (
145- io: & crate :: DynamixelProtocolHandler ,
150+ io: & $ crate:: DynamixelProtocolHandler ,
146151 serial_port: & mut dyn serialport:: SerialPort ,
147152 ids: & [ u8 ] ,
148153 values: & [ $reg_type] ,
149- ) -> crate :: Result <( ) > {
154+ ) -> $ crate:: Result <( ) > {
150155 io. sync_write(
151156 serial_port,
152157 ids,
@@ -164,7 +169,7 @@ macro_rules! generate_reg_write {
164169 & mut self ,
165170 ids: & [ u8 ] ,
166171 values: & [ $reg_type] ,
167- ) -> crate :: Result <( ) > {
172+ ) -> $ crate:: Result <( ) > {
168173 [ <sync_write_ $reg_name>] (
169174 self . dph. as_ref( ) . unwrap( ) ,
170175 self . serial_port. as_mut( ) . unwrap( ) . as_mut( ) ,
@@ -186,23 +191,23 @@ macro_rules! generate_reg_write_fb {
186191 paste:: paste! {
187192 #[ doc = concat!( "Write register with fb *" , stringify!( $name) , "* (addr: " , stringify!( $addr) , ", type: " , stringify!( $reg_type) , ")" ) ]
188193 pub fn [ <write_ $name _fb>] (
189- dph: & crate :: DynamixelProtocolHandler ,
194+ dph: & $ crate:: DynamixelProtocolHandler ,
190195 serial_port: & mut dyn serialport:: SerialPort ,
191196 id: u8 ,
192197 val: $reg_type,
193- ) -> crate :: Result <$fb_type> {
198+ ) -> $ crate:: Result <$fb_type> {
194199 let fb = dph. write_fb( serial_port, id, $addr, & val. to_le_bytes( ) ) ?;
195200 let fb = $fb_type:: from_le_bytes( fb. try_into( ) . unwrap( ) ) ;
196201 Ok ( fb)
197202 }
198203
199204 #[ doc = concat!( "Sync write register *" , stringify!( $name) , "* (addr: " , stringify!( $addr) , ", type: " , stringify!( $reg_type) , ")" ) ]
200205 pub fn [ <sync_write_ $name _fb>] (
201- dph: & crate :: DynamixelProtocolHandler ,
206+ dph: & $ crate:: DynamixelProtocolHandler ,
202207 serial_port: & mut dyn serialport:: SerialPort ,
203208 ids: & [ u8 ] ,
204209 values: & [ $reg_type] ,
205- ) -> crate :: Result <( ) > {
210+ ) -> $ crate:: Result <( ) > {
206211 dph. sync_write(
207212 serial_port,
208213 ids,
0 commit comments