SAT9/.resources/1cdee86d0bd49bb495e04026248a8e1f6a0d92706470a5b8feba47753e95f409
2025-04-18 19:44:27 +04:00

55 lines
1.5 KiB
Plaintext

import time
def close_websckt():
"""
This function disconnects the web socket and exits any loops.
Should be called when a project is saved or modified to stop
multiple threads running.
Args:
None
Returns:
N/A
Raises:
N/A
"""
fc = system.tag.readBlocking(["Configuration/FC"])
fc_value = fc[0].value
tag_provider = "[%s_SCADA_TAG_PROVIDER]" % (fc_value)
system.tag.writeBlocking([tag_provider + "System/close_socket"],[0])
running = system.util.getGlobals().get(fc_value, {}).get("wbsckt_running", 0)
if running:
system.util.getGlobals()[fc_value]["wbsckt_running"] = False
system.tag.writeBlocking(tag_provider + "System/wbsckt_running", [0])
time.sleep(2)
system.tag.writeBlocking([tag_provider + "System/close_socket"],[1])
logger = system.util.getLogger("%s-WebSocket-Restart" % (fc))
logger.info("Web-Socket closed due to restart, AWS.wbsckt_abort.close_websckt()")
def check_web_socket():
"""
This function checks to see if the "System/close_socket" tag is active
(boolean on) or inactive (boolean off). If the tag is active the web
socket will run, if it is inactive then the web socket will stop running.
This function is called from the main web socket gateway event.
Used to exit the web socket gateway event.
Args:
None
Returns:
True or False
Raises:
N/A
"""
request_to_close = system.tag.readBlocking(["System/close_socket"])
request_to_close_val = request_to_close[0].value
if not request_to_close_val:
return True
else:
return False