A working Python example:
import serial
import time
serial_port = 'COM24'
baud_rate = 115200
try:
ser = serial.Serial(serial_port, baud_rate, timeout=1)
print(f"Connected to {serial_port} at {baud_rate} baud.")
time.sleep(2)
command = "help()\r\n"
ser.write(command.encode('ascii'))
print(f"Sent: {command.strip()}")
while True:
#response = ser.read_until('>>>').decode('ascii')
response = ser.readline().decode('ascii')
print(f'{response}', end='')
if not response: break
ser.close()
print("\nSerial port closed")
except serial.SerialException as e:
print(f"Error: {e}")
Same example in LuaRT not working:
local serial = require 'serial'
local port_name = 'COM24'
local baudrate = 115200
local cmd, num, buf
local COM_PORT = serial.Port('\\\\.\\'..port_name)
if not COM_PORT then
print('serial port '..port_name..' not found')
sys.exit(1)
end
print('serial port '..port_name..' found')
if not COM_PORT:open({ baudrate=baudrate, bytesize=8 }) then
print('serial port '..port_name..' not opened')
sys.exit(1)
end
print('serial port '..port_name..' opened')
sleep(2000)
cmd = sys.Buffer('help()\r\n')
num = COM_PORT:write(cmd):wait()
print('write, written:', num)
repeat
t = COM_PORT:readline('\r\n')
print(i, 't:', t, t.status)
buf = t:wait() --> WAIT FOREVER
print(buf)
until not buf
COM_PORT:close()
print('serial port '..port_name..' closed')