This commit is contained in:
Mikayla Fischler
2022-06-04 10:49:36 -04:00
parent 3bb95eb441
commit fc7b83a18a
6 changed files with 123 additions and 2 deletions

26
rtu/dev/envd_rtu.lua Normal file
View File

@@ -0,0 +1,26 @@
local rtu = require("rtu.rtu")
local envd_rtu = {}
-- create new environment detector device
---@param envd table
function envd_rtu.new(envd)
local unit = rtu.init_unit()
-- discrete inputs --
-- none
-- coils --
-- none
-- input registers --
unit.connect_input_reg(envd.getRadiation)
unit.connect_input_reg(envd.getRadiationRaw)
-- holding registers --
-- none
return unit.interface()
end
return envd_rtu

37
rtu/dev/sna_rtu.lua Normal file
View File

@@ -0,0 +1,37 @@
local rtu = require("rtu.rtu")
local sna_rtu = {}
-- create new solar neutron activator (sna) device
---@param sna table
function sna_rtu.new(sna)
local unit = rtu.init_unit()
-- discrete inputs --
-- none
-- coils --
-- none
-- input registers --
-- build properties
unit.connect_input_reg(sna.getInputCapacity)
unit.connect_input_reg(sna.getOutputCapacity)
-- current state
unit.connect_input_reg(sna.getProductionRate)
unit.connect_input_reg(sna.getPeakProductionRate)
-- tanks
unit.connect_input_reg(sna.getInput)
unit.connect_input_reg(sna.getInputNeeded)
unit.connect_input_reg(sna.getInputFilledPercentage)
unit.connect_input_reg(sna.getOutput)
unit.connect_input_reg(sna.getOutputNeeded)
unit.connect_input_reg(sna.getOutputFilledPercentage)
-- holding registers --
-- none
return unit.interface()
end
return sna_rtu

47
rtu/dev/sps_rtu.lua Normal file
View File

@@ -0,0 +1,47 @@
local rtu = require("rtu.rtu")
local sps_rtu = {}
-- create new super-critical phase shifter (sps) device
---@param sps table
function sps_rtu.new(sps)
local unit = rtu.init_unit()
-- discrete inputs --
unit.connect_di(sps.isFormed)
-- coils --
-- none
-- input registers --
-- multiblock properties
unit.connect_input_reg(sps.getLength)
unit.connect_input_reg(sps.getWidth)
unit.connect_input_reg(sps.getHeight)
unit.connect_input_reg(sps.getMinPos)
unit.connect_input_reg(sps.getMaxPos)
-- build properties
unit.connect_input_reg(sps.getCoils)
unit.connect_input_reg(sps.getInputCapacity)
unit.connect_input_reg(sps.getOutputCapacity)
unit.connect_input_reg(sps.getMaxEnergy)
-- current state
unit.connect_input_reg(sps.getProcessRate)
-- tanks
unit.connect_input_reg(sps.getInput)
unit.connect_input_reg(sps.getInputNeeded)
unit.connect_input_reg(sps.getInputFilledPercentage)
unit.connect_input_reg(sps.getOutput)
unit.connect_input_reg(sps.getOutputNeeded)
unit.connect_input_reg(sps.getOutputFilledPercentage)
unit.connect_input_reg(sps.getEnergy)
unit.connect_input_reg(sps.getEnergyNeeded)
unit.connect_input_reg(sps.getEnergyFilledPercentage)
-- holding registers --
-- none
return unit.interface()
end
return sps_rtu