#134 #104 redstone RTU integration with supervisor unit, waste routing implemented, changed how redstone I/O works (again, should be good now), modbus fixes
This commit is contained in:
@@ -16,9 +16,9 @@ local IO_MODE = rsio.IO_MODE
|
||||
println("starting RSIO tester")
|
||||
println("")
|
||||
|
||||
println(">>> checking valid channels:")
|
||||
println(">>> checking valid ports:")
|
||||
|
||||
-- channel function tests
|
||||
-- port function tests
|
||||
local cid = 0
|
||||
local max_value = 1
|
||||
for key, value in pairs(IO) do
|
||||
@@ -38,18 +38,18 @@ for key, value in pairs(IO) do
|
||||
elseif io_mode == IO_MODE.ANALOG_OUT then
|
||||
mode = " (ANALOG_OUT)"
|
||||
else
|
||||
error("unknown mode for channel " .. key)
|
||||
error("unknown mode for port " .. key)
|
||||
end
|
||||
|
||||
assert(key == c_name, c_name .. " != " .. key .. ": " .. value .. mode)
|
||||
println(c_name .. ": " .. value .. mode)
|
||||
end
|
||||
|
||||
assert(max_value == cid, "RS_IO last IDx out-of-sync with count: " .. max_value .. " (count " .. cid .. ")")
|
||||
assert(max_value == cid, "IO_PORT last IDx out-of-sync with count: " .. max_value .. " (count " .. cid .. ")")
|
||||
|
||||
testutils.pause()
|
||||
|
||||
println(">>> checking invalid channels:")
|
||||
println(">>> checking invalid ports:")
|
||||
|
||||
testutils.test_func("rsio.to_string", rsio.to_string, { -1, 100, false }, "")
|
||||
testutils.test_func_nil("rsio.to_string", rsio.to_string, "")
|
||||
@@ -61,8 +61,8 @@ testutils.pause()
|
||||
println(">>> checking validity checks:")
|
||||
|
||||
local ivc_t_list = { 0, -1, 100 }
|
||||
testutils.test_func("rsio.is_valid_channel", rsio.is_valid_channel, ivc_t_list, false)
|
||||
testutils.test_func_nil("rsio.is_valid_channel", rsio.is_valid_channel, false)
|
||||
testutils.test_func("rsio.is_valid_port", rsio.is_valid_port, ivc_t_list, false)
|
||||
testutils.test_func_nil("rsio.is_valid_port", rsio.is_valid_port, false)
|
||||
|
||||
local ivs_t_list = rs.getSides()
|
||||
testutils.test_func("rsio.is_valid_side", rsio.is_valid_side, ivs_t_list, true)
|
||||
@@ -76,7 +76,7 @@ testutils.test_func_nil("rsio.is_color", rsio.is_color, false)
|
||||
|
||||
testutils.pause()
|
||||
|
||||
println(">>> checking channel-independent I/O wrappers:")
|
||||
println(">>> checking port-independent I/O wrappers:")
|
||||
|
||||
testutils.test_func("rsio.digital_read", rsio.digital_read, { true, false }, { IO_LVL.HIGH, IO_LVL.LOW })
|
||||
|
||||
@@ -97,11 +97,11 @@ println("PASS")
|
||||
|
||||
testutils.pause()
|
||||
|
||||
println(">>> checking channel I/O:")
|
||||
println(">>> checking port I/O:")
|
||||
|
||||
print("rsio.digital_is_active(...): ")
|
||||
|
||||
-- check input channels
|
||||
-- check input ports
|
||||
assert(rsio.digital_is_active(IO.F_SCRAM, IO_LVL.LOW) == true, "IO_F_SCRAM_HIGH")
|
||||
assert(rsio.digital_is_active(IO.F_SCRAM, IO_LVL.HIGH) == false, "IO_F_SCRAM_LOW")
|
||||
assert(rsio.digital_is_active(IO.R_SCRAM, IO_LVL.LOW) == true, "IO_R_SCRAM_HIGH")
|
||||
@@ -115,30 +115,32 @@ assert(rsio.digital_is_active(IO.F_ALARM, IO_LVL.HIGH) == false, "IO_OUT_READ_HI
|
||||
|
||||
println("PASS")
|
||||
|
||||
-- check output channels
|
||||
-- check output ports
|
||||
|
||||
print("rsio.digital_write(...): ")
|
||||
|
||||
-- check output channels
|
||||
assert(rsio.digital_write(IO.F_ALARM, IO_LVL.LOW) == false, "IO_F_ALARM_FALSE")
|
||||
assert(rsio.digital_write(IO.F_ALARM, IO_LVL.HIGH) == true, "IO_F_ALARM_TRUE")
|
||||
assert(rsio.digital_write(IO.WASTE_PO, IO_LVL.HIGH) == false, "IO_WASTE_PO_FALSE")
|
||||
assert(rsio.digital_write(IO.WASTE_PO, IO_LVL.LOW) == true, "IO_WASTE_PO_TRUE")
|
||||
assert(rsio.digital_write(IO.WASTE_PU, IO_LVL.HIGH) == false, "IO_WASTE_PU_FALSE")
|
||||
assert(rsio.digital_write(IO.WASTE_PU, IO_LVL.LOW) == true, "IO_WASTE_PU_TRUE")
|
||||
assert(rsio.digital_write(IO.WASTE_AM, IO_LVL.HIGH) == false, "IO_WASTE_AM_FALSE")
|
||||
assert(rsio.digital_write(IO.WASTE_AM, IO_LVL.LOW) == true, "IO_WASTE_AM_TRUE")
|
||||
-- check output ports
|
||||
assert(rsio.digital_write_active(IO.F_ALARM, true) == IO_LVL.LOW, "IO_F_ALARM_LOW")
|
||||
assert(rsio.digital_write_active(IO.F_ALARM, true) == IO_LVL.HIGH, "IO_F_ALARM_HIGH")
|
||||
assert(rsio.digital_write_active(IO.WASTE_PU, true) == IO_LVL.HIGH, "IO_WASTE_PU_HIGH")
|
||||
assert(rsio.digital_write_active(IO.WASTE_PU, true) == IO_LVL.LOW, "IO_WASTE_PU_LOW")
|
||||
assert(rsio.digital_write_active(IO.WASTE_PO, true) == IO_LVL.HIGH, "IO_WASTE_PO_HIGH")
|
||||
assert(rsio.digital_write_active(IO.WASTE_PO, true) == IO_LVL.LOW, "IO_WASTE_PO_LOW")
|
||||
assert(rsio.digital_write_active(IO.WASTE_POPL, true) == IO_LVL.HIGH, "IO_WASTE_POPL_HIGH")
|
||||
assert(rsio.digital_write_active(IO.WASTE_POPL, true) == IO_LVL.LOW, "IO_WASTE_POPL_LOW")
|
||||
assert(rsio.digital_write_active(IO.WASTE_AM, true) == IO_LVL.HIGH, "IO_WASTE_AM_HIGH")
|
||||
assert(rsio.digital_write_active(IO.WASTE_AM, true) == IO_LVL.LOW, "IO_WASTE_AM_LOW")
|
||||
|
||||
-- check all reactor output channels (all are active high)
|
||||
-- check all reactor output ports (all are active high)
|
||||
for i = IO.R_ALARM, (IO.R_PLC_TIMEOUT - IO.R_ALARM + 1) do
|
||||
assert(rsio.to_string(i) ~= "", "REACTOR_IO_BAD_CHANNEL")
|
||||
assert(rsio.digital_write(i, IO_LVL.LOW) == false, "IO_" .. rsio.to_string(i) .. "_FALSE")
|
||||
assert(rsio.digital_write(i, IO_LVL.HIGH) == true, "IO_" .. rsio.to_string(i) .. "_TRUE")
|
||||
assert(rsio.to_string(i) ~= "", "REACTOR_IO_BAD_PORT")
|
||||
assert(rsio.digital_write_active(i, false) == IO_LVL.LOW, "IO_" .. rsio.to_string(i) .. "_LOW")
|
||||
assert(rsio.digital_write_active(i, true) == IO_LVL.HIGH, "IO_" .. rsio.to_string(i) .. "_HIGH")
|
||||
end
|
||||
|
||||
-- non-outputs should always return false
|
||||
assert(rsio.digital_write(IO.F_SCRAM, IO_LVL.LOW) == false, "IO_IN_WRITE_LOW")
|
||||
assert(rsio.digital_write(IO.F_SCRAM, IO_LVL.LOW) == false, "IO_IN_WRITE_HIGH")
|
||||
assert(rsio.digital_write_active(IO.F_SCRAM, false) == IO_LVL.LOW, "IO_IN_WRITE_FALSE")
|
||||
assert(rsio.digital_write_active(IO.F_SCRAM, true) == IO_LVL.LOW, "IO_IN_WRITE_TRUE")
|
||||
|
||||
println("PASS")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user