Commit 80876498 authored by Ivan Tyagov's avatar Ivan Tyagov

Pass paramaters from CLI.

parent d0898521
......@@ -4,32 +4,60 @@
"""
from opcua import Client
import time
import argparse
import configparser
TIMEOUT = 5 # seconds to wait between checks
NUMBER_OF_CHECKS = 10 # number of times we check the server
OPC_UA_ADDRESS = "opc.tcp://k2-osie:4840/"
OPC_UA_IDENTIFIER = "ns=1;s=i2c0.relay0"
# connect to a session at OPC-UA server
client = Client(OPC_UA_ADDRESS)
try:
client.connect()
# Client has a few methods to get proxy to UA nodes that should always be in address space such as Root or Objects
root = client.get_root_node()
children_list = root.get_children()
var = client.get_node(OPC_UA_IDENTIFIER)
for i in range (0, NUMBER_OF_CHECKS):
i2c0_relay0_before = var.get_value()
print("\ni2c0_relay0 (before) = ", i2c0_relay0_before)
print("sleep ...")
time.sleep(TIMEOUT)
i2c0_relay0_after = var.get_value()
print("i2c0_relay0 (after) = ", i2c0_relay0_after)
# for the wait timeout runtime should have increased the value
assert i2c0_relay0_after > i2c0_relay0_before
finally:
client.disconnect()
def main():
# handle CLI arguments
parser = argparse.ArgumentParser()
parser.add_argument('--iterations', \
type = int, \
default = 10, \
help='number of iterations to check')
parser.add_argument('--timeout', \
type = int, \
default = 5, \
help='seconds to wait between checks')
parser.add_argument('--opc-ua-server', \
type = str, \
default = 'opc.tcp://k2-osie:4840/', \
help='Address of OPC-UA server')
parser.add_argument('--opc-ua-node-identifier', \
type = str, \
default = 'ns=1;s=i2c0.relay0', \
help='Address of OPC-UA server')
args = parser.parse_args()
NUMBER_OF_CHECKS = args.iterations
TIMEOUT = args.timeout
OPC_UA_ADDRESS = args.opc_ua_server
OPC_UA_IDENTIFIER = args.opc_ua_node_identifier
# connect to a session at OPC-UA server
client = Client(OPC_UA_ADDRESS)
try:
client.connect()
# Client has a few methods to get proxy to UA nodes that should always be in address space such as Root or Objects
root = client.get_root_node()
children_list = root.get_children()
var = client.get_node(OPC_UA_IDENTIFIER)
for i in range (0, NUMBER_OF_CHECKS):
i2c0_relay0_before = var.get_value()
print("\ni2c0_relay0 (before) = ", i2c0_relay0_before)
print("Sleep for %s seconds ..." %TIMEOUT)
time.sleep(TIMEOUT)
i2c0_relay0_after = var.get_value()
print("i2c0_relay0 (after) = ", i2c0_relay0_after)
# for the wait timeout runtime should have increased the value
assert i2c0_relay0_after > i2c0_relay0_before
finally:
client.disconnect()
if __name__ == "__main__":
main()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment