Add xtool computer

This commit is contained in:
Tanner
2026-03-07 15:57:15 -07:00
parent a50880533a
commit 408ba800d7

27
main.py
View File

@@ -43,6 +43,18 @@ def cast_spell():
auto_stop_timer.start() auto_stop_timer.start()
logging.info(f"Scheduled auto-stop for VNC in {AUTO_STOP_TIMEOUT_SECONDS} seconds.") logging.info(f"Scheduled auto-stop for VNC in {AUTO_STOP_TIMEOUT_SECONDS} seconds.")
return f"Successfully cast to Thunder.", 200 return f"Successfully cast to Thunder.", 200
elif machine == "xtool":
logging.info("Casting to XTool.")
kill_vnc() # Kill any existing VNC session first
cast_xtool()
# Restart auto-stop timer
if auto_stop_timer is not None and auto_stop_timer.is_alive():
auto_stop_timer.cancel()
logging.info("Cancelled previous auto-stop timer.")
auto_stop_timer = threading.Timer(AUTO_STOP_TIMEOUT_SECONDS, _auto_stop_vnc)
auto_stop_timer.start()
logging.info(f"Scheduled auto-stop for VNC in {AUTO_STOP_TIMEOUT_SECONDS} seconds.")
return f"Successfully cast to XTool.", 200
else: else:
logging.warning(f"Invalid or missing machine parameter: {machine}") logging.warning(f"Invalid or missing machine parameter: {machine}")
return f"Invalid or missing 'machine' parameter. Use 'trotec' or 'thunder'.", 400 return f"Invalid or missing 'machine' parameter. Use 'trotec' or 'thunder'.", 400
@@ -97,6 +109,21 @@ def cast_thunder():
except Exception as e: # Catch other potential errors during Popen except Exception as e: # Catch other potential errors during Popen
logging.error(f"An error occurred while launching VNC for Thunder with Popen: {e}") logging.error(f"An error occurred while launching VNC for Thunder with Popen: {e}")
def cast_xtool():
"""Executes the xtightvncviewer command for XTool."""
command = "DISPLAY=:1 xtightvncviewer -viewonly -fullscreen 172.17.17.221"
try:
logging.info(f"Launching command: {command}")
# Use Popen to run the command in the background (non-blocking)
subprocess.Popen(command, shell=True)
logging.info(f"Command '{command}' launched successfully.")
except FileNotFoundError:
# This error is more likely if the shell itself (e.g., /bin/sh) is not found,
# or if 'xtightvncviewer' is not in PATH and the shell fails to find it.
logging.error(f"Failed to launch VNC for XTool: Shell or VNC command might not be found. Ensure xtightvncviewer is in PATH and shell is available.")
except Exception as e: # Catch other potential errors during Popen
logging.error(f"An error occurred while launching VNC for XTool with Popen: {e}")
def kill_vnc(): def kill_vnc():
"""Executes the killall command for xtightvncviewer.""" """Executes the killall command for xtightvncviewer."""
command = "killall xtightvncviewer" command = "killall xtightvncviewer"