RTU device changes, bugfixes, docs

This commit is contained in:
Mikayla Fischler
2022-05-12 15:36:27 -04:00
parent 9695e94608
commit 969abca95d
10 changed files with 98 additions and 84 deletions

View File

@@ -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