本文整理汇总了Python中infrastructure.controller.Controller.change_generator方法的典型用法代码示例。如果您正苦于以下问题:Python Controller.change_generator方法的具体用法?Python Controller.change_generator怎么用?Python Controller.change_generator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类infrastructure.controller.Controller
的用法示例。
在下文中一共展示了Controller.change_generator方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: CalibrationAPI
# 需要导入模块: from infrastructure.controller import Controller [as 别名]
# 或者: from infrastructure.controller.Controller import change_generator [as 别名]
#.........这里部分代码省略.........
'''Used to show a single line on one axis used to line up calibration grid'''
def show_line(self):
self._unapply_calibration()
self._update_generator(self._alignment_generator)
def get_max_deflection(self):
return self._configuration['max_deflection']
def set_max_deflection(self, deflection):
self._configuration['max_deflection'] = deflection
self._unapply_calibration()
self._configuration_manager.save(self._configuration)
'''Used to show a test pattern with calibration applied'''
def show_test_pattern(self,pattern):
if pattern in self._test_patterns.keys():
self._apply_calibration()
self._update_generator(self._test_patterns[pattern])
else:
logging.error('Pattern: %s does not exist' % pattern)
raise Exception('Pattern: %s does not exist' % pattern)
'''Shows the scale square'''
def show_scale(self):
self._unapply_calibration()
self._update_generator(self._test_patterns['Square'])
'''returns a list of test patterns'''
def get_test_patterns(self):
return self._test_patterns.keys()
'''Returns the current calibration for the printer'''
def current_calibration(self):
return self._configuration['calibration_data']
'''Saves the suppliled calibration'''
def save(self, calibration):
if not self.validate(calibration):
raise Exception('Bad Calibration %s ' % calibration)
self._configuration['calibration_data'] = calibration
logging.debug("Saving calibration: %s" % calibration)
self._configuration_manager.save(self._configuration)
self.make_pattern_fit() #TODO make this better.
#deprecated
def make_pattern_fit(self):
for pattern in self._test_patterns.values():
pattern.set_radius(self.get_largest_object_radius())
'''Validates a calibration'''
def validate(self, calibration):
if not 'height' in calibration:
return False
if not 'upper_points' in calibration:
return False
if not 'lower_points' in calibration:
return False
if (type(calibration['height']) != types.FloatType):
return False
if (calibration['height'] <= 0.0):
return False
if not self._validate_points(calibration['upper_points']):
return False
if not self._validate_points(calibration['lower_points']):
return False
return True
'''Must be called before shutting down applications'''
def stop(self):
self._controller.stop()
def _update_generator(self, generator):
self._current_generator = generator
self._controller.change_generator(self._current_generator)
def _apply_calibration(self):
self._path_to_audio.set_transformer(HomogenousTransformer(self._configuration['calibration_data'], scale = self._configuration["max_deflection"]))
def _unapply_calibration(self):
self._path_to_audio.set_transformer(TuningTransformer(scale = self._configuration["max_deflection"]))
def _validate_points(self,points):
if (len(points) != 4):
return False
return True
'''Based on current calibrations_gets_maximum_size_of_object at the base layer'''
def get_largest_object_radius(self):
lowest = None
for (x,y) in self._configuration['calibration_data']['lower_points'].values():
if not lowest or abs(x) < lowest:
lowest = abs(x)
if abs(y) < lowest:
lowest = abs(y)
return lowest
def stop(self):
self._controller.stop()
示例2: ControllerTests
# 需要导入模块: from infrastructure.controller import Controller [as 别名]
# 或者: from infrastructure.controller.Controller import change_generator [as 别名]
#.........这里部分代码省略.........
test_layer = Layer(0.0,[ LateralDraw([0.0,0.0],[2.0,2.0],100.0) ])
stub_layer_generator = StubLayerGenerator([test_layer])
mock_path_to_audio.process.return_value = "SomeAudio"
mock_laser_control.modulate.return_value = "SomeModulatedAudio"
self.controller = Controller(mock_laser_control,mock_path_to_audio,mock_audio_writer,stub_layer_generator)
self.controller.start()
self.wait_for_controller()
self.assertEquals(1, self.controller.get_status()['current_layer'])
self.assertEquals('Complete',self.controller.get_status()['status'])
def test_should_record_errors_and_abort(self, mock_LayerGenerator,mock_AudioWriter,mock_PathToAudio,mock_ZAxis,mock_LaserControl):
mock_laser_control = mock_LaserControl.return_value
mock_path_to_audio = mock_PathToAudio.return_value
mock_audio_writer = mock_AudioWriter.return_value
mock_layer_generator = mock_LayerGenerator.return_value
mock_layer_generator.next.return_value = Layer(1.0,[ LateralDraw([0.0,0.0],[2.0,2.0],2.0) ])
mock_path_to_audio.process.side_effect = Exception("Something Broke")
mock_laser_control.modulate.return_value = "SomeModulatedAudio"
self.controller = Controller(mock_laser_control,mock_path_to_audio,mock_audio_writer,mock_layer_generator)
self.controller.start()
self.wait_for_controller()
self.assertEquals(1, len(self.controller.get_status()['errors']))
self.assertEquals("Something Broke", self.controller.get_status()['errors'][0]['message'])
def test_should_record_errors_and_continue_when_abort_on_error_is_false(self, mock_LayerGenerator,mock_AudioWriter,mock_PathToAudio,mock_ZAxis,mock_LaserControl):
mock_laser_control = mock_LaserControl.return_value
mock_path_to_audio = mock_PathToAudio.return_value
mock_audio_writer = mock_AudioWriter.return_value
test_layer1 = Layer(0.0,[ LateralDraw([0.0,0.0],[2.0,2.0],100.0) ])
test_layer2 = Layer(0.0,[ LateralDraw([0.0,0.0],[2.0,2.0],100.0) ])
stub_layer_generator = StubLayerGenerator([test_layer1, test_layer2])
mock_path_to_audio.process.side_effect = Exception("Something Broke")
mock_laser_control.modulate.return_value = "SomeModulatedAudio"
self.controller = Controller(mock_laser_control,mock_path_to_audio,mock_audio_writer,stub_layer_generator, abort_on_error = False)
self.controller.start()
self.wait_for_controller()
self.assertEquals(2, len(self.controller.get_status()['errors']))
def test_should_change_layer_generator(self, mock_LayerGenerator,mock_AudioWriter,mock_PathToAudio,mock_ZAxis,mock_LaserControl):
mock_laser_control = mock_LaserControl.return_value
mock_path_to_audio = mock_PathToAudio.return_value
mock_audio_writer = mock_AudioWriter.return_value
generator1 = SinglePointGenerator([1.0,1.0])
generator2 = SinglePointGenerator([0.0,0.0])
self.controller = Controller(mock_laser_control,mock_path_to_audio,mock_audio_writer,generator1)
self.controller.start()
time.sleep(0.1)
pre_switch = mock_path_to_audio.process.call_args
self.controller.change_generator(generator2)
time.sleep(0.1)
post_switch = mock_path_to_audio.process.call_args
self.controller.stop()
self.wait_for_controller()
self.assertEquals( ([1.0,1.0,0.0],[1.0,1.0,0.0],100.0), pre_switch[0] )
self.assertEquals( ([0.0,0.0,0.0],[0.0,0.0,0.0],100.0), post_switch[0] )
def test_stop_should_stop_working_on_commands_when_generator_changed(self, mock_LayerGenerator,mock_AudioWriter,mock_PathToAudio,mock_ZAxis,mock_LaserControl):
mock_laser_control = mock_LaserControl.return_value
mock_path_to_audio = mock_PathToAudio.return_value
mock_audio_writer = mock_AudioWriter.return_value
mock_layer_generator = mock_LayerGenerator.return_value
test_layer1 = Layer(1.0, [ LateralDraw([2.0,2.0],[0.0,0.0],2.0) for x in range(0,32768)])
stub_layer_generator1 = StubLayerGenerator([test_layer1])
test_layer2 = Layer(1.0, [ LateralDraw([0.0,0.0],[0.0,0.0],2.0)] )
stub_layer_generator2 = StubLayerGenerator([test_layer2])
mock_path_to_audio.process.return_value = "SomeAudio"
mock_laser_control.modulate.return_value = "SomeModulatedAudio"
self.controller = Controller(mock_laser_control,mock_path_to_audio,mock_audio_writer,stub_layer_generator1)
self.controller.start()
time.sleep(0.1)
self.controller.change_generator(stub_layer_generator2)
time.sleep(0.1)
mock_path_to_audio.process.assert_called_with([0.0,0.0,1.0],[0.0,0.0,1.0],2.0)
self.wait_for_controller()
def test_init_should_set_call_back_on_zaxis(self, mock_LayerGenerator,mock_AudioWriter,mock_PathToAudio,mock_ZAxis,mock_LaserControl):
mock_laser_control = mock_LaserControl.return_value
mock_path_to_audio = mock_PathToAudio.return_value
mock_audio_writer = mock_AudioWriter.return_value
mock_layer_generator = mock_LayerGenerator.return_value
mock_zaxis = mock_ZAxis.return_value
Controller(mock_laser_control,mock_path_to_audio,mock_audio_writer,mock_layer_generator, mock_zaxis)
self.assertTrue(mock_zaxis.set_drip_call_back.called)