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

changed dequeue to queue

parent 8a915624
No related branches found
No related tags found
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.
Finish editing this message first!
Please register or to comment