add new scripts for moon digger ship
This commit is contained in:
parent
c3d8adb520
commit
ebfc27a676
|
|
@ -3,6 +3,8 @@ mem.events = {}
|
|||
end
|
||||
|
||||
if event.type == "digiline" then
|
||||
|
||||
table.insert(mem.events, event)
|
||||
|
||||
end
|
||||
|
||||
222
moon_digger_ship_jumpdrive_control.lua
Normal file
222
moon_digger_ship_jumpdrive_control.lua
Normal file
|
|
@ -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
|
||||
142
moon_digger_ship_monitors.lua
Normal file
142
moon_digger_ship_monitors.lua
Normal file
|
|
@ -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
|
||||
Loading…
Reference in New Issue
Block a user