Commit 26e0a8d7 authored by yogesh.m's avatar yogesh.m

update

parent 0c317886
......@@ -3,6 +3,7 @@ import pickle
from asyncua import ua, Server
import socket
import threading
from time import sleep
localIP = "2.2.2.5"
localPort = 20002
......@@ -15,9 +16,19 @@ class asyncua_server():
self.server=None
self.idx=None
async def add_object(self,obj):
print(self.idx,obj)
return await self.server.nodes.objects.add_object(self.idx,obj )
async def add_object(self,obj,hierarchy):
print(hierarchy[obj])
if(hierarchy[obj]["name"]=="String"):
var_obj= await self.server.nodes.objects.add_folder(self.idx,obj )
val_array=pickle.loads(hierarchy[obj]["obj"])
if(val_array["datatype"]==11):
var = await var_obj.add_variable(ua.NodeId(val_array["identifier"],3),val_array["node_name"], ua.NodeId(ua.ObjectIds.Double))
await var.set_writable()
if (val_array["datatype"] == 6):
var = await var_obj.add_variable(ua.NodeId(val_array["identifier"],3), val_array["node_name"], ua.NodeId(ua.ObjectIds.Int32))
await var.set_writable()
else:
await self.server.nodes.objects.add_folder(self.idx, obj)
async def add_variable(self,obj,var):
var= await obj.add_variable(self.idx,var, 11)
......@@ -50,16 +61,20 @@ asr = asyncua_server()
def hash_receive():
prev_hash = 0
sleep(5)
while (True):
bytesAddressPair = UDPServerSocket.recvfrom(bufferSize)
message = bytesAddressPair[0]
hierarchy=pickle.loads(message)
print(hierarchy["hash"])
if(prev_hash!=hierarchy["hash"]):
print("changed")
for object in hierarchy:
if(object!="hash"):
display_name=object
asyncio.run(asr.add_object(object,hierarchy))
prev_hash=hierarchy["hash"]
def st():
t1=threading.Thread(target=hash_receive)
t1.start()
asyncio.run(asr.start_server("opc.tcp://localhost:4840/myopc/free","http://klopc.com"))
asyncio.run(asr.start_server("opc.tcp://2.2.2.5:53531/myopc/free","http://klopc.com"))
......@@ -26,9 +26,10 @@ UDPServerSocket.bind((localIP, localPort))
print("UDP server up and listening")
t1=threading.Thread(target=st,args=())
t1.start()
sleep(10)
print("here")
opua=opcua_pack()
sock = opua.connect("opc.tcp://2.2.2.5:53530/OPCUA/SimulationServer")
sock = opua.connect("opc.tcp://2.2.2.5:53531/myopc/free")
while (True):
bytesAddressPair = UDPServerSocket.recvfrom(bufferSize)
......
......@@ -141,7 +141,7 @@ class opcua_pack():
DiscoveryProfileUri = binascii.unhexlify("ffffffff")
ArraySize = 0
ServerUri= binascii.unhexlify("ffffffff")
EndpointUrl= "opc.tcp://2.2.2.7:53530/OPCUA/SimulationServer"
EndpointUrl= "opc.tcp://2.2.2.5:53531/myopc/free"
EndpointUrllen= len(EndpointUrl.encode()).to_bytes(4,byteorder="little")
SessionName= "Pure Python Client Session1"
SessionNamelen=len(SessionName.encode()).to_bytes(4,byteorder="little")
......@@ -421,7 +421,7 @@ class opcua_pack():
return session
def connect(self,address):
server_address = ('2.2.2.5', 53530)
server_address = ('2.2.2.5', 53531)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(server_address)
message = self.helf(address)
......@@ -456,6 +456,6 @@ class opcua_pack():
if(datatype=="<class 'float'>"):
sock.sendall(self.write_request(self.SecureChannelId, self.TokenId, self.identifier_string, self.cs, int(ns), int(nodeid), float(val), datatype))
self.cs=self.cs+1
else:
elif(datatype=="<class 'int'>"):
sock.sendall(self.write_request(self.SecureChannelId, self.TokenId, self.identifier_string, self.cs, int(ns),int(nodeid),float(val), datatype))
self.cs=self.cs+1
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