Lua Read Write Serial Port
Sep 14, 2018 - I needed to write some C code that read data from an FPGA's embedded. How easy it was to write some portable code to work with the serial port. I usually just use lua for writing interfaces to serial devices. Lua and Serial Port. I am new in Lua and I just start developing for OpenWRT in a Dragino platform. I want to develop an application that reads data from Uart and print it in a Luci based.
A Lua library for the Arduino written in C This is using the POSIX library which should work on oUNIX environments. Aayatya gharat gharoba marathi mp3 song download hd. Using this library you'll be able to send and receive data from the Arduino. See the arduinotest.lua and arduinotest.ino for an example of sending data to the arduino and then receiving the data back.
Code derived from requirements • Lua 5.1.x build tcc -shared -llua serial.c -o serial.so TO USE Require the library: local serial = require('serial') Open a connection to an arduino (port is the filedescriptor, msg is error if failed to open) port, msg = serial.open('/dev/tty.usbserial-A600agDn', 9600) if port==-1 then error('Unable to open port - error: '.msg) end Write a string (c is number of bytes written, msg is error if failed) c, msg = serial.write(port, 'hello') if c.
Rs232 = require( 'luars232 ') -- Linux -- port_name = '/dev/ttyS0' -- (Open)BSD -- port_name = '/dev/cua00' -- Windows port_name = 'COM1 ' local out = io. Stderr -- open port local e, p = rs232. Open(port_name) if e ~= rs232. RS232_ERR_NOERROR then -- handle error out: write( string.format( 'can't open serial port '%s', error: '%s' n ', port_name, rs232. Error_tostring(e))) return end -- set port settings assert(p: set_baud_rate(rs232.
RS232_BAUD_115200) == rs232. RS232_ERR_NOERROR) assert(p: set_data_bits(rs232. RS232_DATA_8) == rs232. RS232_ERR_NOERROR) assert(p: set_parity(rs232.
RS232_PARITY_NONE) == rs232. RS232_ERR_NOERROR) assert(p: set_stop_bits(rs232. RS232_STOP_1) == rs232.
RS232_ERR_NOERROR) assert(p: set_flow_control(rs232. RS232_FLOW_OFF) == rs232.
RS232_ERR_NOERROR) out: write( string.format( 'OK, port open with values '%s' n ', tostring(p))) -- read with timeout local read_len = 1 -- read one byte local timeout = 100 -- in miliseconds local err, data_read, size = p: read(read_len, timeout) assert(e == rs232. RS232_ERR_NOERROR) -- write without timeout err, len_written = p: write( 'test ') assert(e == rs232. RS232_ERR_NOERROR) -- write with timeout 100 msec err, len_written = p: write( 'test n ', timeout) assert(e == rs232. RS232_ERR_NOERROR) -- close assert(p: close() == rs232. RS232_ERR_NOERROR) • Copy lines • Copy permalink • Go.