os.unloadAPI("sensors");
os.unloadAPI("sensorsUI");
os.loadAPI("/rom/apis/sensors");
os.loadAPI("/rom/apis/sensorsUI");
tArgs={...};
--writeAt=sensorsUI.writeAt
sizeX, sizeY = term.getSize()
side = sensors.getController()
monside,mon =sensorsUI.getMonitor()
data = sensors.getSensors(side)
mainSensor = data[1]
probes = sensors.getProbes(side,mainSensor)
nukeProbe = probes[2]
storageProbe = probes[3]
targets = sensors.getAvailableTargetsforProbe(side,mainSensor,nukeProbe);
nukeTarget = targets[1]
local lastHeat = 0
local lastEnergy = 0
local tickRate = 5
function readData(side,sSensor,sProbe,sTarget)
readings = sensors.getSensorReadingAsDict(side,sSensor,sTarget,sProbe);
return readings;
end
function printData(mon, data)
mon.clear()
mon.setTextScale(2)
--line = 1
--for i,v in pairs(data) do
-- mon.setCursorPos(1,line)
-- --print(i .. ": " .. tostring(v))
-- mon.write(i .. ": " .. tostring(v))
-- line = line + 1
--end
heat = data["heat"]
energy = data["currentEnergy"]
deltaHeat = (lastHeat - heat) / tickRate
deltaEnergy = (lastEnergy - energy) / tickRate
lastHeat = heat
lastEnergy = energy
mon.setCursorPos(1,1)
mon.write("********* Reactor **********")
mon.setCursorPos(1,2)
mon.write("Heat: " .. heat .. " @ " .. deltaHeat )
mon.setCursorPos(1,3)
mon.write("Output: " .. data["output"])
mon.setCursorPos(1,4)
mon.write("----------------------------")
mon.setCursorPos(1,6)
mon.write("********* Storage **********")
mon.setCursorPos(1,7)
mon.write("Current: " .. energy .. " @ " .. deltaEnergy)
mon.setCursorPos(1,8)
mon.write("Max: " .. data["maxEnergy"])
mon.setCursorPos(1,9)
mon.write("----------------------------")
end
function getMFSUReadings(side, sSensor, sProbe)
storageReadings = sensors.getAvailableTargetsforProbe(side,sSensor,sProbe);
max = 0
energy = 0
for key,val in pairs(storageReadings) do
--print(key..": "..val)
if string.match(val,"MFSU") then
readings = sensors.getSensorReadingAsDict(side,sSensor,val,sProbe);
max = max + readings["maxStorage"]
energy = energy + readings["energy"]
if readings["addedToEnergyNet"] ~= true then
print("Warning! MFSU Offline!")
end
end
end
ret = { maxEnergy=max, currentEnergy=energy };
return ret;
end
while true do
nukeReadings = readData(side,mainSensor,nukeProbe,nukeTarget)
storageReadings = getMFSUReadings(side,mainSensor,storageProbe)
allReadings = {}
for k,v in pairs(nukeReadings) do allReadings[k] = v end
for k,v in pairs(storageReadings) do allReadings[k] = v end
printData(mon, allReadings)
sleep(tickRate)
end