diff --git a/devices/Statistics.py b/devices/Statistics.py index 6b56b1aaac5dca54b02f0bc9e91b035da2a89f83..b397898e5b76c026dcd82ae18b014374062800aa 100644 --- a/devices/Statistics.py +++ b/devices/Statistics.py @@ -49,6 +49,7 @@ class SST(hardware_device): # Example: comms_annotation={"parameter": "this_value_R"} packet_count_R = attribute_wrapper(comms_annotation={"parameter": "packet_count_R"}, datatype=numpy.int64) last_packet_timestamp_R = attribute_wrapper(comms_annotation={"parameter": "last_packet_timestamp_R"}, datatype=numpy.int64) + queue_percentage_used_R = attribute_wrapper(comms_annotation={"parameter": "queue_percentage_used_R"}, datatype=numpy.double) # -------- # overloaded functions diff --git a/devices/clients/sst_client.py b/devices/clients/sst_client.py index 4692b5d071772dddd4d01849e15a747a4a682f6b..407dabde32845b9c16d62019a13012dda2be0676 100644 --- a/devices/clients/sst_client.py +++ b/devices/clients/sst_client.py @@ -1,3 +1,4 @@ +import queue from threading import Thread import socket from util.comms_client import CommClient @@ -134,6 +135,8 @@ class UDP_Receiver(Thread): except socket.timeout: pass + except queue.Full: + pass def __del__(self): self.stream_on = False @@ -149,7 +152,8 @@ class SST(Thread): self.parameters = { "packet_count_R": numpy.int64(0), - "last_packet_timestamp_R": numpy.int64(0) + "last_packet_timestamp_R": numpy.int64(0), + "queue_percentage_used_R": numpy.double(100 * self.queue.qsize() / self.queue.maxsize) } super().__init__() @@ -174,3 +178,4 @@ class SST(Thread): def process_packet(self, packet): self.parameters["packet_count_R"] += 1 self.parameters["last_packet_timestamp_R"] = numpy.int64(int(time.time())) + self.parameters["queue_percentage_used_R"] = numpy.double(100 * self.queue.qsize() / self.queue.maxsize) \ No newline at end of file diff --git a/jupyter-notebooks/test_device.ipynb b/jupyter-notebooks/test_device.ipynb index b404b04c7717a607882884c56dfe446adecd7272..69a441862a20d1d0d8f53bf2cf6a68a3dc7c9218 100644 --- a/jupyter-notebooks/test_device.ipynb +++ b/jupyter-notebooks/test_device.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 30, "id": "waiting-chance", "metadata": {}, "outputs": [], @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 31, "id": "moving-alexandria", "metadata": {}, "outputs": [], @@ -23,7 +23,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 32, "id": "ranking-aluminum", "metadata": {}, "outputs": [ @@ -51,7 +51,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 60, "id": "beneficial-evidence", "metadata": {}, "outputs": [ @@ -59,10 +59,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "packet_count_R [80]\n", - "last_packet_timestamp_R [1623239037]\n", - "State <function __get_command_func.<locals>.f at 0x7fcb20e510d0>\n", - "Status <function __get_command_func.<locals>.f at 0x7fcb20e510d0>\n" + "packet_count_R [139917203]\n", + "last_packet_timestamp_R [1623248251]\n", + "queue_percentage_used_R [100.]\n", + "State <function __get_command_func.<locals>.f at 0x7fcb20e68bf8>\n", + "Status <function __get_command_func.<locals>.f at 0x7fcb20e68bf8>\n" ] } ],