¿Redirigir la salida desde la interfaz?

¿Redirigir la salida desde la interfaz?

Estoy haciendo eco de un comando AT a una interfaz de módem ( /dev/ttyUSB3) y el comando se ejecuta correctamente.

Por ejemplo, el siguiente comando funciona y tiene un resultado de OK:

echo -e "ATZ\r" > /dev/ttyUSB3

Esto lo puedo ver al tener otro terminal con cat /dev/ttyUSB3activo.

¿Cómo puedo, en lugar de usar cat(por ejemplo, usar un comando para enviar un comando y recuperar la salida), redirigir la salida OKa una variable o archivo para poder procesar los datos devueltos por el módem?

Respuesta1

Debe utilizar el dispositivo serie de forma muy parecida a un archivo normal. La única diferencia es que necesita algunos ioctl()s para realizar la configuración de la línea de control y velocidad.

Así que no uses os.system("echo... pero f = open('/dev/ttyUSB3', 'rw')y luego f.write()y f.read().

En teoría, podría usarlo ioctl()para establecer la velocidad, etc., pero en esa etapa es simplemente más fácil usar pySerial que hacer todos los parámetros usted mismo. ser = serial.Serial(port='/dev/ttyUSB3', baudrate=9600, timeout=1, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)con ser.write()y ser.read().

Tenga en cuenta que debe usar udev para establecer un nombre único para el puerto serie, en lugar de codificar /dev/ttyUSB3. Aquí se explica cómo hacerlo por unAdaptador USB/RS-232 únicoy aquí se explica cómo hacerlo por unadaptador multipuerto USB/RS-232.

Respuesta2

read modem_output < /dev/ttyUSB3

información relacionada