Bonjour à tous,
Je suis novice en python, j'ai déjà un programme qui fonctionne mais dont je ne suis pas satisfait.
Mon programme me sert à lire un fichier sur mon pc et à envoyer ligne après ligne ce qu'il contient vers mon port serial.
Mon programme:
Ce programme marche bien mais je dois connaitre tous ce qui peut être reçu sinon je ne peux envoyer la valeur sur mon port serial.
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
37
38
39
40
41
42
43
44
45 import serial import time import os monfichier = open('data.txt', 'r') time.sleep(1) contenu = monfichier.readlines() n = 0 ser = serial.Serial('COM5', 9600, timeout=1) time.sleep(2) for line in contenu: if contenu[n]=="$D8000\n": ser.write(b'$D8000\n') time.sleep(0.5) lu = ser.readline() lu=str(lu) print("$D8000") print(lu) if contenu[n]=="$D8100\n": ser.write(b'$D8100\n') time.sleep(0.5) lu = ser.readline() print("$D8100") print(lu) if contenu[n]=="$D8180\n": ser.write(b'$D8180\n') time.sleep(0.5) lu = ser.readline() print("$D8180") print(lu) n += 1 print (n) monfichier.close() ser.close()
Je voudrais pouvoir faire :
et n'avoir qu'un seul if pour savoir si la ligne n'est pas vide et ensuite envoyer la valeur. Le port serial ne réagi que si les valeurs sont valides.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ser.write(b'+contenu[n]+\n')
J'ai retourné le write dans tout les sens, je suis à court d'arguments.
Si quelqu'un à des idées.
Merci d'avance.
Stéphane
Partager