@@ -48,6 +48,8 @@ def run_to_positions(self,stop_action,command,speed_sp,positions,tolerance):
4848 self ._param ['motor' ].command = 'stop'
4949
5050 def test_stop_brake_no_ramp_med_speed_relative (self ):
51+ if not self ._param ['has_brake' ]:
52+ self .skipTest ('brake not supported by this motor controller' )
5153 self .initialize_motor ()
5254 self .run_to_positions ('brake' ,'run-to-rel-pos' ,400 ,[0 ,90 ,180 ,360 ,720 ,- 720 ,- 360 ,- 180 ,- 90 ,0 ],20 )
5355
@@ -56,6 +58,8 @@ def test_stop_hold_no_ramp_med_speed_relative(self):
5658 self .run_to_positions ('hold' ,'run-to-rel-pos' ,400 ,[0 ,90 ,180 ,360 ,720 ,- 720 ,- 360 ,- 180 ,- 90 ,0 ],5 )
5759
5860 def test_stop_brake_no_ramp_low_speed_relative (self ):
61+ if not self ._param ['has_brake' ]:
62+ self .skipTest ('brake not supported by this motor controller' )
5963 self .initialize_motor ()
6064 self .run_to_positions ('brake' ,'run-to-rel-pos' ,100 ,[0 ,90 ,180 ,360 ,720 ,- 720 ,- 360 ,- 180 ,- 90 ,0 ],20 )
6165
@@ -64,6 +68,8 @@ def test_stop_hold_no_ramp_low_speed_relative(self):
6468 self .run_to_positions ('hold' ,'run-to-rel-pos' ,100 ,[0 ,90 ,180 ,360 ,720 ,- 720 ,- 360 ,- 180 ,- 90 ,0 ],5 )
6569
6670 def test_stop_brake_no_ramp_high_speed_relative (self ):
71+ if not self ._param ['has_brake' ]:
72+ self .skipTest ('brake not supported by this motor controller' )
6773 self .initialize_motor ()
6874 self .run_to_positions ('brake' ,'run-to-rel-pos' ,900 ,[0 ,90 ,180 ,360 ,720 ,- 720 ,- 360 ,- 180 ,- 90 ,0 ],50 )
6975
@@ -72,6 +78,8 @@ def test_stop_hold_no_ramp_high_speed_relative(self):
7278 self .run_to_positions ('hold' ,'run-to-rel-pos' ,100 ,[0 ,90 ,180 ,360 ,720 ,- 720 ,- 360 ,- 180 ,- 90 ,0 ],5 )
7379
7480 def test_stop_brake_no_ramp_med_speed_absolute (self ):
81+ if not self ._param ['has_brake' ]:
82+ self .skipTest ('brake not supported by this motor controller' )
7583 self .initialize_motor ()
7684 self .run_to_positions ('brake' ,'run-to-abs-pos' ,400 ,[0 ,90 ,180 ,360 ,180 ,90 ,0 ,- 90 ,- 180 ,- 360 ,- 180 ,- 90 ,0 ],20 )
7785
@@ -80,6 +88,8 @@ def test_stop_hold_no_ramp_med_speed_absolute(self):
8088 self .run_to_positions ('hold' ,'run-to-abs-pos' ,400 ,[0 ,90 ,180 ,360 ,180 ,90 ,0 ,- 90 ,- 180 ,- 360 ,- 180 ,- 90 ,0 ],5 )
8189
8290 def test_stop_brake_no_ramp_low_speed_absolute (self ):
91+ if not self ._param ['has_brake' ]:
92+ self .skipTest ('brake not supported by this motor controller' )
8393 self .initialize_motor ()
8494 self .run_to_positions ('brake' ,'run-to-abs-pos' ,100 ,[0 ,90 ,180 ,360 ,180 ,90 ,0 ,- 90 ,- 180 ,- 360 ,- 180 ,- 90 ,0 ],20 )
8595
@@ -88,6 +98,8 @@ def test_stop_hold_no_ramp_low_speed_absolute(self):
8898 self .run_to_positions ('hold' ,'run-to-abs-pos' ,100 ,[0 ,90 ,180 ,360 ,180 ,90 ,0 ,- 90 ,- 180 ,- 360 ,- 180 ,- 90 ,0 ],5 )
8999
90100 def test_stop_brake_no_ramp_high_speed_absolute (self ):
101+ if not self ._param ['has_brake' ]:
102+ self .skipTest ('brake not supported by this motor controller' )
91103 self .initialize_motor ()
92104 self .run_to_positions ('brake' ,'run-to-abs-pos' ,900 ,[0 ,90 ,180 ,360 ,180 ,90 ,0 ,- 90 ,- 180 ,- 360 ,- 180 ,- 90 ,0 ],50 )
93105
@@ -97,14 +109,31 @@ def test_stop_hold_no_ramp_high_speed_absolute(self):
97109
98110# Add all the tests to the suite - some tests apply only to certain drivers!
99111
100- def AddTachoMotorMotionTestsToSuite ( suite , driver_name , params ):
112+ def AddTachoMotorMotionTestsToSuite (suite , params ):
101113 suite .addTest (ptc .ParameterizedTestCase .parameterize (TestMotorMotion , param = params ))
102114
103115if __name__ == '__main__' :
104- params = { 'motor' : ev3 .Motor ('outA' ), 'port' : 'outA' , 'driver_name' : 'lego-ev3-l-motor' }
116+ ev3_params = {
117+ 'motor' : ev3 .Motor ('outA' ),
118+ 'port' : 'outA' ,
119+ 'driver_name' : 'lego-ev3-l-motor' ,
120+ 'has_brake' : True ,
121+ }
122+ brickpi_params = {
123+ 'motor' : ev3 .Motor ('ttyAMA0:MA' ),
124+ 'port' : 'ttyAMA0:MA' ,
125+ 'driver_name' : 'lego-nxt-motor' ,
126+ 'has_brake' : False ,
127+ }
128+ pistorms_params = {
129+ 'motor' : ev3 .Motor ('pistorms:BAM1' ),
130+ 'port' : 'pistorms:BAM1' ,
131+ 'driver_name' : 'lego-nxt-motor' ,
132+ 'has_brake' : True ,
133+ }
105134
106135 suite = unittest .TestSuite ()
107136
108- AddTachoMotorMotionTestsToSuite ( suite , 'lego-ev3-l-motor' , params )
137+ AddTachoMotorMotionTestsToSuite (suite , ev3_params )
109138
110139 unittest .TextTestRunner (verbosity = 1 ,buffer = True ).run (suite )
0 commit comments