From 465875b28726dca4fb79e8cb8d514822e5f45143 Mon Sep 17 00:00:00 2001 From: Mikayla Fischler Date: Tue, 20 Aug 2024 22:28:41 -0400 Subject: [PATCH] coordinator receives tank list from supervisor --- coordinator/iocontrol.lua | 87 +-------------------------------------- coordinator/startup.lua | 2 +- supervisor/facility.lua | 6 +-- 3 files changed, 5 insertions(+), 90 deletions(-) diff --git a/coordinator/iocontrol.lua b/coordinator/iocontrol.lua index e8102a4..7444ef7 100644 --- a/coordinator/iocontrol.lua +++ b/coordinator/iocontrol.lua @@ -89,6 +89,7 @@ function iocontrol.init(conf, comms, temp_scale, energy_scale) num_units = conf.num_units, tank_mode = conf.cooling.fac_tank_mode, tank_defs = conf.cooling.fac_tank_defs, + tank_list = conf.cooling.fac_tank_list, all_sys_ok = false, rtu_count = 0, @@ -143,92 +144,6 @@ function iocontrol.init(conf, comms, temp_scale, energy_scale) table.insert(io.facility.sps_ps_tbl, psil.create()) table.insert(io.facility.sps_data_tbl, {}) - -- determine tank information - if io.facility.tank_mode == 0 then - io.facility.tank_defs = {} - -- on facility tank mode 0, setup tank defs to match unit tank option - for i = 1, conf.num_units do - io.facility.tank_defs[i] = util.trinary(conf.cooling.r_cool[i].TankConnection, 1, 0) - end - - io.facility.tank_list = { table.unpack(io.facility.tank_defs) } - else - -- decode the layout of tanks from the connections definitions - local tank_mode = io.facility.tank_mode - local tank_defs = io.facility.tank_defs - local tank_list = { table.unpack(tank_defs) } - - local function calc_fdef(start_idx, end_idx) - local first = 4 - for i = start_idx, end_idx do - if io.facility.tank_defs[i] == 2 then - if i < first then first = i end - end - end - return first - end - - if tank_mode == 1 then - -- (1) 1 total facility tank (A A A A) - local first_fdef = calc_fdef(1, #tank_defs) - for i = 1, #tank_defs do - if i > first_fdef and tank_defs[i] == 2 then - tank_list[i] = 0 - end - end - elseif tank_mode == 2 then - -- (2) 2 total facility tanks (A A A B) - local first_fdef = calc_fdef(1, math.min(3, #tank_defs)) - for i = 1, #tank_defs do - if (i ~= 4) and (i > first_fdef) and (tank_defs[i] == 2) then - tank_list[i] = 0 - end - end - elseif tank_mode == 3 then - -- (3) 2 total facility tanks (A A B B) - for _, a in pairs({ 1, 3 }) do - local b = a + 1 - if (tank_defs[a] == 2) and (tank_defs[b] == 2) then - tank_list[b] = 0 - end - end - elseif tank_mode == 4 then - -- (4) 2 total facility tanks (A B B B) - local first_fdef = calc_fdef(2, #tank_defs) - for i = 1, #tank_defs do - if (i ~= 1) and (i > first_fdef) and (tank_defs[i] == 2) then - tank_list[i] = 0 - end - end - elseif tank_mode == 5 then - -- (5) 3 total facility tanks (A A B C) - local first_fdef = calc_fdef(1, math.min(2, #tank_defs)) - for i = 1, #tank_defs do - if (not (i == 3 or i == 4)) and (i > first_fdef) and (tank_defs[i] == 2) then - tank_list[i] = 0 - end - end - elseif tank_mode == 6 then - -- (6) 3 total facility tanks (A B B C) - local first_fdef = calc_fdef(2, math.min(3, #tank_defs)) - for i = 1, #tank_defs do - if (not (i == 1 or i == 4)) and (i > first_fdef) and (tank_defs[i] == 2) then - tank_list[i] = 0 - end - end - elseif tank_mode == 7 then - -- (7) 3 total facility tanks (A B C C) - local first_fdef = calc_fdef(3, #tank_defs) - for i = 1, #tank_defs do - if (not (i == 1 or i == 2)) and (i > first_fdef) and (tank_defs[i] == 2) then - tank_list[i] = 0 - end - end - end - - io.facility.tank_list = tank_list - end - -- create facility tank tables for i = 1, #io.facility.tank_list do if io.facility.tank_list[i] == 2 then diff --git a/coordinator/startup.lua b/coordinator/startup.lua index 15a9999..62d1511 100644 --- a/coordinator/startup.lua +++ b/coordinator/startup.lua @@ -19,7 +19,7 @@ local renderer = require("coordinator.renderer") local sounder = require("coordinator.sounder") local threads = require("coordinator.threads") -local COORDINATOR_VERSION = "v1.5.2" +local COORDINATOR_VERSION = "v1.5.3" local CHUNK_LOAD_DELAY_S = 30.0 diff --git a/supervisor/facility.lua b/supervisor/facility.lua index a205dfc..87d403d 100644 --- a/supervisor/facility.lua +++ b/supervisor/facility.lua @@ -151,14 +151,14 @@ function facility.new(config) -- determine tank information if cool_conf.fac_tank_mode == 0 then - cool_conf.tank_defs = {} + cool_conf.fac_tank_defs = {} -- on facility tank mode 0, setup tank defs to match unit tank option for i = 1, config.UnitCount do - cool_conf.tank_defs[i] = util.trinary(cool_conf.r_cool[i].TankConnection, 1, 0) + cool_conf.fac_tank_defs[i] = util.trinary(cool_conf.r_cool[i].TankConnection, 1, 0) end - cool_conf.tank_list = { table.unpack(cool_conf.tank_defs) } + cool_conf.fac_tank_list = { table.unpack(cool_conf.fac_tank_defs) } else -- decode the layout of tanks from the connections definitions local tank_mode = cool_conf.fac_tank_mode