Buongiorno, J'essaie d'envoyer une chaîne simple à un port série pour commander un instrument pour les mesures de bruit.
Les cordes sont très faciles:
"M 1" = instrument sur
"M 2" = off instrument
"M 3" = commencer la mesure
"M 4" = arrêter la mesure
envoyer une chaîne à la série
J'ai trouvé ce programme:
import serial
ser = serial.Serial(0) #Seleziona la porta seriale COM4
ser.baudrate = 9600 #Imposta il baudrate a 9600bps
ser.open() #apre la porta com
ser.close()
#verifica se la porta e' aperta
if ser.isOpen():
com_num = ser.portstr
print ("Porta " + com_num + " aperta")
#invia il comando alla seriale
buffer = "M 3"
ser.write(buffer)
#Loop d'attesa caratteri
num = 0
while num == 0:
num = ser.inWaiting()
#scarica il buffer della seriale
buffer = ser.read(num)
print ("Dati ricevuti dalla seriale:")
print buffer
ser.close() #chiude la porta
else:
print ("Porta seriale gia' in uso o inesistente")
s = raw_input("digita INVIA per uscire")
LINUX
UTILISATION le programme est ok et j'ai seulement quelques problèmes avec le type de chaîne. En fait, j'ai dû insérer un retour chariot mais je ne peux pas le faire.
J'ai dit que le programme est correct parce que l'instrument passe de éteint à allumé quand j'ai fait ma première connexion, et en vidéo j'ai lu "Porta/dev/ttyS = aperta" qui signifie "ouvert". Mais cette appens pour tout type de chaîne que j'envoie. En fait c'est comme une "iniatilisation" du port, pas vraiment une communication.
Ensuite, je ne parviens pas à envoyer la chaîne de la bonne manière, peut-être pour le problème du retour chariot.
SOUS WINDOWS
Je ne peux pas ouvrir le port, j'ai une erreur de refuser l'accès au port, c'est l'erreur:
Traceback (most recent call last):
File "C:/d.py", line 9, in
ser.open() #apre la porta com
File "C:\Programmi\Python26\lib\site-packages\serial\serialwin32.py", line 53, in open raise SerialException("could not open port %s: %s" % (self.portstr, ctypes.WinError())) serial.serialutil.SerialException: could not open port COM1: [Error 5] Accesso negato.
Pouvez-vous me aider à: 1. Gérer
pour exécuter le programme sous windows
2. Gérer pour donner exactement la chaîne avec le retour de chariot ???
Merci beaucoup.
Stefano