From 970809f43326c277c2922aeb6781ceda614b23a0 Mon Sep 17 00:00:00 2001 From: lordtet Date: Tue, 2 Sep 2025 00:09:46 -0400 Subject: [PATCH] Added a project file for ocbuild Got connection working! Need to implement read proper. --- lua/BBS.lua | 2 -- lua/main.lua | 14 +++++++++ lua/mcbbs.proj | 2 ++ lua/serial.lua | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 99 insertions(+), 2 deletions(-) delete mode 100644 lua/BBS.lua create mode 100644 lua/main.lua create mode 100644 lua/mcbbs.proj create mode 100644 lua/serial.lua diff --git a/lua/BBS.lua b/lua/BBS.lua deleted file mode 100644 index b6e54bd..0000000 --- a/lua/BBS.lua +++ /dev/null @@ -1,2 +0,0 @@ --- Placeholder! - diff --git a/lua/main.lua b/lua/main.lua new file mode 100644 index 0000000..ce36840 --- /dev/null +++ b/lua/main.lua @@ -0,0 +1,14 @@ +-- Placeholder! + +require "serial" + +local mt = require("thread") + + +modem_connect() +modem_initialize() +read_thread() + + + +os.exit() diff --git a/lua/mcbbs.proj b/lua/mcbbs.proj new file mode 100644 index 0000000..0afbd49 --- /dev/null +++ b/lua/mcbbs.proj @@ -0,0 +1,2 @@ +serial.lua +main.lua diff --git a/lua/serial.lua b/lua/serial.lua new file mode 100644 index 0000000..4d2f2eb --- /dev/null +++ b/lua/serial.lua @@ -0,0 +1,83 @@ +-- 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