def pulse(self, pulse_settings: PulseSettings): """Pulse virtual coil.""" command = platform_pb2.Commands() command.pulse_coil.coil_number = self.number command.pulse_coil.pulse_ms = pulse_settings.duration command.pulse_coil.pulse_power = pulse_settings.power self.platform.send_command(command)
def enable(self, pulse_settings: PulseSettings, hold_settings: HoldSettings): """Enable virtual coil.""" command = platform_pb2.Commands() command.enable_coil.coil_number = self.number command.enable_coil.pulse_ms = pulse_settings.duration command.enable_coil.pulse_power = pulse_settings.power command.enable_coil.hold_power = hold_settings.power self.platform.send_command(command)
def set_pulse_on_hit_and_release_rule(self, enable_switch: SwitchSettings, coil: DriverSettings): """Pulse on hit.""" command = platform_pb2.Commands() command.configure_hardware_rule.coil_number = coil.hw_driver.number command.configure_hardware_rule.switch_number = enable_switch.hw_switch.number command.configure_hardware_rule.pulse_ms = coil.pulse_settings.duration command.configure_hardware_rule.pulse_power = coil.pulse_settings.power command.configure_hardware_rule.hold_power = 0.0 self.send_command(command)
def set_pulse_on_hit_and_enable_and_release_and_disable_rule( self, enable_switch: SwitchSettings, eos_switch: SwitchSettings, coil: DriverSettings, repulse_settings: Optional[RepulseSettings]): """Pulse on hit and hold, disable on disable_switch hit.""" command = platform_pb2.Commands() command.configure_hardware_rule.coil_number = coil.hw_driver.number command.configure_hardware_rule.switch_number = enable_switch.hw_switch.number command.configure_hardware_rule.pulse_ms = coil.pulse_settings.duration command.configure_hardware_rule.pulse_power = coil.pulse_settings.power command.configure_hardware_rule.hold_power = coil.hold_settings.power self.send_command(command)
async def Start(self, request, context): print("START") while True: command = platform_pb2.Commands() command.fade_light.common_fade_ms = 20 fade = platform_pb2.FadeLightRequest.ChannelFade() fade.light_number = "1" fade.target_brightness = 0.5 command.fade_light.fades.append(fade) yield command await asyncio.sleep(1)
def set_fade(self, start_brightness, start_time, target_brightness, target_time): """Set fade.""" # TODO: batch all fades current_time = self.clock.get_time() if target_time > 0: fade_ms = int((target_time - current_time) * 1000) else: fade_ms = 0 command = platform_pb2.Commands() command.fade_light.common_fade_ms = fade_ms command.fade_light.fades.append(platform_pb2.FadeLightRequest.ChannelFade( light_number=self.number, target_brightness=target_brightness)) self.platform.send_command(command)
def _set_text(self, text: ColoredSegmentDisplayText) -> None: """Set text to VPE segment displays.""" assert not text.embed_commas mapping = TextToSegmentMapper.map_segment_text_to_segments( text, self.length_of_display, FOURTEEN_SEGMENTS) result = map(lambda x: x.get_vpe_encoding(), mapping) command = platform_pb2.Commands() command.segment_display_frame_request.name = self.number command.segment_display_frame_request.frame = b''.join(result) command.segment_display_frame_request.colors.extend([ SetSegmentDisplayFrameRequest.SegmentDisplayColor( r=color.red / 255.0, b=color.blue / 255.0, g=color.green / 255.0) for color in text.get_colors() ]) self.platform.send_command(command)
def clear_hw_rule(self, switch: SwitchSettings, coil: DriverSettings): """Clear hw rule.""" command = platform_pb2.Commands() command.remove_hardware_rule.coil_number = coil.hw_driver.number command.remove_hardware_rule.switch_number = switch.hw_switch.number self.send_command(command)
def _send_frame(self): command = platform_pb2.Commands() command.dmd_frame_request.name = self.name command.dmd_frame_request.frame = self.data command.dmd_frame_request.brightness = self.brightness self.platform.send_command(command)
def disable(self): """Disable virtual coil.""" command = platform_pb2.Commands() command.disable_coil.coil_number = self.number self.platform.send_command(command)