Skip to content
Snippets Groups Projects
Commit 02aa04d1 authored by Taya Snijder's avatar Taya Snijder
Browse files

changed dequeue to queue

parent 8a915624
Branches
Tags
1 merge request!50Resolve L2SS-188 "2021 05 27 branched from master udp recv sst client"
...@@ -2,7 +2,7 @@ from threading import Thread ...@@ -2,7 +2,7 @@ from threading import Thread
import socket import socket
from util.comms_client import CommClient from util.comms_client import CommClient
from collections import deque from queue import Queue
import numpy import numpy
import logging import logging
...@@ -45,15 +45,15 @@ class sst_client(CommClient): ...@@ -45,15 +45,15 @@ class sst_client(CommClient):
Function used to connect to the client. Function used to connect to the client.
""" """
if not self.connected: if not self.connected:
self.deque = deque(maxlen=1024) self.queue = Queue(maxsize=1024)
self.udp = UDP_Receiver(self.host, self.port, self.deque, self.streams, self.buffersize, self.timeout) self.udp = UDP_Receiver(self.host, self.port, self.queue, self.streams, self.buffersize, self.timeout)
self.sst = SST(self.deque, self.streams) self.sst = SST(self.queue, self.streams)
return super().connect() return super().connect()
def disconnect(self): def disconnect(self):
del self.udp del self.udp
del self.sst del self.sst
del self.deque del self.queue
return super().disconnect() return super().disconnect()
...@@ -103,10 +103,10 @@ class UDP_Receiver(Thread): ...@@ -103,10 +103,10 @@ class UDP_Receiver(Thread):
This class provides a small wrapper for the OPC ua read/write functions in order to better organise the code This class provides a small wrapper for the OPC ua read/write functions in order to better organise the code
""" """
def __init__(self, host, port, deque, streams, buffersize=9000, timeout=0.1): def __init__(self, host, port, queue, streams, buffersize=9000, timeout=0.1):
self.streams = streams self.streams = streams
self.deque = deque self.queue = queue
self.host = host self.host = host
self.port = port self.port = port
self.buffersize = buffersize self.buffersize = buffersize
...@@ -130,7 +130,7 @@ class UDP_Receiver(Thread): ...@@ -130,7 +130,7 @@ class UDP_Receiver(Thread):
try: try:
packet = [bytearray(self.buffersize)] packet = [bytearray(self.buffersize)]
self.sock.recvmsg_into(packet[0:self.buffersize]) self.sock.recvmsg_into(packet[0:self.buffersize])
self.deque.append(packet) self.queue.put_nowait(packet)
except socket.timeout: except socket.timeout:
pass pass
...@@ -141,10 +141,10 @@ class UDP_Receiver(Thread): ...@@ -141,10 +141,10 @@ class UDP_Receiver(Thread):
class SST(Thread): class SST(Thread):
def __init__(self, deque, streams): def __init__(self, queue, streams):
self.streams = streams self.streams = streams
self.deque = deque self.queue = queue
self.last_packet = None self.last_packet = None
self.parameters = { self.parameters = {
...@@ -160,17 +160,17 @@ class SST(Thread): ...@@ -160,17 +160,17 @@ class SST(Thread):
while True: while True:
if len(self.deque) > 0:
packet = self.deque.popleft()
if packet is None: packet = self.queue.get()
self.deque.clear()
break
self.process_packet(packet) if packet is None:
self.queue.clear()
break
self.process_packet(packet)
def __del__(self): def __del__(self):
self.deque.appendleft(None) self.queue.put(None)
self.join() self.join()
def process_packet(self, packet): def process_packet(self, packet):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment