Skip to content
Snippets Groups Projects
Commit d1db0a4d authored by Jan David Mol's avatar Jan David Mol
Browse files

Merge branch 'L2SS-283-restruct-issues' into 'master'

Use new SST device, not old one.

Closes L2SS-283

See merge request !65
parents 1c858599 4cbf658a
No related branches found
No related tags found
1 merge request!65Use new SST device, not old one.
...@@ -7,7 +7,7 @@ import socket ...@@ -7,7 +7,7 @@ import socket
import time import time
from clients.comms_client import CommClient from clients.comms_client import CommClient
from devices.sdp_statistics.statistics_packet import SSTPacket from devices.sdp.statistics_packet import SSTPacket
logger = logging.getLogger() logger = logging.getLogger()
......
...@@ -11,6 +11,13 @@ ...@@ -11,6 +11,13 @@
""" """
# TODO(Corne): Remove sys.path.append hack once packaging is in place!
import os, sys
currentdir = os.path.dirname(os.path.realpath(__file__))
parentdir = os.path.dirname(currentdir)
parentdir = os.path.dirname(parentdir)
sys.path.append(parentdir)
# PyTango imports # PyTango imports
from tango.server import run from tango.server import run
from tango.server import device_property, attribute from tango.server import device_property, attribute
......
# -*- coding: utf-8 -*-
#
# This file is part of the Statistics project
#
#
#
# Distributed under the terms of the APACHE license.
# See LICENSE.txt for more info.
""" Statistics Device Server for LOFAR2.0
"""
# TODO(Corne): Remove sys.path.append hack once packaging is in place!
import os, sys
currentdir = os.path.dirname(os.path.realpath(__file__))
parentdir = os.path.dirname(currentdir)
parentdir = os.path.dirname(parentdir)
sys.path.append(parentdir)
# PyTango imports
from tango.server import run
from tango.server import device_property
# Additional import
from clients.sst_client import sst_client
from clients.attribute_wrapper import attribute_wrapper
from devices.hardware_device import hardware_device
from common.lofar_logging import device_logging_to_python, log_exceptions
import numpy
__all__ = ["SST", "main"]
@device_logging_to_python({"device": "SST"})
class SST(hardware_device):
# -----------------
# Device Properties
# -----------------
SST_Port = device_property(
dtype='DevUShort',
mandatory=True
)
# ----------
# Attributes
# ----------
# --------
# SST client annotation consists of a dict that contains the parameter name that needs to be read.
# 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
def configure_for_off(self):
""" user code here. is called when the state is set to OFF """
# Stop keep-alive
try:
self.sst_client.stop()
except Exception as e:
self.warn_stream("Exception while stopping sst_client in configure_for_off function: {}. Exception ignored".format(e))
@log_exceptions()
def configure_for_initialise(self):
""" user code here. is called when the sate is set to INIT """
"""Initialises the attributes and properties of the statistics device."""
self.sst_client = sst_client("0.0.0.0", self.SST_Port, self.Fault, self)
# map an access helper class
for i in self.attr_list():
try:
i.set_comm_client(self.sst_client)
except Exception as e:
# use the pass function instead of setting read/write fails
i.set_pass_func()
self.warn_stream("error while setting the sst attribute {} read/write function. {}. using pass function instead".format(i, e))
pass
self.sst_client.start()
# --------
# Commands
# --------
# ----------
# Run server
# ----------
def main(args=None, **kwargs):
"""Main function of the Statistics Device module."""
from common.lofar_logging import configure_logger
import logging
configure_logger(logging.getLogger())
return run((SST,), args=args, **kwargs)
if __name__ == '__main__':
main()
...@@ -37,5 +37,5 @@ services: ...@@ -37,5 +37,5 @@ services:
- --timeout=30 - --timeout=30
- --strict - --strict
- -- - --
- python3 -u ${TANGO_LOFAR_CONTAINER_DIR}/devices/devices/sst.py LTS -v - python3 -u ${TANGO_LOFAR_CONTAINER_DIR}/devices/devices/sdp/sst.py LTS -v
restart: on-failure restart: on-failure
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment