Kann mir bitte jemand einen vollständigen Python-Beispielcode zeigen, der pyserial verwendet ? Ich habe das Paket und frage mich, wie ich die AT-Befehle senden und zurücklesen soll!
94
Blogbeitrag Serielle RS232-Verbindungen in Python
import time
import serial
# configure the serial connections (the parameters differs on the device you are connecting to)
ser = serial.Serial(
port='/dev/ttyUSB1',
baudrate=9600,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_TWO,
bytesize=serial.SEVENBITS
)
ser.isOpen()
print 'Enter your commands below.\r\nInsert "exit" to leave the application.'
input=1
while 1 :
# get keyboard input
input = raw_input(">> ")
# Python 3 users
# input = input(">> ")
if input == 'exit':
ser.close()
exit()
else:
# send the character to the device
# (note that I happend a \r\n carriage return and line feed to the characters - this is requested by my device)
ser.write(input + '\r\n')
out = ''
# let's wait one second before reading output (let's give device time to answer)
time.sleep(1)
while ser.inWaiting() > 0:
out += ser.read(1)
if out != '':
print ">>" + out
serial.serialutil.SerialException: Port is already open
beim Ausführen dieses Codes eine Fehlermeldung erhalten . Ich bin mir nicht sicher, aber ich glaube, dass die serielle Schnittstelle automatisch geöffnet wird, wenn sie explizit definiert wird, wie Sie es getan habenser
. Nach dem Auskommentieren derser.open()
Zeile hat es funktioniert.ser.open()
Verwenden Sie https://pythonhosted.org/pyserial/ für weitere Beispiele
quelle
http://web.archive.org/web/20131107050923/http://www.roman10.net/serial-port-communication-in-python/comment-page-1/
quelle
Ich habe pyserial nicht verwendet, aber basierend auf der API-Dokumentation unter https://pyserial.readthedocs.io/en/latest/shortintro.html scheint es eine sehr schöne Oberfläche zu sein. Es kann sich lohnen, die Spezifikation für AT-Befehle des Geräts / Radios / zu überprüfen, mit dem Sie es zu tun haben.
Insbesondere erfordern einige eine gewisse Ruhephase vor und / oder nach dem AT-Befehl, damit er in den Befehlsmodus wechselt. Ich bin auf einige gestoßen, die das Lesen der Antwort nicht ohne Verzögerung mögen.
quelle