Je suis novice en python. Je fais ce bout de code pour calculer le nombre de registre des fonction Modbus Pour cela j'ai besoin de faire une vérification qui est la suivant:
Si funcCode est différent de 5 et 6 faire ceci: r.append (p ['ModbusADURequest'] [1] .startAddr) sinon faire r.append (p ['ModbusADURequest'] [1]. RegisterAddr ) mais j'ai une erreur:ça doit être une erreur d'indentation ou autre mais je vois pas où.File" parserz.py ", ligne 868 else: ^ SyntaxError: syntaxe invalide
Une idée s'il vous plait ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
29
30
31
32
33
34
35
36 def reg_no_list(s): r = [] for p in s: if (p['ModbusADUResponse'][1].funcCode != int("0x06", 16)) and (p['ModbusADUResponse'][1].funcCode != int("0x05", 16)): if p.haslayer('ModbusADURequest'): try: r.append(p['ModbusADURequest'][1].startAddr) except AttributeError: pass return r else: r.append(p['ModbusADURequest'][1]. registerAddr) except AttributeError: pass return r def reg_val_list(s): v = [] for p in s: if (p['ModbusADUResponse'][1].funcCode != int("0x06", 16)) and (p['ModbusADUResponse'][1].funcCode != int("0x05", 16)): if p.haslayer('ModbusADUResponse'): try: v += p['ModbusADUResponse'][1].registerVal except AttributeError: pass return v else: v += p['ModbusADUResponse'][1]. registerValue except AttributeError: pass return v
Partager