334 lines
9.7 KiB
Lua
334 lines
9.7 KiB
Lua
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
|
|
|
|
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="btnup",
|
|
label="^",
|
|
Y=1.6, X=0, H=0.8, W=0.6,
|
|
},{
|
|
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="btnpark",
|
|
label="Park",
|
|
Y=6.4, H=0.8, W=1.6, X=2.4,
|
|
},{
|
|
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,
|
|
},{
|
|
command="addbutton",
|
|
name="btnQOn",
|
|
label="Quarry On",
|
|
X=4.0, Y=5.2, H=0.8, W=3,
|
|
},{
|
|
command="addbutton",
|
|
name="btnQOff",
|
|
label="Quarry Off",
|
|
X=4.0, Y=6.2, H=0.8, W=3,
|
|
},{
|
|
command="addbutton",
|
|
name="btnQRestart",
|
|
label="Quarry Restart",
|
|
X=4.0, Y=7.2, H=0.8, W=3,
|
|
}
|
|
})
|
|
|
|
updatepositionui()
|
|
end
|
|
|
|
local function sendmessage(msg)
|
|
digiline_send("q1", msg)
|
|
digiline_send("q2", msg)
|
|
digiline_send("q3", msg)
|
|
digiline_send("q4", msg)
|
|
digiline_send("q5", msg)
|
|
digiline_send("q6", msg)
|
|
digiline_send("q7", msg)
|
|
digiline_send("q8", msg)
|
|
digiline_send("q9", msg)
|
|
end
|
|
|
|
local function displayQuarryStatus(mon, msg, name)
|
|
local str = ""
|
|
if msg.enabled == 1 then
|
|
str = "-----"..name.."-----"
|
|
else
|
|
str = "#####"..name.."#####"
|
|
end
|
|
str = str .. "Dgging..." .. msg.max_depth .. "\n"
|
|
str = str .. "Radius:"..msg.radius .. "\n"
|
|
str = str .. "Level:" .. msg.dig_level .. "\n"
|
|
str = str .. "Dug:" .. msg.dug_nodes .. "\n"
|
|
local finished = "No"
|
|
if msg.finished then
|
|
finished = "Yes"
|
|
end
|
|
str = str .. "Finished:" .. finished .. "\n"
|
|
digiline_send(mon, str)
|
|
end
|
|
|
|
if event.type == "program" then
|
|
mem.position = {x = 0, y = 0, z=0}
|
|
mem.target = {x = 0, y = 0, z=0}
|
|
mem.radius = 8
|
|
mem.step = 17
|
|
mem.sim = false
|
|
mem.msg = ""
|
|
mem.powerstorage = 0
|
|
mem.distance = 0
|
|
mem.power_req = 0
|
|
mem.orderId = 1
|
|
drawui()
|
|
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()
|
|
interrupt(5)
|
|
elseif event.type == "interrupt" then
|
|
digiline_send("pmhv", "get")
|
|
digiline_send("nuclear", "get")
|
|
local str = "q" .. tostring(mem.orderId)
|
|
digiline_send(str, "get")
|
|
mem.orderId = mem.orderId + 1
|
|
if mem.orderId > 9 then mem.orderId = 1 end
|
|
interrupt(5)
|
|
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.btnup then
|
|
local y = mem.target.y + mem.radius
|
|
digiline_send("jumpdrive", { command = "set", key = "y", value = y })
|
|
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 })
|
|
elseif event.msg.btnfired then
|
|
digiline_send("cannond", { command="fire", verbose=false })
|
|
elseif event.msg.btnpark then
|
|
local x = mem.target.x - 5
|
|
local y = mem.target.y - 2
|
|
local z = mem.target.z + 4
|
|
digiline_send("jumpdrive", { command = "set", key = "x", value = x })
|
|
digiline_send("jumpdrive", { command = "set", key = "y", value = y })
|
|
digiline_send("jumpdrive", { command = "set", key = "z", value = z })
|
|
elseif event.msg.btnQOn then
|
|
sendmessage("On")
|
|
elseif event.msg.btnQOff then
|
|
sendmessage("Off")
|
|
elseif event.msg.btnQRestart then
|
|
sendmessage("restart")
|
|
end
|
|
|
|
digiline_send("jumpdrive", { command = "get" })
|
|
elseif event.type == "digiline" and event.channel == "q1" then
|
|
displayQuarryStatus("monq1", event.msg, "q1")
|
|
elseif event.type == "digiline" and event.channel == "q2" then
|
|
displayQuarryStatus("monq2", event.msg, "q2")
|
|
elseif event.type == "digiline" and event.channel == "q3" then
|
|
displayQuarryStatus("monq3", event.msg, "q3")
|
|
elseif event.type == "digiline" and event.channel == "q4" then
|
|
displayQuarryStatus("monq4", event.msg, "q4")
|
|
elseif event.type == "digiline" and event.channel == "q5" then
|
|
displayQuarryStatus("monq5", event.msg, "q5")
|
|
elseif event.type == "digiline" and event.channel == "q6" then
|
|
displayQuarryStatus("monq6", event.msg, "q6")
|
|
elseif event.type == "digiline" and event.channel == "q7" then
|
|
displayQuarryStatus("monq7", event.msg, "q7")
|
|
elseif event.type == "digiline" and event.channel == "q8" then
|
|
displayQuarryStatus("monq8", event.msg, "q8")
|
|
elseif event.type == "digiline" and event.channel == "q9" then
|
|
displayQuarryStatus("monq9", event.msg, "q9")
|
|
elseif event.type == "digiline" and event.channel == "pmhv" and event.msg ~= "get" then
|
|
str = "Powev HV\n" ..
|
|
"S:" .. tostring(event.msg.supply) .. "\n" ..
|
|
"D:" .. tostring(event.msg.demand) .. "\n" ..
|
|
"Battery:" .. tostring(event.msg.battery_count) .. "\n" ..
|
|
"BC:" .. tostring(event.msg.battery_charge) .. "\n" ..
|
|
"BCM:" .. tostring(event.msg.battery_charge_max)
|
|
digiline_send("monpowhv", str)
|
|
return
|
|
elseif event.type == "digiline" and event.channel == "nuclear" and event.msg ~= "get" then
|
|
str = "Nuclear\n" ..
|
|
"Siren:" .. tostring(event.msg.siren) .. "\n" ..
|
|
"Burn:" .. tostring(event.msg.burn_time) .. "\n" ..
|
|
"Rods:\n"
|
|
if type(event.msg.rods) == "table" then
|
|
str = str .. tostring(event.msg.rods[1] or 0) .. " " ..
|
|
tostring(event.msg.rods[2] or 0) .. " " ..
|
|
tostring(event.msg.rods[3] or 0) .. "\n" ..
|
|
tostring(event.msg.rods[4] or 0) .. " " ..
|
|
tostring(event.msg.rods[5] or 0) .. " " ..
|
|
tostring(event.msg.rods[6] or 0)
|
|
end
|
|
digiline_send("monnuclear", str )
|
|
end
|
|
|