Lua serial port library
Serial port communication functions for Lua. For timing functions requires function os.delay_us(us) (in ul_time module).
- Include library:
require("ul_serial")
- Get list of available ports:
ports = io.Serial:getPorts()
- After calling getPorts() list of system ports stored to io.Serial.ports variable:
ports = io.Serial.ports
- Open port and set parameters. Port can be port's name or number (starting at 1):
p = io.Serial{port='/dev/ttyUSB0', baud=9600,bits=8,stops=0,parity='n'}
- or
p = io.Serial:open{5}:baud(1200):bits(8):stops(2):parity('e'):DTR(0):RTS(1)
- Set parameters:
p:config{baud=1200,bits=8,stops=2,parity='e',DTR=0,RTS=1}
- or using method chaining:
p:baud(1200):bits(8):stops(2):parity('e'):DTR(0):RTS(1)
- Get number of bytes waiting in receive buffer:
n = p:available()
- Read all received data (as string):
p:read()
- Wait for reception of at least 64 bytes, with 100ms timeout, receive data on success:
to = p:waitRX(64, 100)
if to == 0 then
print('Timeout occured...')
else
data = p:read()
end
- Transmit string of bytes:
p:write(string)
- Wait all data to send:
p:drainTX()
orp:waitTX()
- Close port:
p:close()