diff --git a/emu-probes/enetstat.py b/emu-probes/enetstat.py new file mode 100644 index 0000000..4619cf9 --- /dev/null +++ b/emu-probes/enetstat.py @@ -0,0 +1,9 @@ +import socket,sys +s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) +s.settimeout(3) +s.bind(("192.168.68.1",0)) +s.sendto(b"enetstat",("192.168.68.200",5002)) +try: + print("enetstat ->",s.recvfrom(256)[0].decode()) +except socket.timeout: + print("enetstat -> TIMEOUT (old firmware?)") diff --git a/emu-probes/probe_alive.py b/emu-probes/probe_alive.py new file mode 100644 index 0000000..1166698 --- /dev/null +++ b/emu-probes/probe_alive.py @@ -0,0 +1,22 @@ +import socket,time +s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) +s.settimeout(3) +s.bind(("192.168.68.1",0)) +def cmd(c): + s.sendto(c.encode(),("192.168.68.200",5002)) + try: + d,_=s.recvfrom(1024); print(c,"->",d.decode(errors="replace").strip()) + except socket.timeout: print(c,"-> TIMEOUT") +cmd("ping") +cmd("mode") +cmd("info") +# e:net discovery ??(?? enet ????) +import struct +f=bytearray(180); f[0:4]=b"ENet" +struct.pack_into("",len(d),"B name=",d[0x1A:0x29]) +except socket.timeout: print("enet discovery -> TIMEOUT") diff --git a/emu-probes/probe_breathe.py b/emu-probes/probe_breathe.py new file mode 100644 index 0000000..79aa1cf --- /dev/null +++ b/emu-probes/probe_breathe.py @@ -0,0 +1,49 @@ +import socket,struct,time,math,random +DUT=("192.168.68.200",31772) +HOST_IP=[192,168,68,1] +HOST_MAC=bytes.fromhex("300ed559bb36") +def env(f,ty,sub,total): + f[0:4]=b"ENet"; struct.pack_into("H",f,0x50,pid) + f[0x52]=len(pd) + f[0x53:0x53+len(pd)]=pd + s=0xCC+sum(f[0x3C:0x53+len(pd)]) + struct.pack_into(">H",f,0x53+len(pd),s&0xFFFF) + return bytes(f) + +def uid64(b): return int.from_bytes(b,"big") +v=uid64(UID) +branch_pd=(v-1).to_bytes(6,"big")+(v+1).to_bytes(6,"big") + +s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) +s.settimeout(1.5) +s.bind(("192.168.68.1",0)) + +def probe(tag,frame,n=6): + ok=0 + for i in range(n): + s.sendto(frame,DUT) + try: + d,a=s.recvfrom(2048) + rl=struct.unpack_from("