diff --git a/sniffer_hex.py b/sniffer_hex.py new file mode 100644 index 0000000..f5be396 --- /dev/null +++ b/sniffer_hex.py @@ -0,0 +1,54 @@ +#------------------------------------------------------------------------------- +# simulator +# 05/07/2022 +# tool script to print everything seen on a serial link as hex with a timestamp +# +# usage ex: python sniffer_hex +#------------------------------------------------------------------------------- + +import serial +import sys +import time + +ports = {"obs1": "/dev/ttyS20"} + +def main(): + + port = ports["obs1"] + speed = 9600 + + # parse argv + args = sys.argv + if len(args) == 1: + pass + elif len(args) == 2: + if args[1] in ports: + port = ports[args[1]] + else: + print("unknown port") + return 1 + elif len(args) == 3: + speed = int(args[1]) + else: + print("too many arguments") + return 1 + + # open serial and identify board + ser = serial.Serial(port, speed, timeout=0.1) + print("openned port", ser.name) + while (True): + raw_msg = ser.read(size=100) + if len(raw_msg) != 0: + print(timestamp() + raw_msg.hex()) + return 0 + +def timestamp(): + timestamp = time.strftime("[%H:%M:%S.", time.localtime()) + timestamp += str(int((time.time_ns() / 1e6) % 1000)).rjust(3, '0') + timestamp += "] " + return timestamp + + +if __name__ == "__main__": + main() +