mirror of
https://github.com/S4mpsa/InfOS.git
synced 2025-08-04 02:16:05 -04:00
Merge pull request #5 from gordominossi/feature/multiblock-statuses
Feature/multiblock statuses
This commit is contained in:
commit
c1e47f4e61
@ -2,7 +2,7 @@
|
|||||||
parser = require("utils.parser")
|
parser = require("utils.parser")
|
||||||
inherits = require("utils.inherits")
|
inherits = require("utils.inherits")
|
||||||
SingleBlock = require("data.datasource.single-block")
|
SingleBlock = require("data.datasource.single-block")
|
||||||
local mock = require("data.mock.mock-multi-block")
|
local mock = require("data.mock.mock-miner")
|
||||||
--
|
--
|
||||||
|
|
||||||
local Miner =
|
local Miner =
|
||||||
@ -16,10 +16,10 @@ local Miner =
|
|||||||
|
|
||||||
function Miner:getName()
|
function Miner:getName()
|
||||||
local sensorInformation = self:getSensorInformation()
|
local sensorInformation = self:getSensorInformation()
|
||||||
return parser.parseProblems(sensorInformation[1])
|
return parser.parseName(sensorInformation[1])
|
||||||
end
|
end
|
||||||
|
|
||||||
function Miner:getWoarkArea()
|
function Miner:getWorkArea()
|
||||||
local sensorInformation = self:getSensorInformation()
|
local sensorInformation = self:getSensorInformation()
|
||||||
return parser.parseWorkArea(sensorInformation[2])
|
return parser.parseWorkArea(sensorInformation[2])
|
||||||
end
|
end
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
local function exec(miner)
|
||||||
|
return miner.isMachineActive() and miner.hasWork() -- TODO: differenciate cases
|
||||||
|
end
|
||||||
|
|
||||||
|
return exec
|
25
Programs/monitor-system/domain/miner/list-miners-usecase.lua
Normal file
25
Programs/monitor-system/domain/miner/list-miners-usecase.lua
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
-- Import section
|
||||||
|
event = require("event")
|
||||||
|
local minerDatasource = require("data.datasource.miner")
|
||||||
|
--
|
||||||
|
local minerList = {}
|
||||||
|
local newMiners = {}
|
||||||
|
|
||||||
|
local function addToMinerList(_, address, machine)
|
||||||
|
if minerDatasource.getName(machine.getSensorInformation()) == "Multiblock Miner" then
|
||||||
|
if minerList[address] == nil then
|
||||||
|
newMiners[address] = machine
|
||||||
|
else
|
||||||
|
newMiners[address] = nil
|
||||||
|
end
|
||||||
|
minerList[address] = machine
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
event.listen("component_added", addToMinerList)
|
||||||
|
|
||||||
|
local function exec()
|
||||||
|
return minerList, newMiners
|
||||||
|
end
|
||||||
|
|
||||||
|
return exec
|
12
Programs/monitor-system/domain/multiblock/get-multiblock-status-usecase.lua
Executable file
12
Programs/monitor-system/domain/multiblock/get-multiblock-status-usecase.lua
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
local function exec(multiblocks)
|
||||||
|
local statuses = {}
|
||||||
|
for _, multiblock in ipairs(multiblocks) do
|
||||||
|
statuses[multiblock.name] = {
|
||||||
|
problems = multiblock:getNumberOfProblems(),
|
||||||
|
efficiencyPercentage = multiblock:getEfficiencyPercentage()
|
||||||
|
}
|
||||||
|
end
|
||||||
|
return statuses
|
||||||
|
end
|
||||||
|
|
||||||
|
return exec
|
@ -15,25 +15,34 @@ local getEnergyStatus = require("domain.energy.get-energy-status-usecase")
|
|||||||
--
|
--
|
||||||
|
|
||||||
local cleanroom = MultiBlock:new(multiBlockAddresses.cleanroom)
|
local cleanroom = MultiBlock:new(multiBlockAddresses.cleanroom)
|
||||||
|
cleanroom.name = "cleanroom"
|
||||||
local cleanroomMachines = {}
|
local cleanroomMachines = {}
|
||||||
for _, address in pairs(cleanroomAddresses) do
|
for _, address in pairs(cleanroomAddresses) do
|
||||||
table.insert(cleanroomMachines, SingleBlock:new(address))
|
table.insert(cleanroomMachines, SingleBlock:new(address))
|
||||||
end
|
end
|
||||||
|
|
||||||
local EBF11 = MultiBlock:new(multiBlockAddresses.EBF11)
|
local EBF11 = MultiBlock:new(multiBlockAddresses.EBF11)
|
||||||
|
EBF11.name = "EBF11"
|
||||||
|
|
||||||
local multiblocks = {cleanroom, EBF11}
|
local multiblocks = {cleanroom, EBF11}
|
||||||
|
|
||||||
local energyBuffer = EnergyProvider:new(energyBufferAddress.batteryBuffer1)
|
local energyBuffer = EnergyProvider:new(energyBufferAddress.batteryBuffer1)
|
||||||
|
|
||||||
local energyProducers = {}
|
local energyProducers = {}
|
||||||
|
local multiblockStatuses = {}
|
||||||
|
|
||||||
for i = 0, 100 do
|
for i = 0, 100 do
|
||||||
print(i)
|
print(i)
|
||||||
protectCleanroomRecipes(cleanroom, cleanroomMachines)
|
protectCleanroomRecipes(cleanroom, cleanroomMachines)
|
||||||
-- local multiblockStatuses = getMultiblockStatuses(multiblocks)
|
multiblockStatuses = getMultiblockStatuses(multiblocks)
|
||||||
local energyStatus = getEnergyStatus(energyProducers, energyBuffer)
|
local energyStatus = getEnergyStatus(energyProducers, energyBuffer)
|
||||||
os.sleep(0)
|
os.sleep(0)
|
||||||
i = i + 1
|
i = i + 1
|
||||||
end
|
end
|
||||||
require('resources.sound.zelda-secret')()
|
|
||||||
|
for multiblock, status in pairs(multiblockStatuses) do
|
||||||
|
print(multiblock .. ": \
|
||||||
|
problems: " .. status.problems .. "\
|
||||||
|
efficiency: " .. status.efficiencyPercentage)
|
||||||
|
end
|
||||||
|
require("resources.sound.zelda-secret")()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user