mirror of
https://github.com/MikaylaFischler/cc-mek-scada.git
synced 2024-08-30 18:22:34 +00:00
pocket coordinator linking fixes
This commit is contained in:
parent
89cd5a07f2
commit
2b4309afa7
@ -279,11 +279,12 @@ function coordinator.comms(version, nic, sv_watchdog)
|
|||||||
-- send an API establish request response
|
-- send an API establish request response
|
||||||
---@param packet scada_packet
|
---@param packet scada_packet
|
||||||
---@param ack ESTABLISH_ACK
|
---@param ack ESTABLISH_ACK
|
||||||
local function _send_api_establish_ack(packet, ack)
|
---@param data any?
|
||||||
|
local function _send_api_establish_ack(packet, ack, data)
|
||||||
local s_pkt = comms.scada_packet()
|
local s_pkt = comms.scada_packet()
|
||||||
local m_pkt = comms.mgmt_packet()
|
local m_pkt = comms.mgmt_packet()
|
||||||
|
|
||||||
m_pkt.make(MGMT_TYPE.ESTABLISH, { ack })
|
m_pkt.make(MGMT_TYPE.ESTABLISH, { ack, data })
|
||||||
s_pkt.make(packet.src_addr(), packet.seq_num() + 1, PROTOCOL.SCADA_MGMT, m_pkt.raw_sendable())
|
s_pkt.make(packet.src_addr(), packet.seq_num() + 1, PROTOCOL.SCADA_MGMT, m_pkt.raw_sendable())
|
||||||
|
|
||||||
nic.transmit(config.PKT_Channel, config.CRD_Channel, s_pkt)
|
nic.transmit(config.PKT_Channel, config.CRD_Channel, s_pkt)
|
||||||
@ -493,7 +494,8 @@ function coordinator.comms(version, nic, sv_watchdog)
|
|||||||
local id = apisessions.establish_session(src_addr, firmware_v)
|
local id = apisessions.establish_session(src_addr, firmware_v)
|
||||||
coordinator.log_comms(util.c("API_ESTABLISH: pocket (", firmware_v, ") [@", src_addr, "] connected with session ID ", id))
|
coordinator.log_comms(util.c("API_ESTABLISH: pocket (", firmware_v, ") [@", src_addr, "] connected with session ID ", id))
|
||||||
|
|
||||||
_send_api_establish_ack(packet.scada_frame, ESTABLISH_ACK.ALLOW)
|
local conf = iocontrol.get_db().facility.conf
|
||||||
|
_send_api_establish_ack(packet.scada_frame, ESTABLISH_ACK.ALLOW, { conf.num_units, conf.cooling })
|
||||||
else
|
else
|
||||||
log.debug(util.c("API_ESTABLISH: illegal establish packet for device ", dev_type, " on pocket channel"))
|
log.debug(util.c("API_ESTABLISH: illegal establish packet for device ", dev_type, " on pocket channel"))
|
||||||
_send_api_establish_ack(packet.scada_frame, ESTABLISH_ACK.DENY)
|
_send_api_establish_ack(packet.scada_frame, ESTABLISH_ACK.DENY)
|
||||||
|
@ -67,6 +67,7 @@ function iocontrol.init(conf, comms, temp_scale)
|
|||||||
-- facility data structure
|
-- facility data structure
|
||||||
---@class ioctl_facility
|
---@class ioctl_facility
|
||||||
io.facility = {
|
io.facility = {
|
||||||
|
conf = conf,
|
||||||
num_units = conf.num_units,
|
num_units = conf.num_units,
|
||||||
tank_mode = conf.cooling.fac_tank_mode,
|
tank_mode = conf.cooling.fac_tank_mode,
|
||||||
tank_defs = conf.cooling.fac_tank_defs,
|
tank_defs = conf.cooling.fac_tank_defs,
|
||||||
|
@ -126,7 +126,7 @@ function pocket.comms(version, nic, sv_watchdog, api_watchdog)
|
|||||||
|
|
||||||
-- attempt coordinator API connection establishment
|
-- attempt coordinator API connection establishment
|
||||||
local function _send_api_establish()
|
local function _send_api_establish()
|
||||||
_send_crd(MGMT_TYPE.ESTABLISH, { comms.version, version, DEVICE_TYPE.PKT })
|
_send_crd(MGMT_TYPE.ESTABLISH, { comms.version, version, DEVICE_TYPE.PKT, comms.api_version })
|
||||||
end
|
end
|
||||||
|
|
||||||
-- keep alive ack to supervisor
|
-- keep alive ack to supervisor
|
||||||
@ -252,7 +252,7 @@ function pocket.comms(version, nic, sv_watchdog, api_watchdog)
|
|||||||
---@param max integer?
|
---@param max integer?
|
||||||
---@return boolean
|
---@return boolean
|
||||||
local function _check_length(packet, length, max)
|
local function _check_length(packet, length, max)
|
||||||
local ok = util.trinary(max == nil, packet.length == length, packet.length >= length and packet.length <= max)
|
local ok = util.trinary(max == nil, packet.length == length, packet.length >= length and packet.length <= (max or 0))
|
||||||
if not ok then
|
if not ok then
|
||||||
local fmt = "[comms] RX_PACKET{r_chan=%d,proto=%d,type=%d}: packet length mismatch -> expect %d != actual %d"
|
local fmt = "[comms] RX_PACKET{r_chan=%d,proto=%d,type=%d}: packet length mismatch -> expect %d != actual %d"
|
||||||
log.debug(util.sprintf(fmt, packet.scada_frame.remote_channel(), packet.scada_frame.protocol(), packet.type))
|
log.debug(util.sprintf(fmt, packet.scada_frame.remote_channel(), packet.scada_frame.protocol(), packet.type))
|
||||||
@ -322,7 +322,7 @@ function pocket.comms(version, nic, sv_watchdog, api_watchdog)
|
|||||||
log.warning("pocket coordinator KEEP_ALIVE trip time > 750ms (" .. trip_time .. "ms)")
|
log.warning("pocket coordinator KEEP_ALIVE trip time > 750ms (" .. trip_time .. "ms)")
|
||||||
end
|
end
|
||||||
|
|
||||||
log.debug("pocket coordinator TT = " .. trip_time .. "ms")
|
-- log.debug("pocket coordinator TT = " .. trip_time .. "ms")
|
||||||
|
|
||||||
_send_api_keep_alive_ack(timestamp)
|
_send_api_keep_alive_ack(timestamp)
|
||||||
|
|
||||||
@ -428,7 +428,7 @@ function pocket.comms(version, nic, sv_watchdog, api_watchdog)
|
|||||||
log.warning("pocket supervisor KEEP_ALIVE trip time > 750ms (" .. trip_time .. "ms)")
|
log.warning("pocket supervisor KEEP_ALIVE trip time > 750ms (" .. trip_time .. "ms)")
|
||||||
end
|
end
|
||||||
|
|
||||||
log.debug("pocket supervisor TT = " .. trip_time .. "ms")
|
-- log.debug("pocket supervisor TT = " .. trip_time .. "ms")
|
||||||
|
|
||||||
_send_sv_keep_alive_ack(timestamp)
|
_send_sv_keep_alive_ack(timestamp)
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ local iocontrol = require("pocket.iocontrol")
|
|||||||
local pocket = require("pocket.pocket")
|
local pocket = require("pocket.pocket")
|
||||||
local renderer = require("pocket.renderer")
|
local renderer = require("pocket.renderer")
|
||||||
|
|
||||||
local POCKET_VERSION = "v0.7.4-alpha"
|
local POCKET_VERSION = "v0.7.5-alpha"
|
||||||
|
|
||||||
local println = util.println
|
local println = util.println
|
||||||
local println_ts = util.println_ts
|
local println_ts = util.println_ts
|
||||||
|
Loading…
Reference in New Issue
Block a user