diff --git a/tests/pynamics-logger.py b/tests/pynamics-logger.py new file mode 100644 index 0000000..375ad2c --- /dev/null +++ b/tests/pynamics-logger.py @@ -0,0 +1,64 @@ +# 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 +#8: breakpoint +lvldict = { + 0: "FATAL", + 1: "ALERT", + 2: "CRIT", + 3: "ERR", + 4: "WARNING", + 5: "NOTICE", + 6: "INFO", + 7: "DEBUG" +} +stpwtchtime = StopWatch() +stpwtchtime.pause() + +def start(): + self.time.reset() + self.time.resume() + +def log(self, message, level, origin): + if level <= self.verboseness: + ms = self.time.time() + timestamp = "{:02d}:{:02d}.{:03d}".format( + (ms // 60000) % 60, + (ms // 1000) % 60, + ms % 1000 + ) + label = self.lvldict.get(level, "UNKNOWN") + 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): + sendCommand(3, 0, "program kinda crashed bc you suck at coding", origin) + raise FatalLoggerError("[FATAL] [{}] {}".format(origin, message)) +sendCommand(0, 0, "hey you should probably know that your RAM is corrupted and you cant buy more because of the shortage. byeeeee", "test prgm") +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") +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 \ No newline at end of file