From d72aae4e7f665f9a95d2da87e6ec0fad90911a47 Mon Sep 17 00:00:00 2001 From: "Eloan.Andre" Date: Mon, 6 Mar 2023 16:30:27 +0000 Subject: [PATCH] update decoder3 ~fonctionne --- Pymodbus/decoder3.py | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/Pymodbus/decoder3.py b/Pymodbus/decoder3.py index a3ebfca..48aa0bf 100644 --- a/Pymodbus/decoder3.py +++ b/Pymodbus/decoder3.py @@ -8,6 +8,7 @@ def decode(pkt): prt=0 addr,value = "","" bigL = [ ] + global miniL f=open("truc.txt","w") if "ModbusADU" in pkt: grPkt=pkt["ModbusADU"].show(dump=True) @@ -20,25 +21,23 @@ def decode(pkt): typResp="" if "Coil" in i: prt=1 - typResp="c" - if len(miniL)==0: - miniL.append(typResp) + miniL[0] = "c" + elif "Register" in i: + prt=2 + miniL[0] = "r" #if prt==1: #print(i) - elif "startAddr" in i or "outputAddr" in i: - addr = i[i.find("=")+2:] - miniL.append(addr) + elif "startAddr" in i or "outputAddr" in i or "registerAddr" in i: + miniL[1] = i[i.find("=")+2:] #print(addr) - elif "coilStatus" in i: - value = i[i.find("[")+1:i.rfind("]")] - miniL.append(value) + elif "coilStatus" in i or "registerVal=" in i or "outputsValue" in i: + miniL[2] = i[i.find("[")+1:i.rfind("]")] #print("value= ",value," addr= ",addr) - elif "outputValue" in i: - value = i[i.find("=")+2:] - miniL.append(value) - if len(miniL)>=3: - print(miniL) - miniL.clear() -miniL=[] + elif "outputValue" in i or "quantityOutput" in i or "registerValue" in i: + miniL[2] = i[i.find("=")+2:] + if miniL.count(0)==0: + print(miniL) + miniL = [0,0,0] +miniL = [0,0,0] scapy.sniff(iface="lo", prn=decode)