55 lines
1.5 KiB
Plaintext
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
|