|
|
|
@ -31,12 +31,28 @@ def decode(pkt):
|
|
|
|
|
miniL[1] = i[i.find("=")+2:]
|
|
|
|
|
#print(addr)
|
|
|
|
|
elif "coilStatus" in i or "registerVal=" in i or "outputsValue" in i:
|
|
|
|
|
miniL[2] = i[i.find("[")+1:i.rfind("]")]
|
|
|
|
|
value = i[i.find("[")+1:i.rfind("]")]
|
|
|
|
|
value = value.split(", ")
|
|
|
|
|
miniL[2] = value
|
|
|
|
|
#print("value= ",value," addr= ",addr)
|
|
|
|
|
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)
|
|
|
|
|
if(type(miniL[2])==list):
|
|
|
|
|
if miniL[0]=="r":
|
|
|
|
|
for i in range(len(miniL[2])):
|
|
|
|
|
bigL.append([miniL[0],int(miniL[1],16)+i,miniL[2][i]])
|
|
|
|
|
else:
|
|
|
|
|
for i in range(len(miniL[2])):
|
|
|
|
|
byte=8*[0]
|
|
|
|
|
convert=bin(int(miniL[2][i]))
|
|
|
|
|
for j in range(len(convert)-2):
|
|
|
|
|
byte[j]=convert[-(j+1)]
|
|
|
|
|
for j in range(8):
|
|
|
|
|
bigL.append([miniL[0],int(miniL[1],16)+i*8+j,byte[j]])
|
|
|
|
|
else:
|
|
|
|
|
bigL.append(miniL)
|
|
|
|
|
print(bigL)
|
|
|
|
|
miniL = [0,0,0]
|
|
|
|
|
miniL = [0,0,0]
|
|
|
|
|
scapy.sniff(iface="lo", prn=decode)
|
|
|
|
|