Add serial sniffer
This commit is contained in:
parent
3589295e22
commit
28cc72530f
54
sniffer_hex.py
Normal file
54
sniffer_hex.py
Normal file
@ -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()
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user