splash_screen: allow power_devices to be configured
This commit is contained in:
parent
882a088174
commit
088a6deabd
@ -57,6 +57,10 @@ z_babystep_values: 0.01, 0.05
|
|||||||
# the values configured in the UI will not be used.
|
# the values configured in the UI will not be used.
|
||||||
move_speed_xy: 500
|
move_speed_xy: 500
|
||||||
move_speed_z: 300
|
move_speed_z: 300
|
||||||
|
|
||||||
|
# Define one or more moonraker power devices that turn on this printer (CSV list)
|
||||||
|
# Default is the printer name
|
||||||
|
power_devices: example1, example2
|
||||||
```
|
```
|
||||||
|
|
||||||
## Z probe calibrate Option
|
## Z probe calibrate Option
|
||||||
|
@ -77,39 +77,48 @@ class SplashScreenPanel(ScreenPanel):
|
|||||||
self.labels['power'] = self._gtk.ButtonImage("shutdown", _("Power On Printer"), "color3")
|
self.labels['power'] = self._gtk.ButtonImage("shutdown", _("Power On Printer"), "color3")
|
||||||
|
|
||||||
self.clear_action_bar()
|
self.clear_action_bar()
|
||||||
|
self.search_power_devices()
|
||||||
if self._printer is not None:
|
|
||||||
logging.debug("Connected to %s", self._screen.connected_printer)
|
|
||||||
connecting = self._screen.connecting_to_printer
|
|
||||||
if connecting is not None:
|
|
||||||
printer = connecting
|
|
||||||
else:
|
|
||||||
printer = None
|
|
||||||
logging.debug("Connecting to %s", connecting)
|
|
||||||
devices = self._printer.get_power_devices()
|
|
||||||
logging.debug("Power devices: %s", devices)
|
|
||||||
for device in devices:
|
|
||||||
if printer == device:
|
|
||||||
logging.info("Found %s in power devices, Adding power button", printer)
|
|
||||||
self.labels['actions'].add(self.labels['power'])
|
|
||||||
self.labels['power'].connect("clicked", self.power_on, device)
|
|
||||||
if self._screen.printer.get_power_device_status(device) == "off":
|
|
||||||
logging.info("Printer is OFF")
|
|
||||||
else:
|
|
||||||
logging.info("Printer is ON")
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
logging.info("%s not found in power devices", printer)
|
|
||||||
|
|
||||||
self.labels['actions'].add(self.labels['restart'])
|
self.labels['actions'].add(self.labels['restart'])
|
||||||
self.labels['actions'].add(self.labels['firmware_restart'])
|
self.labels['actions'].add(self.labels['firmware_restart'])
|
||||||
self.labels['actions'].add(self.labels['menu'])
|
self.labels['actions'].add(self.labels['menu'])
|
||||||
self.labels['actions'].show_all()
|
self.labels['actions'].show_all()
|
||||||
|
|
||||||
def power_on(self, widget, device):
|
def search_power_devices(self):
|
||||||
|
if self._printer is not None:
|
||||||
|
power_devices = found_devices = []
|
||||||
|
printer = self._screen.connecting_to_printer
|
||||||
|
logging.info("Connecting to %s", printer)
|
||||||
|
printer_cfg = self._config.get_printer_config(printer)
|
||||||
|
if printer_cfg is not None:
|
||||||
|
power_devices = printer_cfg.get("power_devices", "")
|
||||||
|
power_devices = [str(i.strip()) for i in power_devices.split(',')]
|
||||||
|
logging.info("%s associated power devices: %s", printer, power_devices)
|
||||||
|
devices = self._printer.get_power_devices()
|
||||||
|
logging.debug("Power devices: %s", devices)
|
||||||
|
if devices is not None:
|
||||||
|
for device in devices:
|
||||||
|
if device == printer:
|
||||||
|
found_devices.append(printer)
|
||||||
|
for power_device in power_devices:
|
||||||
|
if device == power_device:
|
||||||
|
found_devices.append(power_device)
|
||||||
|
if found_devices:
|
||||||
|
logging.info("Found %s, Adding power button", found_devices)
|
||||||
|
self.labels['actions'].add(self.labels['power'])
|
||||||
|
self.labels['power'].connect("clicked", self.power_on, found_devices)
|
||||||
|
else:
|
||||||
|
logging.info("%s power devices not found", printer)
|
||||||
|
|
||||||
|
def power_on(self, widget, devices):
|
||||||
_ = self.lang.gettext
|
_ = self.lang.gettext
|
||||||
self._screen.show_popup_message(_("Sending Power ON signal"), level=1)
|
self._screen.show_popup_message(_("Sending Power ON signal to: %s") % devices, level=1)
|
||||||
self._screen._ws.klippy.power_device_on(device)
|
for device in devices:
|
||||||
|
if self._screen.printer.get_power_device_status(device) == "off":
|
||||||
|
logging.info("%s is OFF, Sending Power ON signal", device)
|
||||||
|
self._screen._ws.klippy.power_device_on(device)
|
||||||
|
elif self._screen.printer.get_power_device_status(device) == "on":
|
||||||
|
logging.info("%s is ON", device)
|
||||||
|
|
||||||
def firmware_restart(self, widget):
|
def firmware_restart(self, widget):
|
||||||
self._screen._ws.klippy.restart_firmware()
|
self._screen._ws.klippy.restart_firmware()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user