1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
def reg_val_list(s):
v = []
for p in s:
if p.haslayer('ModbusADUResponse'):
try:
if p['ModbusADUResponse'][1].funcCode == 6:
a = p['ModbusADUResponse'][1].registerValue
v.append(p['ModbusADUResponse'][1].registerValue)
elif p['ModbusADUResponse'][1].funcCode == 5:
v.append(p['ModbusADUResponse'][1].outputValue)
elif p['ModbusADUResponse'][1].funcCode == 1:
# for x in range(0, 8):
v += p['ModbusADUResponse'][1].coilStatus
elif p['ModbusADUResponse'][1].funcCode == 3:
v.extend(p['ModbusADUResponse'][1].registerVal)
else:
v += p['ModbusADUResponse'][1].registerVal
except AttributeError:
pass
elif p.haslayer('ModbusADURequest'):
try:
a = p['ModbusADURequest'][1]
if p['ModbusADURequest'][1].funcCode in [15, 16]:
v += p['ModbusADURequest'][1].outputsValue
except AttributeError:
pass
return v |
Partager