#201 functional pocket comms with supervisor and coordinator, adjusted some UI element positioning, bugfixes with apisessions and svsessions

This commit is contained in:
Mikayla Fischler
2023-04-19 20:35:42 -04:00
parent b48c956354
commit 7929318096
13 changed files with 84 additions and 49 deletions

View File

@@ -3,7 +3,7 @@ local config = {}
-- port of the SCADA supervisor
config.SCADA_SV_PORT = 16100
-- port to listen to incoming packets from supervisor
config.SCADA_SV_LISTEN = 16101
config.SCADA_SV_CTL_LISTEN = 16101
-- listen port for SCADA coordinator API access
config.SCADA_API_LISTEN = 16200
-- max trusted modem message distance (0 to disable check)

View File

@@ -242,6 +242,9 @@ function coordinator.comms(version, modem, sv_port, sv_listen, api_listen, range
_conf_channels()
-- link modem to apisessions
apisessions.init(modem)
-- send a packet to the supervisor
---@param msg_type SCADA_MGMT_TYPE|SCADA_CRDN_TYPE
---@param msg table

View File

@@ -46,6 +46,7 @@ function api.new_session(id, in_queue, out_queue, timeout)
last_rtt = 0,
-- periodic messages
periodics = {
last_update = 0,
keep_alive = 0
},
-- when to next retry one of these requests
@@ -110,6 +111,9 @@ function api.new_session(id, in_queue, out_queue, timeout)
self.r_seq_num = pkt.scada_frame.seq_num()
end
-- feed watchdog
self.conn_watchdog.feed()
-- process packet
if pkt.scada_frame.protocol() == PROTOCOL.COORD_API then
---@cast pkt capi_frame

View File

@@ -12,14 +12,15 @@ local util = require("scada-common.util")
local core = require("graphics.core")
local apisessions = require("coordinator.apisessions")
local config = require("coordinator.config")
local coordinator = require("coordinator.coordinator")
local iocontrol = require("coordinator.iocontrol")
local renderer = require("coordinator.renderer")
local sounder = require("coordinator.sounder")
local COORDINATOR_VERSION = "v0.13.0"
local apisessions = require("coordinator.session.apisessions")
local COORDINATOR_VERSION = "v0.13.1"
local println = util.println
local println_ts = util.println_ts
@@ -37,7 +38,7 @@ local log_comms_connecting = coordinator.log_comms_connecting
local cfv = util.new_validator()
cfv.assert_port(config.SCADA_SV_PORT)
cfv.assert_port(config.SCADA_SV_LISTEN)
cfv.assert_port(config.SCADA_SV_CTL_LISTEN)
cfv.assert_port(config.SCADA_API_LISTEN)
cfv.assert_type_int(config.TRUSTED_RANGE)
cfv.assert_type_num(config.SV_TIMEOUT)
@@ -147,7 +148,7 @@ local function main()
log.debug("startup> conn watchdog created")
-- start comms, open all channels
local coord_comms = coordinator.comms(COORDINATOR_VERSION, modem, config.SCADA_SV_PORT, config.SCADA_SV_LISTEN,
local coord_comms = coordinator.comms(COORDINATOR_VERSION, modem, config.SCADA_SV_PORT, config.SCADA_SV_CTL_LISTEN,
config.SCADA_API_LISTEN, config.TRUSTED_RANGE, conn_watchdog)
log.debug("startup> comms init")
log_comms("comms initialized")
@@ -300,6 +301,9 @@ local function main()
if loop_clock.is_clock(param1) then
-- main loop tick
-- iterate sessions
apisessions.iterate_all()
-- free any closed sessions
apisessions.free_all_closed()
@@ -326,7 +330,7 @@ local function main()
else
-- a non-clock/main watchdog timer event
--check API watchdogs
-- check API watchdogs
apisessions.check_all_watchdogs(param1)
-- notify timer callback dispatcher