RTU device changes, bugfixes, docs
This commit is contained in:
@@ -1,17 +1,15 @@
|
||||
local rtu = require("rtu")
|
||||
local rtu = require("rtu.rtu")
|
||||
|
||||
local boiler_rtu = {}
|
||||
|
||||
-- create new boiler (mek 10.0) device
|
||||
---@param boiler table
|
||||
boiler_rtu.new = function (boiler)
|
||||
local self = {
|
||||
rtu = rtu.init_unit(),
|
||||
boiler = boiler
|
||||
}
|
||||
|
||||
local rtu_interface = function ()
|
||||
return self.rtu
|
||||
end
|
||||
|
||||
-- discrete inputs --
|
||||
-- none
|
||||
|
||||
@@ -47,9 +45,7 @@ boiler_rtu.new = function (boiler)
|
||||
-- holding registers --
|
||||
-- none
|
||||
|
||||
return {
|
||||
rtu_interface = rtu_interface
|
||||
}
|
||||
return self.rtu.interface()
|
||||
end
|
||||
|
||||
return boiler_rtu
|
||||
|
||||
@@ -1,29 +1,28 @@
|
||||
local rtu = require("rtu")
|
||||
local rtu = require("rtu.rtu")
|
||||
|
||||
local boilerv_rtu = {}
|
||||
|
||||
-- create new boiler (mek 10.1+) device
|
||||
---@param boiler table
|
||||
boilerv_rtu.new = function (boiler)
|
||||
local self = {
|
||||
rtu = rtu.init_unit(),
|
||||
boiler = boiler
|
||||
}
|
||||
|
||||
local rtu_interface = function ()
|
||||
return self.rtu
|
||||
end
|
||||
|
||||
-- discrete inputs --
|
||||
-- none
|
||||
self.rtu.connect_di(self.boiler.isFormed)
|
||||
|
||||
-- coils --
|
||||
-- none
|
||||
|
||||
-- input registers --
|
||||
-- multiblock properties
|
||||
self.rtu.connect_input_reg(self.boiler.isFormed)
|
||||
self.rtu.connect_input_reg(self.boiler.getLength)
|
||||
self.rtu.connect_input_reg(self.boiler.getWidth)
|
||||
self.rtu.connect_input_reg(self.boiler.getHeight)
|
||||
self.rtu.connect_input_reg(self.boiler.getMinPos)
|
||||
self.rtu.connect_input_reg(self.boiler.getMaxPos)
|
||||
-- build properties
|
||||
self.rtu.connect_input_reg(self.boiler.getBoilCapacity)
|
||||
self.rtu.connect_input_reg(self.boiler.getSteamCapacity)
|
||||
@@ -32,6 +31,7 @@ boilerv_rtu.new = function (boiler)
|
||||
self.rtu.connect_input_reg(self.boiler.getCooledCoolantCapacity)
|
||||
self.rtu.connect_input_reg(self.boiler.getSuperheaters)
|
||||
self.rtu.connect_input_reg(self.boiler.getMaxBoilRate)
|
||||
self.rtu.connect_input_reg(self.boiler.getEnvironmentalLoss)
|
||||
-- current state
|
||||
self.rtu.connect_input_reg(self.boiler.getTemperature)
|
||||
self.rtu.connect_input_reg(self.boiler.getBoilRate)
|
||||
@@ -52,9 +52,7 @@ boilerv_rtu.new = function (boiler)
|
||||
-- holding registers --
|
||||
-- none
|
||||
|
||||
return {
|
||||
rtu_interface = rtu_interface
|
||||
}
|
||||
return self.rtu.interface()
|
||||
end
|
||||
|
||||
return boilerv_rtu
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
local rtu = require("rtu")
|
||||
local rtu = require("rtu.rtu")
|
||||
|
||||
local energymachine_rtu = {}
|
||||
|
||||
-- create new energy machine device
|
||||
---@param machine table
|
||||
energymachine_rtu.new = function (machine)
|
||||
local self = {
|
||||
rtu = rtu.init_unit(),
|
||||
machine = machine
|
||||
}
|
||||
|
||||
local rtu_interface = function ()
|
||||
return self.rtu
|
||||
end
|
||||
---@class rtu_device
|
||||
local public = {}
|
||||
|
||||
-- get the RTU interface
|
||||
public.rtu_interface = function () return self.rtu end
|
||||
|
||||
-- discrete inputs --
|
||||
-- none
|
||||
@@ -29,9 +33,7 @@ energymachine_rtu.new = function (machine)
|
||||
-- holding registers --
|
||||
-- none
|
||||
|
||||
return {
|
||||
rtu_interface = rtu_interface
|
||||
}
|
||||
return public
|
||||
end
|
||||
|
||||
return energymachine_rtu
|
||||
|
||||
@@ -1,29 +1,28 @@
|
||||
local rtu = require("rtu")
|
||||
local rtu = require("rtu.rtu")
|
||||
|
||||
local imatrix_rtu = {}
|
||||
|
||||
-- create new induction matrix (mek 10.1+) device
|
||||
---@param imatrix table
|
||||
imatrix_rtu.new = function (imatrix)
|
||||
local self = {
|
||||
rtu = rtu.init_unit(),
|
||||
imatrix = imatrix
|
||||
}
|
||||
|
||||
local rtu_interface = function ()
|
||||
return self.rtu
|
||||
end
|
||||
|
||||
-- discrete inputs --
|
||||
-- none
|
||||
self.rtu.connect_di(self.boiler.isFormed)
|
||||
|
||||
-- coils --
|
||||
-- none
|
||||
|
||||
-- input registers --
|
||||
-- multiblock properties
|
||||
self.rtu.connect_input_reg(self.boiler.isFormed)
|
||||
self.rtu.connect_input_reg(self.boiler.getLength)
|
||||
self.rtu.connect_input_reg(self.boiler.getWidth)
|
||||
self.rtu.connect_input_reg(self.boiler.getHeight)
|
||||
self.rtu.connect_input_reg(self.boiler.getMinPos)
|
||||
self.rtu.connect_input_reg(self.boiler.getMaxPos)
|
||||
-- build properties
|
||||
self.rtu.connect_input_reg(self.imatrix.getMaxEnergy)
|
||||
self.rtu.connect_input_reg(self.imatrix.getTransferCap)
|
||||
@@ -40,9 +39,7 @@ imatrix_rtu.new = function (imatrix)
|
||||
-- holding registers --
|
||||
-- none
|
||||
|
||||
return {
|
||||
rtu_interface = rtu_interface
|
||||
}
|
||||
return self.rtu.interface()
|
||||
end
|
||||
|
||||
return imatrix_rtu
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
local rtu = require("rtu")
|
||||
local rtu = require("rtu.rtu")
|
||||
local rsio = require("scada-common.rsio")
|
||||
|
||||
local redstone_rtu = {}
|
||||
@@ -6,16 +6,31 @@ local redstone_rtu = {}
|
||||
local digital_read = rsio.digital_read
|
||||
local digital_is_active = rsio.digital_is_active
|
||||
|
||||
-- create new redstone device
|
||||
redstone_rtu.new = function ()
|
||||
local self = {
|
||||
rtu = rtu.init_unit()
|
||||
}
|
||||
|
||||
local rtu_interface = function ()
|
||||
return self.rtu
|
||||
end
|
||||
-- get RTU interface
|
||||
local interface = self.rtu.interface()
|
||||
|
||||
local link_di = function (channel, side, color)
|
||||
---@class rtu_rs_device
|
||||
--- extends rtu_device; fields added manually to please Lua diagnostics
|
||||
local public = {
|
||||
io_count = interface.io_count,
|
||||
read_coil = interface.read_coil,
|
||||
read_di = interface.read_di,
|
||||
read_holding_reg = interface.read_holding_reg,
|
||||
read_input_reg = interface.read_input_reg,
|
||||
write_coil = interface.write_coil,
|
||||
write_holding_reg = interface.write_holding_reg
|
||||
}
|
||||
|
||||
-- link digital input
|
||||
---@param side string
|
||||
---@param color integer
|
||||
public.link_di = function (side, color)
|
||||
local f_read = nil
|
||||
|
||||
if color then
|
||||
@@ -31,7 +46,11 @@ redstone_rtu.new = function ()
|
||||
self.rtu.connect_di(f_read)
|
||||
end
|
||||
|
||||
local link_do = function (channel, side, color)
|
||||
-- link digital output
|
||||
---@param channel RS_IO
|
||||
---@param side string
|
||||
---@param color integer
|
||||
public.link_do = function (channel, side, color)
|
||||
local f_read = nil
|
||||
local f_write = nil
|
||||
|
||||
@@ -65,7 +84,9 @@ redstone_rtu.new = function ()
|
||||
self.rtu.connect_coil(f_read, f_write)
|
||||
end
|
||||
|
||||
local link_ai = function (channel, side)
|
||||
-- link analog input
|
||||
---@param side string
|
||||
public.link_ai = function (side)
|
||||
self.rtu.connect_input_reg(
|
||||
function ()
|
||||
return rs.getAnalogInput(side)
|
||||
@@ -73,7 +94,9 @@ redstone_rtu.new = function ()
|
||||
)
|
||||
end
|
||||
|
||||
local link_ao = function (channel, side)
|
||||
-- link analog output
|
||||
---@param side string
|
||||
public.link_ao = function (side)
|
||||
self.rtu.connect_holding_reg(
|
||||
function ()
|
||||
return rs.getAnalogOutput(side)
|
||||
@@ -84,13 +107,7 @@ redstone_rtu.new = function ()
|
||||
)
|
||||
end
|
||||
|
||||
return {
|
||||
rtu_interface = rtu_interface,
|
||||
link_di = link_di,
|
||||
link_do = link_do,
|
||||
link_ai = link_ai,
|
||||
link_ao = link_ao
|
||||
}
|
||||
return public
|
||||
end
|
||||
|
||||
return redstone_rtu
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
local rtu = require("rtu")
|
||||
local rtu = require("rtu.rtu")
|
||||
|
||||
local turbine_rtu = {}
|
||||
|
||||
-- create new turbine (mek 10.0) device
|
||||
---@param turbine table
|
||||
turbine_rtu.new = function (turbine)
|
||||
local self = {
|
||||
rtu = rtu.init_unit(),
|
||||
turbine = turbine
|
||||
}
|
||||
|
||||
local rtu_interface = function ()
|
||||
return self.rtu
|
||||
end
|
||||
|
||||
-- discrete inputs --
|
||||
-- none
|
||||
|
||||
@@ -42,9 +40,7 @@ turbine_rtu.new = function (turbine)
|
||||
-- holding registers --
|
||||
-- none
|
||||
|
||||
return {
|
||||
rtu_interface = rtu_interface
|
||||
}
|
||||
return self.rtu.interface()
|
||||
end
|
||||
|
||||
return turbine_rtu
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
local rtu = require("rtu")
|
||||
local rtu = require("rtu.rtu")
|
||||
|
||||
local turbinev_rtu = {}
|
||||
|
||||
-- create new turbine (mek 10.1+) device
|
||||
---@param turbine table
|
||||
turbinev_rtu.new = function (turbine)
|
||||
local self = {
|
||||
rtu = rtu.init_unit(),
|
||||
turbine = turbine
|
||||
}
|
||||
|
||||
local rtu_interface = function ()
|
||||
return self.rtu
|
||||
end
|
||||
|
||||
-- discrete inputs --
|
||||
-- none
|
||||
self.rtu.connect_di(self.boiler.isFormed)
|
||||
|
||||
-- coils --
|
||||
self.rtu.connect_coil(function () self.turbine.incrementDumpingMode() end, function () end)
|
||||
@@ -21,10 +19,11 @@ turbinev_rtu.new = function (turbine)
|
||||
|
||||
-- input registers --
|
||||
-- multiblock properties
|
||||
self.rtu.connect_input_reg(self.boiler.isFormed)
|
||||
self.rtu.connect_input_reg(self.boiler.getLength)
|
||||
self.rtu.connect_input_reg(self.boiler.getWidth)
|
||||
self.rtu.connect_input_reg(self.boiler.getHeight)
|
||||
self.rtu.connect_input_reg(self.boiler.getMinPos)
|
||||
self.rtu.connect_input_reg(self.boiler.getMaxPos)
|
||||
-- build properties
|
||||
self.rtu.connect_input_reg(self.turbine.getBlades)
|
||||
self.rtu.connect_input_reg(self.turbine.getCoils)
|
||||
@@ -50,11 +49,9 @@ turbinev_rtu.new = function (turbine)
|
||||
self.rtu.connect_input_reg(self.turbine.getEnergyFilledPercentage)
|
||||
|
||||
-- holding registers --
|
||||
self.rtu.conenct_holding_reg(self.turbine.setDumpingMode, self.turbine.getDumpingMode)
|
||||
self.rtu.connect_holding_reg(self.turbine.setDumpingMode, self.turbine.getDumpingMode)
|
||||
|
||||
return {
|
||||
rtu_interface = rtu_interface
|
||||
}
|
||||
return self.rtu.interface()
|
||||
end
|
||||
|
||||
return turbinev_rtu
|
||||
|
||||
Reference in New Issue
Block a user