Librería Serial LM
LM serial library
require('serial')
Incluir la librería antes de llamar las funciones serial
port, err = serial.open(device, params)
Abre el puerto indicado, devuelve: puerto, o, en caso de error, nil
y un mensaje de error
Parametros:
device
Nombre del puerto Requeridoparams
Tabla de parametros, opcional, (valores por defecto en negrita):baudrate
300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400parity
«none», «even», «odd»databits
5, 6, 7, 8stopbits
1, 2duplex
«full», «half» (Nota:half
es necesario para RS-485)
res, err = port:read(bytes)
Lee el numero de bytes indicado, la ejecución se detiene hasta que la lectura finalice
Parámetros:
bytes
numero de bytes a leer
res, err = port:write(str)
Escribe el string indicado en el puerto serial.
Devuelve el numero de bytes escritos, o, en caso de error, nil
y un mensaje de error
Parametros:
string
cadena a ser escrita
res, err = port:read(bytes, timeout)
Lee hasta que ocurre un timeout o se recibe el numero especificado de bytes, lo que suceda primero.
Devuelve el dato mas el numero de bytes leídos, o en caso de error, nil
y un mensaje de error
Parámetros:
bytes
numero de bytes a leertimeout
tiempo máximo de espera para que se complete la lectura, el valor mínimo y resolución del temporizador es 0.1 segundos
port:flush()
borra cualquier byte leído o no enviado
port:drain()
Espera hasta que se haya transmitido toda la salida
port:close()
Cierra el puerto serie, no se pueden llamar otras funciones de puerto después de esta
Ejemplo (Script residente, prueba de eco RS-485):
-- abre el puerto en la primera llamada if not port then require('serial') port = serial.open('/dev/ttyS2', { baudrate = 9600, parity = 'even', duplex = 'half' }) port:flush() end -- puerto listo if port then -- leer un byte char = port:read(1, 1) -- Devolver si se lee con éxito if char then port:write(char) end end