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:
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()
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.
Je voudrais pouvoir faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 ser.write(b'+contenu[n]+\n')
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.
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