MC_BBS/lua/serial.lua

84 lines
1.5 KiB
Lua
Raw Permalink Normal View History

-- High level abstraction for our serial connection
net = require("internet")
handle = 0
STOP = false
-- io = require("io")
buffer = ""
function cleanup()
end
function serial_nextline()
buffer = ""
while buffer == "" do
buffer = handle:read("*l")
end
return buffer
end
function modem_connect()
handle = net.open("192.168.1.10", 8889)
if handle == nil then
return false
end
return true
end
function modem_initialize()
if handle == nil then
print("Modem connect fail!")
return false
end
handle:flush()
print("Initializing modem...\n")
print("[SERVER]ATZ...")
handle:write("ATZ\r") --Disable echo
modemin = ""
while modemin ~= "OK" do
modemin = serial_nextline()
io.stdout:write("[MODEM]")
print(modemin)
end
handle:setTimeout(math.huge)
print("\nModem Ready!\nIdle for ring...")
while modemin ~= "RING" do
modemin = serial_nextline()
print("[MODEM]" .. modemin)
end
print("Answering...\n[SERVER]ATA")
handle:write("ATA\r")
while string.find(modemin, "CONNECT") == nil do
modemin = serial_nextline()
print("[MODEM]" .. modemin)
end
print("CONNECTED!")
handle:flush()
io.stdout:flush()
-- we're connected! Say hi :)
handle:write("MCBBS0.1a\r\n")
return true
end
function read_thread()
while STOP == false do
input = serial_nextline()
print("[REMOTE]" .. input)
end
end