Files
pynamics/diagnostics/hub_diagnostics.py

41 lines
1.8 KiB
Python
Raw Normal View History

2025-12-19 22:41:25 +00:00
from pybricks.tools import wait, StopWatch
from pybricks import version
2026-02-13 13:21:49 +00:00
import other_functions as debug
from micropython_diagnostics import MicroPythonDiagnostics
from pybricks.parameters import Port
2025-12-19 22:41:25 +00:00
class HubDiagnostics:
def __init__(self, hub):
self.hub = hub
2025-12-19 22:41:25 +00:00
self.port_map = {
"A": Port.A,
"B": Port.B,
"C": Port.C,
"D": Port.D,
"E": Port.E,
"F": Port.F,
}
def testLightSources(self, verbose):
v = verbose
self.hub.display.off()
for x in range(5):
for y in range(5):
debug.log(f"[Hub Diagnostics - Light Sources] Turning on pixel at position {x}, {y}...", v)
self.hub.display.pixel(x, y, brightness=100)
2025-12-19 22:41:25 +00:00
wait(100)
debug.log(f"[Hub Diagnostics - Light Sources] Turning off pixel at position {x}, {y}...", v)
self.hub.display.pixel(x, y, brightness=0)
def printAll(self, verbose=True):
v = verbose
debug.log("[Hub Diagnostics] Starting hub diagnostics...", v)
while True:
choice = input("[Hub Diagnostics] Which hub diagnostic would you like to run?\n[Hub Diagnostics] Enter 'l' for light source test\n[Hub Diagnostics] Enter 'm' for MicroPython diagnostics\n[Hub Diagnostics] Enter 'q' to quit\n[Hub Diagnostics] Your choice: ").strip().lower()
if choice == "l":
debug.log("[Hub Diagnostics] Running light source test...", v)
self.testLightSources(v)
if choice == "m":
debug.log("[Hub Diagnostics] Running MicroPython diagnostics...", v)
MicroPythonDiagnostics.printAll()
if choice == "q":
print("[Hub Diagnostics] Hub diagnostics completed.")
return