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:
File" parserz.py ", ligne 868 else: ^ SyntaxError: syntaxe invalide
ça doit être une erreur d'indentation ou autre mais je vois pas où.

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