From 26dc6ff6d1e2093804be8fe70815e878f045638d Mon Sep 17 00:00:00 2001 From: Mikayla Date: Wed, 4 Oct 2023 21:28:14 +0000 Subject: [PATCH] #350 handle RPS_DISABLE ack packet on supervisor --- supervisor/session/plc.lua | 13 +++++++++++-- supervisor/startup.lua | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/supervisor/session/plc.lua b/supervisor/session/plc.lua index 23fb1c6..85a6534 100644 --- a/supervisor/session/plc.lua +++ b/supervisor/session/plc.lua @@ -390,6 +390,15 @@ function plc.new_session(id, s_addr, reactor_id, in_queue, out_queue, timeout, f cmd = UNIT_COMMAND.START, ack = ack }) + elseif pkt.type == RPLC_TYPE.RPS_DISABLE then + -- disable acknowledgement + local ack = _get_ack(pkt) + if ack then + self.acks.disable = true + self.sDB.control_state = false + elseif ack == false then + log.debug(log_header .. "disable failed!") + end elseif pkt.type == RPLC_TYPE.RPS_SCRAM then -- manual SCRAM acknowledgement local ack = _get_ack(pkt) @@ -791,7 +800,7 @@ function plc.new_session(id, s_addr, reactor_id, in_queue, out_queue, timeout, f -- reactor disable request retry if not self.acks.disable then - if rtimes.disable_req - util.time() <= 0 then + if rtimes.disable_req - util.time() <= 0 then _send(RPLC_TYPE.RPS_DISABLE, {}) rtimes.disable_req = util.time() + RETRY_PERIOD end @@ -800,7 +809,7 @@ function plc.new_session(id, s_addr, reactor_id, in_queue, out_queue, timeout, f -- SCRAM request retry if not self.acks.scram then - if rtimes.scram_req - util.time() <= 0 then + if rtimes.scram_req - util.time() <= 0 then _send(RPLC_TYPE.RPS_SCRAM, {}) rtimes.scram_req = util.time() + RETRY_PERIOD end diff --git a/supervisor/startup.lua b/supervisor/startup.lua index fda0dc4..a1327f1 100644 --- a/supervisor/startup.lua +++ b/supervisor/startup.lua @@ -21,7 +21,7 @@ local supervisor = require("supervisor.supervisor") local svsessions = require("supervisor.session.svsessions") -local SUPERVISOR_VERSION = "v1.0.7" +local SUPERVISOR_VERSION = "v1.0.8" local println = util.println local println_ts = util.println_ts