Ejemplos completos de usar el paquete pySerial

¿Puede alguien mostrarme un código completo de ejemplo de python que use pyserial , tengo el paquete y me pregunto cómo enviar los comandos AT y leerlos nuevamente?

Publicación en el blog Conexiones serie RS232 en 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 
 import serial ser = serial.Serial(0) # open first serial port print ser.portstr # check which port was really used ser.write("hello") # write a string ser.close() # close port 

use https://pythonhosted.org/pyserial/ para más ejemplos

http://www.roman10.net/serial-port-communication-in-python/comment-page-1/#comment-1877

 #!/usr/bin/python import serial, time #initialization and open the port #possible timeout values: # 1. None: wait forever, block call # 2. 0: non-blocking mode, return immediately # 3. x, x is bigger than 0, float allowed, timeout block call ser = serial.Serial() #ser.port = "/dev/ttyUSB0" ser.port = "/dev/ttyUSB7" #ser.port = "/dev/ttyS2" ser.baudrate = 9600 ser.bytesize = serial.EIGHTBITS #number of bits per bytes ser.parity = serial.PARITY_NONE #set parity check: no parity ser.stopbits = serial.STOPBITS_ONE #number of stop bits #ser.timeout = None #block read ser.timeout = 1 #non-block read #ser.timeout = 2 #timeout block read ser.xonxoff = False #disable software flow control ser.rtscts = False #disable hardware (RTS/CTS) flow control ser.dsrdtr = False #disable hardware (DSR/DTR) flow control ser.writeTimeout = 2 #timeout for write try: ser.open() except Exception, e: print "error open serial port: " + str(e) exit() if ser.isOpen(): try: ser.flushInput() #flush input buffer, discarding all its contents ser.flushOutput()#flush output buffer, aborting current output #and discard all that is in buffer #write data ser.write("AT+CSQ") print("write data: AT+CSQ") time.sleep(0.5) #give the serial port sometime to receive the data numOfLines = 0 while True: response = ser.readline() print("read data: " + response) numOfLines = numOfLines + 1 if (numOfLines >= 5): break ser.close() except Exception, e1: print "error communicating...: " + str(e1) else: print "cannot open serial port " 

No he usado pyserial, pero estoy basado en la documentación de la API en https://pyserial.readthedocs.io/en/latest/shortintro.html . Parece una interfaz muy agradable. Podría valer la pena volver a verificar la especificación de los comandos AT del dispositivo / radio / lo que sea que esté tratando.

Específicamente, algunos requieren algún período de silencio antes y / o después del comando AT para que ingrese en el modo de comando. Me he encontrado con algunos que no me gustan las lecturas de la respuesta sin un poco de retraso primero.