Commit 48460808 authored by yogesh.m's avatar yogesh.m

update

parent f0cb915e
...@@ -16,6 +16,16 @@ class asyncua_server(): ...@@ -16,6 +16,16 @@ class asyncua_server():
self.server=None self.server=None
self.idx=None self.idx=None
async def delete_all_objects(self):
root_nodes=await self.server.get_root_node().get_children()
obj_nodes=await root_nodes[0].get_children()
for node in obj_nodes:
if("ns=" in str(node)):
sub_obj = await self.server.get_node(node).get_children()
for del_node in sub_obj:
await self.server.delete_nodes([del_node])
await self.server.delete_nodes([node])
async def add_object(self,obj,hierarchy): async def add_object(self,obj,hierarchy):
if(hierarchy[obj]["name"]=="String"): if(hierarchy[obj]["name"]=="String"):
var_obj= await self.server.nodes.objects.add_folder(self.idx,obj ) var_obj= await self.server.nodes.objects.add_folder(self.idx,obj )
...@@ -31,7 +41,7 @@ class asyncua_server(): ...@@ -31,7 +41,7 @@ class asyncua_server():
await self.server.nodes.objects.add_folder(self.idx, obj) await self.server.nodes.objects.add_folder(self.idx, obj)
async def add_variable(self,obj,var): async def add_variable(self,obj,var):
var= await obj.add_variable(self.idx,var, 11) var = await obj.add_variable(self.idx,var, 11)
await var.set_writable() await var.set_writable()
return var return var
...@@ -42,13 +52,12 @@ class asyncua_server(): ...@@ -42,13 +52,12 @@ class asyncua_server():
# set endpoint information # set endpoint information
url = url url = url
self.server.set_endpoint(url) self.server.set_endpoint(url)
root_nodes = await self.server.get_root_node().get_children()
obj_nodes = await root_nodes[0].get_children()
# create a new address space # create a new address space
uri = uri uri = uri
self.idx = await self.server.register_namespace(uri) self.idx = await self.server.register_namespace(uri)
await self.server.start() await self.server.start()
obj = await self.server.nodes.objects.add_folder(self.idx,"myobj" )
var = await obj.add_variable(self.idx,"myvar",0)
await var.set_writable()
try: try:
# keep the server running until interrupted # keep the server running until interrupted
while True: while True:
...@@ -67,7 +76,8 @@ def hash_receive(): ...@@ -67,7 +76,8 @@ def hash_receive():
bytesAddressPair = UDPServerSocket.recvfrom(bufferSize) bytesAddressPair = UDPServerSocket.recvfrom(bufferSize)
message = bytesAddressPair[0] message = bytesAddressPair[0]
hierarchy=pickle.loads(message) hierarchy=pickle.loads(message)
if(prev_hash!=hierarchy["hash"]): if(prev_hash!=hierarchy["hash"] and asr.idx):
asyncio.run(asr.delete_all_objects())
for object in hierarchy: for object in hierarchy:
if(object!="hash"): if(object!="hash"):
display_name=object display_name=object
......
...@@ -26,8 +26,7 @@ UDPServerSocket.bind((localIP, localPort)) ...@@ -26,8 +26,7 @@ UDPServerSocket.bind((localIP, localPort))
print("UDP server up and listening") print("UDP server up and listening")
t1=threading.Thread(target=st,args=()) t1=threading.Thread(target=st,args=())
t1.start() t1.start()
sleep(30) sleep(5)
print("here")
opua=opcua_pack() opua=opcua_pack()
sock = opua.connect("opc.tcp://2.2.2.5:53531/myopc/free") sock = opua.connect("opc.tcp://2.2.2.5:53531/myopc/free")
...@@ -35,6 +34,4 @@ while (True): ...@@ -35,6 +34,4 @@ while (True):
bytesAddressPair = UDPServerSocket.recvfrom(bufferSize) bytesAddressPair = UDPServerSocket.recvfrom(bufferSize)
message = bytesAddressPair[0] message = bytesAddressPair[0]
datatype,value,ns,nodeid = message.decode().split("&") datatype,value,ns,nodeid = message.decode().split("&")
if("int" in datatype):
print(value)
opua.write_opcua_value(sock,ns,nodeid, value,datatype) opua.write_opcua_value(sock,ns,nodeid, value,datatype)
\ No newline at end of file
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