Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
 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)
Пример #4
0
 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)
Пример #5
0
 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)
Пример #6
0
    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)
Пример #7
0
    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)
Пример #8
0
 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)
Пример #9
0
 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)
Пример #10
0
 def disable(self):
     """Disable virtual coil."""
     command = platform_pb2.Commands()
     command.disable_coil.coil_number = self.number
     self.platform.send_command(command)