diff --git a/debug.lua b/debug.lua index a4628a1..865d23d 100644 --- a/debug.lua +++ b/debug.lua @@ -3,6 +3,8 @@ mem.events = {} end if event.type == "digiline" then + table.insert(mem.events, event) + end \ No newline at end of file diff --git a/moon_digger_ship_jumpdrive_control.lua b/moon_digger_ship_jumpdrive_control.lua new file mode 100644 index 0000000..2563ec9 --- /dev/null +++ b/moon_digger_ship_jumpdrive_control.lua @@ -0,0 +1,222 @@ +local function drawui() + digiline_send("touch",{ + { + command="clear", + },{ + command="addbutton", + name="btnxinc", + label="x+", + Y=0.8, X=0.8, H=0.8, W=1.2, + },{ + command="addbutton", + name="btnxdec", + label="x-", + Y=0.8, X=2, H=0.8, W=1.2, + },{ + command="addbutton", + name="btnydec", + label="y-", + Y=1.6, H=0.8, W=1.2, X=2, + },{ + command="addbutton", + name="btnyinc", + label="y+", + Y=1.6, X=0.8, H=0.8, W=1.2, + },{ + command="addbutton", + name="btnzinc", + label="z+", + Y=2.4, X=0.8, H=0.8, W=1.2, + },{ + command="addbutton", + name="btnzdec", + label="z-", + Y=2.4, X=2, H=0.8, W=1.2, + },{ + command="addbutton", + name="btnstepinc", + label="step+", + Y=3.2, H=0.8, W=1.2, X=0.8, + },{ + command="addbutton", + name="btnstepdec", + label="step-", + Y=3.2, H=0.8, W=1.2, X=2, + },{ + command="addbutton", + name="btnsim", + label="Simulate", + Y=4.4, X=0.8, H=0.8, W=1.6, + },{ + command="addbutton", + name="btnjump", + label="Jump", + Y=5.2, H=0.8, W=1.6, X=0.8, + },{ + command="addbutton", + name="btnreset", + label="Reset", + Y=6.4, H=0.8, W=1.6, X=0.8, + },{ + command="addbutton", + name="btnfire", + label="Fire", + Y=5.2, X=2.4, H=0.8, W=1.6, + },{ + command="addlabel", + label="Position", + Y=0.3, X=3.5, H=0.8, W=1.2, + },{ + command="addlabel", + label="Destination", + Y=0.3, X=5.9, H=0.8, W=1.2, + },{ + command="addlabel", + label="Step: "..mem.step or 1, + Y=3.3, X=3.5, H=0.8, W=1.2, + } +}) + +end + +local function updatepositionui() + digiline_send("touch",{ + { + command="addlabel", + label="X: "..mem.position.x or 0, + Y=0.7, X=3.5, H=0.8, W=1.2, + },{ + command="addlabel", + label="Y: "..mem.position.y or 0, + Y=1.5, X=3.5, H=0.8, W=1.2, + },{ + command="addlabel", + label="Z: "..mem.position.z or 0, + Y=2.3, X=3.5, H=0.8, W=1.2, + },{ + command="addlabel", + label="X: "..mem.target.x or 0, + Y=0.7, X=6, H=0.8, W=1.2, + },{ + command="addlabel", + label="Y: "..mem.target.y or 0, + Y=1.5, X=6, H=0.8, W=1.2, + },{ + command="addlabel", + label="Z: "..mem.target.z or 0, + Y=2.3, X=6, H=0.8, W=1.2, + },{ + command="addlabel", + label="Power: "..mem.powerstorage or 0, + Y=0.1, X=0.1, H=0.8, W=1.2, + },{ + command="addlabel", + label="Distance: "..mem.distance or 0, + Y=2.9, X=3.5, H=0.8, W=1.2, + },{ + command="addlabel", + label="Power req: "..mem.power_req or 0, + Y=2.9, X=6, H=0.8, W=1.2, + },{ + command="addlabel", + label="Simulate: "..tostring(mem.sim), + Y=3.3, X=6, H=0.8, W=1.2, + },{ + command="addlabel", + label="Sim: "..mem.msg, + Y=4.3, X=3.5, H=0.8, W=1.2, + } + }) +end + + +if event.type == "program" then + mem.position = {x = 0, y = 0, z=0} + mem.target = {x = 0, y = 0, z=0} + mem.step = 1 + mem.sim = false + mem.msg = "" + mem.powerstorage = 0 + mem.distance = 0 + mem.power_req = 0 + drawui() + updatepositionui() + digiline_send("jumpdrive", { + command = "get" + }) +--interrupt(2) +--elseif event.type == "interrupt" then +--- digiline_send("jumpdrive", { +--- command = "get" +--- }) +elseif event.type == "digiline" and event.channel == "jumpdrive" then + if event.msg.position ~= nil then + mem.position = event.msg.position + end + if event.msg.target ~= nil then + mem.target = event.msg.target + end + if event.msg.powerstorage ~= nil then + mem.powerstorage = event.msg.powerstorage + end + if event.msg.distance ~= nil then + mem.distance = event.msg.distance + end + if event.msg.power_req ~= nil then + mem.power_req = event.msg.power_req + end + if event.msg.success ~= nill then + mem.sim = event.msg.success + end + if event.msg.msg ~= nill then + mem.msg = event.msg.msg + end + + drawui() + updatepositionui() +elseif event.type == "digiline" and event.channel == "touch" then + if event.msg.btnreset then + digiline_send("jumpdrive", { + command = "reset" + }) + elseif event.msg.btnstepinc then + mem.step = mem.step+1 + elseif event.msg.btnstepdec then + mem.step = mem.step-1 + if mem.step < 1 then + mem.step = 1 + end + elseif event.msg.btnxinc then + local x = mem.target.x + mem.step + digiline_send("jumpdrive", { command = "set", key = "x", value = x }) + elseif event.msg.btnxdec then + local x = mem.target.x - mem.step + digiline_send("jumpdrive", { command = "set", key = "x", value = x }) + elseif event.msg.btnyinc then + local y = mem.target.y + mem.step + digiline_send("jumpdrive", { command = "set", key = "y", value = y }) + elseif event.msg.btnydec then + local y = mem.target.y - mem.step + digiline_send("jumpdrive", { command = "set", key = "y", value = y }) + elseif event.msg.btnzinc then + local z = mem.target.z + mem.step + digiline_send("jumpdrive", { command = "set", key = "z", value = z }) + elseif event.msg.btnzdec then + local z = mem.target.z - mem.step + digiline_send("jumpdrive", { command = "set", key = "z", value = z }) + elseif event.msg.btnsim then + digiline_send("jumpdrive", { + command = "simulate" + }) + elseif event.msg.btnjump then + digiline_send("jumpdrive", { + command = "jump" + }) + elseif event.msg.btnfire then + digiline_send("cannon", { command="fire", verbose=false }) + end + + digiline_send("jumpdrive", { + command = "get" + }) +end \ No newline at end of file diff --git a/moon_digger_ship_monitors.lua b/moon_digger_ship_monitors.lua new file mode 100644 index 0000000..3bad872 --- /dev/null +++ b/moon_digger_ship_monitors.lua @@ -0,0 +1,142 @@ +local interval = 30 +local function showquarystatus(mon, msg, name) + if msg.enabled == 1 then + digiline_send(mon, "-----"..name.."-----") + else + digiline_send(mon, "#####"..name.."#####") + end + digiline_send(mon, "Dgging..."..msg.max_depth) + digiline_send(mon, "Radius:"..msg.radius) + digiline_send(mon, "Level:" .. msg.dig_level) + digiline_send(mon, "Dug:" .. msg.dug_nodes) + local finished = "No" + if msg.finished == true then + finished = "Yes" + end + digiline_send(mon, "Finished:" .. finished) + end +local function sendmessage(msg) + digiline_send("q1", msg) + digiline_send("q2", msg) + digiline_send("q3", msg) + digiline_send("q4", msg) +end + +local function setuptouchscreen() + digiline_send("touchscreen", { + command = "set", + locked = true, + no_prepend = false, + real_coordinates = false, + fixed_size = false, + width = 10, + height = 8, + focus = "Tacit", + }) + + digiline_send("touchscreen", + { + { + command="clear", + }, + { label="Turn all on", + command="addbutton", + name="btnTurnAllOn", + H=0.8, W=1.6, X=0.8, Y=0.8, + }, + { label="Turn all off", + command="addbutton", + name="btnTurnAllOff", + X=0.8, H=0.8, W=1.6, Y=2, + }, + { + label="Quaries", + listelements={ "1", "2", "3", "4", }, + selected_id=mem.selectedq or 0, + transparent=false, + command="addtextlist", + name="qlist", + W=2.6, Y=0.8, H=1.8, X=5.6, + }, + { + label="Turn on", + command="addbutton", + name="btnTurnOn", + H=0.8, W=1.6, X=3.2, Y=0.8, + } , + { + label="Turn off", + command="addbutton", + name="btnTurnOff", + H=0.8, W=1.6, X=3.2, Y=2, + }, + { + label="Restart all", + command="addbutton", + name="btnRestartAll", + X=0.8, H=0.8, W=1.6, Y=3.2, + }, + { + label="Restart", + command="addbutton", + name="btnRestart", + H=0.8, W=1.6, X=3.2, Y=3.2, + }, + {X=7.18,label="Created with SX Digi labs Touch Designer",Y=8.11,command="addlabel"} + }) +end + +if event.type == "program" then + setuptouchscreen() + mem.heat = heat + interrupt(interval) + end + +if event.type == "interrupt" then + digiline_send("q1", "GET") + digiline_send("q2", "GET") + digiline_send("q3", "GET") + digiline_send("q4", "GET") + digiline_send("pm", "GET") + interrupt(interval) +end +if event.type == "digiline" then + if event.channel == "touchscreen" then + if event.msg.btnTurnAllOn ~= nill then + sendmessage("on") + elseif event.msg.btnTurnAllOff ~= nil then + sendmessage("off") + elseif event.msg.btnRestartAll ~= nil then + sendmessage("restart") + elseif event.msg.btnTurnOn ~= nil then + local q = mem.selectedq or 0 + digiline_send("q"..q, "on") + elseif event.msg.btnTurnOff ~= nil then + local q = mem.selectedq or 0 + digiline_send("q"..q, "off") + elseif event.msg.btnRestart ~= nil then + local q = mem.selectedq or 0 + digiline_send("q"..q, "restart") + elseif event.msg.qlist ~= nil then + mem.selectedq = tonumber(string.sub(event.msg.qlist,5,5)) + setuptouchscreen() + end + elseif + event.channel == "pm" then + digiline_send("monpm", "Power HV") + digiline_send("monpm", "S:"..event.msg.supply) + digiline_send("monpm", "D:"..event.msg.demand) + digiline_send("monpm", "Battery:"..event.msg.battery_count) + digiline_send("monpm", "BC:"..event.msg.battery_charge) + digiline_send("monpm", "BCM:"..event.msg.battery_charge_max) + elseif event.channel == "q1" then + showquarystatus("mon", event.msg, event.channel) + elseif event.channel == "q2" then + showquarystatus("mon2", event.msg, event.channel) + elseif event.channel == "q3" then + showquarystatus("mon3", event.msg, event.channel) + elseif event.channel == "q4" then + showquarystatus("mon4", event.msg, event.channel) + else mem.event = event + end +end \ No newline at end of file