本文整理汇总了Python中infrastructure.controller.Controller.get_status方法的典型用法代码示例。如果您正苦于以下问题:Python Controller.get_status方法的具体用法?Python Controller.get_status怎么用?Python Controller.get_status使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类infrastructure.controller.Controller
的用法示例。
在下文中一共展示了Controller.get_status方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PrintAPI
# 需要导入模块: from infrastructure.controller import Controller [as 别名]
# 或者: from infrastructure.controller.Controller import get_status [as 别名]
class PrintAPI(object):
def __init__(self, configuration, status_call_back = None):
logging.info("Print API Startup")
self._configuration = configuration
self._controller = None
self._status_call_back = status_call_back
def print_gcode(self, file_like_object, print_sub_layers = True, dry_run = False):
gcode_reader = GCodeReader(file_like_object)
gcode_layer_generator = gcode_reader.get_layers()
if print_sub_layers:
layer_generator = SubLayerGenerator(gcode_layer_generator, self._configuration.options.sublayer_height_mm)
else:
layer_generator = gcode_layer_generator
self.print_layers(layer_generator, dry_run)
def _get_zaxis(self):
if self._configuration.dripper.dripper_type == 'audio':
return AudioDripZAxis(
self._configuration.dripper.drips_per_mm,
self._configuration.audio.input.sample_rate,
self._configuration.audio.input.bit_depth,
self._commander,
self._configuration.serial.on_command,
self._configuration.serial.off_command
)
elif self._configuration.dripper.dripper_type == 'emulated':
return TimedDripZAxis(
self._configuration.dripper.drips_per_mm,
drips_per_second = self._configuration.dripper.emulated_drips_per_second
)
def print_layers(self, layer_generator, dry_run = False):
if self._configuration.serial.on:
self._commander = SerialCommander( self._configuration.serial.port )
else:
self._commander = NullCommander()
laser_control = AudioModulationLaserControl(
self._configuration.audio.output.sample_rate,
self._configuration.audio.output.modulation_on_frequency,
self._configuration.audio.output.modulation_off_frequency,
self._configuration.options.laser_offset
)
transformer = HomogenousTransformer(
self._configuration.calibration.max_deflection,
self._configuration.calibration.height,
self._configuration.calibration.lower_points,
self._configuration.calibration.upper_points,
)
path_to_audio = PathToAudio(
laser_control.actual_samples_per_second,
transformer,
self._configuration.options.laser_thickness_mm
)
if dry_run:
audio_writer = None
self.zaxis = None
zaxis_control = None
abort_on_error = False
else:
audio_writer = AudioWriter(
self._configuration.audio.output.sample_rate,
self._configuration.audio.output.bit_depth,
)
self.zaxis = self._get_zaxis()
abort_on_error = True
self._controller = Controller(
laser_control,
path_to_audio,
audio_writer,
layer_generator,
zaxis = self.zaxis,
status_call_back = self._status_call_back,
max_lead_distance = self._configuration.dripper.max_lead_distance_mm,
abort_on_error = abort_on_error
)
self._controller.start()
def get_status(self):
return self._controller.get_status()
def can_set_drips_per_second(self):
if getattr(self.zaxis, 'set_drips_per_second', False):
return True
else:
return False
def set_drips_per_second(self, drips_per_second):
if getattr(self.zaxis, 'set_drips_per_second', False):
self.zaxis.set_drips_per_second(drips_per_second)
else:
logging.error('Cannot change drips per second on %s' % type(self.zaxis))
raise Exception('Cannot change drips per second on %s' % type(self.zaxis))
def get_drips_per_second(self):
if getattr(self.zaxis, 'get_drips_per_second'):
return self.zaxis.get_drips_per_second()
else:
#.........这里部分代码省略.........
示例2: ControllerTests
# 需要导入模块: from infrastructure.controller import Controller [as 别名]
# 或者: from infrastructure.controller.Controller import get_status [as 别名]
#.........这里部分代码省略.........
mock_audio_writer = mock_AudioWriter.return_value
test_layer = Layer(0.0,[ LateralDraw([0.0,0.0],[2.0,2.0],2.0), LateralDraw([2.0,2.0],[-1.0,-1.0],2.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()
mock_path_to_audio.process.assert_called_with([2.0,2.0,0.0],[-1.0,-1.0,0.0],2.0)
def test_if_max_lead_specifed_should_skip_layers_if_higher(self, mock_LayerGenerator,mock_AudioWriter,mock_PathToAudio,mock_ZAxis,mock_LaserControl):
max_lead_distance = 0.1
mock_laser_control = mock_LaserControl.return_value
mock_path_to_audio = mock_PathToAudio.return_value
mock_audio_writer = mock_AudioWriter.return_value
mock_zaxis = mock_ZAxis.return_value
zaxis_return_values = [ 0.0, 0.0, 2.0, 2.0,2.0,2.0 ]
def z_axis_side_effect():
return zaxis_return_values.pop(0)
mock_zaxis.current_z_location_mm = z_axis_side_effect
test_layer1 = Layer(0.0,[ LateralDraw([0.0,0.0],[2.0,2.0],2.0), LateralDraw([2.0,2.0],[-1.0,-1.0],2.0) ])
test_layer2 = Layer(1.0,[ LateralDraw([0.0,0.0],[2.0,2.0],2.0), LateralDraw([2.0,2.0],[-1.0,-1.0],2.0) ])
test_layer3 = Layer(2.0,[ LateralDraw([0.0,0.0],[2.0,2.0],2.0), LateralDraw([2.0,2.0],[-1.0,-1.0],2.0) ])
stub_layer_generator = StubLayerGenerator([test_layer1, test_layer2, test_layer3])
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,zaxis =mock_zaxis,max_lead_distance=max_lead_distance)
self.controller.start()
self.wait_for_controller()
self.assertEquals(1, self.controller.get_status()['skipped_layers'])
self.assertEquals(5, mock_audio_writer.write_chunk.call_count)
@patch('infrastructure.zaxis_control.ZAxisControl')
def test_if_zaxis_control_specifed_should_call_start_and_stop_correctly(self, mock_ZAxisControl, mock_LayerGenerator,mock_AudioWriter,mock_PathToAudio,mock_ZAxis,mock_LaserControl):
mock_zaxis_control = mock_ZAxisControl.return_value
mock_laser_control = mock_LaserControl.return_value
mock_path_to_audio = mock_PathToAudio.return_value
mock_audio_writer = mock_AudioWriter.return_value
mock_zaxis = mock_ZAxis.return_value
zaxis_return_values = [ 0.0, 0.0, 2.0, 2.0,2.0,2.0 ]
def z_axis_side_effect():
return zaxis_return_values.pop(0)
mock_zaxis.current_z_location_mm = z_axis_side_effect
test_layer1 = Layer(0.0,[ LateralDraw([0.0,0.0],[2.0,2.0],2.0), LateralDraw([2.0,2.0],[-1.0,-1.0],2.0) ])
test_layer2 = Layer(1.0,[ LateralDraw([0.0,0.0],[2.0,2.0],2.0), LateralDraw([2.0,2.0],[-1.0,-1.0],2.0) ])
test_layer3 = Layer(2.0,[ LateralDraw([0.0,0.0],[2.0,2.0],2.0), LateralDraw([2.0,2.0],[-1.0,-1.0],2.0) ])
stub_layer_generator = StubLayerGenerator([test_layer1, test_layer2, test_layer3])
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,zaxis = mock_zaxis, zaxis_control = mock_zaxis_control, max_lead_distance = 0)
self.controller.start()
self.wait_for_controller()
expected_calls = [ call.move_up(), call.stop(), call.stop(), call.close()]
actual = [ c for c in mock_zaxis_control.mock_calls if c != call.__nonzero__() ]
self.assertEquals(expected_calls, actual)
def test_if_draw_command_start_and_current_pos_are_not_the_same_should_move_to_new_posisition(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_layer = Layer(0.0,[
示例3: PrintAPI
# 需要导入模块: from infrastructure.controller import Controller [as 别名]
# 或者: from infrastructure.controller.Controller import get_status [as 别名]
class PrintAPI(object):
def __init__(self, configuration, status_call_back = None):
logging.info("Print API Startup")
self._configuration = configuration
self._controller = None
self._status_call_back = status_call_back
def print_gcode(self, file_like_object, print_sub_layers = True, dry_run = False):
gcode_reader = GCodeReader(file_like_object)
gcode_layer_generator = gcode_reader.get_layers()
if print_sub_layers:
layer_generator = SubLayerGenerator(gcode_layer_generator, self._configuration['sublayer_height_mm'])
else:
layer_generator = gcode_layer_generator
self.print_layers(layer_generator, dry_run)
def print_layers(self, layer_generator, dry_run = False):
laser_control = AudioModulationLaserControl(
self._configuration['output_sample_frequency'],
self._configuration['on_modulation_frequency'],
self._configuration['off_modulation_frequency']
)
transformer = HomogenousTransformer(self._configuration['calibration_data'], scale = self._configuration["max_deflection"])
path_to_audio = PathToAudio(
laser_control.actual_samples_per_second,
transformer,
self._configuration['laser_thickness_mm']
)
if dry_run:
audio_writer = None
zaxis = None
zaxis_control = None
abort_on_error = False
else:
audio_writer = AudioWriter(
self._configuration['output_sample_frequency'],
self._configuration['output_bit_depth'],
)
zaxis = DripBasedZAxis(
drips_per_mm = self._configuration['drips_per_mm'],
initial_height = 0.0,
sample_rate = self._configuration['input_sample_frequency'],
bit_depth = self._configuration['input_bit_depth'],
)
if self._configuration['use_serial_zaxis']:
zaxis_control = SerialZAxisControl(
self._configuration['serial_port'],
on_command = self._configuration['serial_on'],
off_command = self._configuration['serial_off']
)
else:
zaxis_control = None
abort_on_error = True
self._controller = Controller(
laser_control,
path_to_audio,
audio_writer,
layer_generator,
zaxis = zaxis,
zaxis_control = zaxis_control,
status_call_back = self._status_call_back,
max_lead_distance = self._configuration['max_lead_distance_mm'],
abort_on_error = abort_on_error
)
self._controller.start()
def get_status(self):
return self._controller.get_status()
def verify_gcode(self, g_code_file_like_object):
self.print_gcode(g_code_file_like_object, dry_run = True)
def stop(self):
if self._controller:
self._controller.stop()
else:
logging.warning('Stopped before printing')