#32 new threaded PLC code
This commit is contained in:
@@ -1,48 +0,0 @@
|
||||
--
|
||||
-- Message Queue
|
||||
--
|
||||
|
||||
TYPE = {
|
||||
COMMAND = 0,
|
||||
PACKET = 1
|
||||
}
|
||||
|
||||
function new()
|
||||
local queue = {}
|
||||
|
||||
local length = function ()
|
||||
return #queue
|
||||
end
|
||||
|
||||
local empty = function ()
|
||||
return #queue == 0
|
||||
end
|
||||
|
||||
local _push = function (qtype, message)
|
||||
table.insert(queue, { qtype = qtype, message = message })
|
||||
end
|
||||
|
||||
local push_packet = function (message)
|
||||
_push(TYPE.PACKET, message)
|
||||
end
|
||||
|
||||
local push_command = function (message)
|
||||
_push(TYPE.COMMAND, message)
|
||||
end
|
||||
|
||||
local pop = function ()
|
||||
if #queue > 0 then
|
||||
return table.remove(queue)
|
||||
else
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
return {
|
||||
length = length,
|
||||
empty = empty,
|
||||
push_packet = push_packet,
|
||||
push_command = push_command,
|
||||
pop = pop
|
||||
}
|
||||
end
|
||||
@@ -330,7 +330,7 @@ function new_session(id, for_reactor, in_queue, out_queue)
|
||||
-- handle queue --
|
||||
------------------
|
||||
|
||||
if not self.in_q.empty() then
|
||||
if self.in_q.ready() then
|
||||
-- get a new message to process
|
||||
local message = self.in_q.pop()
|
||||
|
||||
|
||||
@@ -130,7 +130,7 @@ local function _iterate(sessions)
|
||||
if ok then
|
||||
-- send packets in out queue
|
||||
-- @todo handle commands if that's being used too
|
||||
while not session.out_queue.empty() do
|
||||
while session.out_queue.ready() do
|
||||
local msg = session.out_queue.pop()
|
||||
if msg.qtype == mqueue.TYPE.PACKET then
|
||||
self.modem.transmit(session.r_port, session.l_port, msg.message.raw_sendable())
|
||||
|
||||
@@ -7,9 +7,9 @@ os.loadAPI("scada-common/util.lua")
|
||||
os.loadAPI("scada-common/ppm.lua")
|
||||
os.loadAPI("scada-common/comms.lua")
|
||||
os.loadAPI("scada-common/modbus.lua")
|
||||
os.loadAPI("scada-common/mqueue.lua")
|
||||
|
||||
os.loadAPI("config.lua")
|
||||
os.loadAPI("mqueue.lua")
|
||||
|
||||
os.loadAPI("session/rtu.lua")
|
||||
os.loadAPI("session/plc.lua")
|
||||
@@ -18,7 +18,7 @@ os.loadAPI("session/svsessions.lua")
|
||||
|
||||
os.loadAPI("supervisor.lua")
|
||||
|
||||
local SUPERVISOR_VERSION = "alpha-v0.1.5"
|
||||
local SUPERVISOR_VERSION = "alpha-v0.1.6"
|
||||
|
||||
local print = util.print
|
||||
local println = util.println
|
||||
|
||||
Reference in New Issue
Block a user