UDP driver altering data

Hi Al,

I just finished implementing and testing controlled, organized, supported global storage in Ignition.

It is called “gstore”, short for Global Storage. It provides a simple way to have and use global state in Ignition.

Global project state is stored in a global dictionary at pa.gstore. pa.gstore is global to each project. It can be used in Gateway scripts or client/designer scripts.

Here’s the code to use in your circumstance:

Put this code in a Gateway Startup Script:[code]def read_udp():
import socket
import binascii

UDP_IP = “192.168.1.250”
UDP_PORT = 5005

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
pa.gstore[“sock”] = sock
sock.bind((UDP_IP, UDP_PORT))

while True:
data, addr = sock.recvfrom(1024)
print “Received %s from %s” % (binascii.hexlify(data), addr)
system.tag.write("[default]udp_byte", data)

system.util.invokeAsynchronous(read_udp)[/code]
The only difference to your code is adding the socket to gstore.

Then add the following code to the Gateway Shutdown Script:pa.gstore["sock"].close()gstore has more functionality than this but I haven’t updated the documentation yet, but I will soon. If you want to use this and need any help let me know.

gstore is the newest capability in the PA Power Scripting Module.

Edit: getting rid of GStore: nickmudge.info/post/getting-rid-of-gstore
Use Python module level variables instead: nickmudge.info/post/python-modul … lient-tags

Best,