2026-04-10 16:41:10 +00:00
|
|
|
# Event codes:
|
|
|
|
|
#0: notify
|
|
|
|
|
#1: prgm_start
|
|
|
|
|
#2: prgm_end
|
|
|
|
|
#3: prgm_crash
|
|
|
|
|
#4: snsr_data
|
|
|
|
|
#5: mtr_data
|
|
|
|
|
#6: perf_smpl
|
|
|
|
|
#7: get_time
|
2026-04-10 16:42:16 +00:00
|
|
|
#8: breakpoint
|
2026-04-10 17:25:22 +00:00
|
|
|
verboseness = 7
|
2026-04-10 16:41:10 +00:00
|
|
|
lvldict = {
|
|
|
|
|
0: "FATAL",
|
|
|
|
|
1: "ALERT",
|
|
|
|
|
2: "CRIT",
|
|
|
|
|
3: "ERR",
|
|
|
|
|
4: "WARNING",
|
|
|
|
|
5: "NOTICE",
|
|
|
|
|
6: "INFO",
|
|
|
|
|
7: "DEBUG"
|
|
|
|
|
}
|
|
|
|
|
stpwtchtime = StopWatch()
|
|
|
|
|
stpwtchtime.pause()
|
|
|
|
|
|
|
|
|
|
def start():
|
2026-04-10 17:25:22 +00:00
|
|
|
stpwtchtime.reset()
|
|
|
|
|
stpwtchtime.resume()
|
2026-04-10 16:41:10 +00:00
|
|
|
|
|
|
|
|
def log(self, message, level, origin):
|
2026-04-10 17:25:22 +00:00
|
|
|
if level <= verboseness:
|
|
|
|
|
ms = stpwtchtime.time()
|
2026-04-10 16:41:10 +00:00
|
|
|
timestamp = "{:02d}:{:02d}.{:03d}".format(
|
|
|
|
|
(ms // 60000) % 60,
|
|
|
|
|
(ms // 1000) % 60,
|
|
|
|
|
ms % 1000
|
|
|
|
|
)
|
2026-04-10 17:25:22 +00:00
|
|
|
label = lvldict.get(level, "UNKNOWN")
|
2026-04-10 16:41:10 +00:00
|
|
|
padding = " " * (7 - len(label))
|
|
|
|
|
print("[{}] {}{} [{}] {}".format(timestamp, label, padding, origin, message))
|
|
|
|
|
|
|
|
|
|
def sendCommand(eventnum, level, msg, origin):
|
|
|
|
|
print(f"\x1b[?PYN;{str(eventnum)};{lvldict[level]};{msg}~")
|
|
|
|
|
def notify(level, msg, origin):
|
|
|
|
|
print(f"\x1b[?PYN;0;{lvldict[level]};{msg}~")
|
|
|
|
|
def fatal(self, message, origin): notify(message, 0, origin)
|
|
|
|
|
def alert(self, message, origin): notify(message, 1, origin)
|
|
|
|
|
def crit(self, message, origin): notify(message, 2, origin)
|
|
|
|
|
def err(self, message, origin): notify(message, 3, origin)
|
|
|
|
|
def warning(self, message, origin): notify(message, 4, origin)
|
|
|
|
|
def notice(self, message, origin): notify(message, 5, origin)
|
|
|
|
|
def info(self, message, origin): notify(message, 6, origin)
|
|
|
|
|
def debug(self, message, origin): notify(message, 7, origin)
|
|
|
|
|
def crash(self, message, origin):
|
2026-04-10 17:25:22 +00:00
|
|
|
sendCommand(3, 0, "uhhhh so the program kinda crashed sorry", origin)
|
2026-04-10 16:41:10 +00:00
|
|
|
raise FatalLoggerError("[FATAL] [{}] {}".format(origin, message))
|
2026-04-10 17:25:22 +00:00
|
|
|
sendCommand(0, 0, "hey you should probably know that your RAM is corrupted and you cant replace it because of the shortage. byeeeee", "test prgm")
|
2026-04-10 16:41:10 +00:00
|
|
|
sendCommand(0, 1, "UNRECOVERABLE PYTHON ERROR!!!!! Exiting gracefully... JUST KIDDING WHAT DID YOU THINK IT WAS GONNA DO", "test prgm")
|
|
|
|
|
sendCommand(0, 2, "so the program is running but it just started looping on the motor frying bit of your program.", "test prgm")
|
|
|
|
|
sendCommand(0, 3, "syntax error, you failure!!!! use an error checker", "test prgm")
|
|
|
|
|
sendCommand(0, 4, "wanted to just say that your motor is kinda being slow", "test prgm")
|
|
|
|
|
sendCommand(0, 5, "so your motor is like 1% slower than it should be but really no one cares", "test prgm")
|
|
|
|
|
sendCommand(0, 6, "hey everything in the program is going well just in case nothing in your life is", "test prgm")
|
2026-04-10 16:42:16 +00:00
|
|
|
sendCommand(0, 7, "nobody cares about me but you should know that", "test prgm")
|
|
|
|
|
def breakpoint():
|
|
|
|
|
#send a command 8 and also get all important info about the code here and print
|