Mise à jour de 'src/decoderPropre.py'

master
Eloan ANDRÉ 2 years ago
parent 3ec1106010
commit 317427ef0e

@ -14,32 +14,30 @@ def decode(pkt):
if "ModbusADU" in pkt:
global miniL
modpkt = pkt["ModbusADU"]
typeCall = ""
type_call = ""
if "Multiple" in modpkt.payload.name:
typeCall += "m"
type_call += "m"
else:
typeCall += "s"
type_call += "s"
if "Coil" in modpkt.payload.name:
typeCall += "C"
type_call += "C"
else:
typeCall += "R"
miniL[0] = typeCall
type_call += "R"
miniL[0] = type_call
if "Read" in modpkt.payload.name:
typeCall += "r"
type_call += "r"
if "Response" in modpkt.payload.name:
byteCount = modpkt.payload.getfieldval("byteCount")
byte_count = modpkt.payload.getfieldval("byteCount")
status = []
if "C" in typeCall:
if "C" in type_call:
Value = modpkt.payload.getfieldval("coilStatus")
for j in range(byteCount):
bi=str(bin(Value[j]))
bi=bi[2:]
bi=bi.rjust(8,'0')[::-1]
status.extend(k for k in [*bi])
for j in range(byte_count):
val=str(bin(Value[j]))[2:].rjust(8,'0')[::-1]
status.extend(k for k in [*val])
else:
status = modpkt.payload.getfieldval("registerVal")
for j in range(len(status)):
@ -47,21 +45,21 @@ def decode(pkt):
triPacket([miniL[0][1],miniL[2]+j,status[j]],connec)
miniL = [0,0,0]
else:
startAddr = modpkt.payload.getfieldval("startAddr")
miniL[2] = startAddr
addr = modpkt.payload.getfieldval("startAddr")
miniL[2] = addr
else:
typeCall += "w"
type_call += "w"
if "Response" in modpkt.payload.name:
pass
else:
if "m" in typeCall:
if "m" in type_call:
addr = modpkt.payload.getfieldval("startAddr")
#byteCount = modpkt.payload.getfieldval("quantityOutput")
outputValue = modpkt.payload.getfieldval("outputsValue")
#byte_count = modpkt.payload.getfieldval("quantityOutput")
output_value = modpkt.payload.getfieldval("outputsValue")
status = []
if "C" in typeCall:
for j in range(len(outputValue)):
val=str(bin(outputValue[j]))[2:].rjust(8,'0')[::-1]
if "C" in type_call:
for j in range(len(output_value)):
val=str(bin(output_value[j]))[2:].rjust(8,'0')[::-1]
status.extend(k for k in [*val])
for j in range(len(status)):
@ -69,14 +67,14 @@ def decode(pkt):
triPacket([miniL[0][1],addr+j,status[j]],connec)
#print(bigL)
else:
if "C" in typeCall:
if "C" in type_call:
addr = modpkt.payload.getfieldval("outputAddr")
outputValue = modpkt.payload.getfieldval("outputValue")
output_value = modpkt.payload.getfieldval("outputValue")
else:
addr = modpkt.payload.getfieldval("registerAddr")
outputValue = modpkt.payload.getfieldval("registerValue")
triPacket([miniL[0][1],addr,outputValue],connec)
#bigL.append([miniL[0],outputValue,addr])
output_value = modpkt.payload.getfieldval("registerValue")
triPacket([miniL[0][1],addr,output_value],connec)
#bigL.append([miniL[0],output_value,addr])
#print(bigL)
bigL = []

Loading…
Cancel
Save