Skip to content
Snippets Groups Projects
Commit b086a4fa authored by Stefano Di Frischia's avatar Stefano Di Frischia
Browse files

Merge branch 'L2SS-231-Add_device_for_random_numbers' into 'master'

L2SS-231: add a device with 20 attributes that generate random numnbers on read

Closes L2SS-231

See merge request !47
parents 0825d642 8b615f61
No related branches found
No related tags found
1 merge request!47L2SS-231: add a device with 20 attributes that generate random numnbers on read
......@@ -427,55 +427,59 @@
}
},
"RandomData": {
"CS998": {
"LTS": {
"RandomData": {
"computation/random/1": {
"LTS/RandomData/1": {
"properties": {
"polled_attr": [
"rnd1",
"100",
"1000",
"rnd2",
"100",
"1000",
"rnd3",
"100",
"1000",
"rnd4",
"100",
"1000",
"rnd5",
"100",
"1000",
"rnd6",
"100",
"1000",
"rnd7",
"100",
"1000",
"rnd8",
"100",
"1000",
"rnd9",
"100",
"1000",
"rnd10",
"100",
"1000",
"rnd11",
"100",
"1000",
"rnd12",
"100",
"1000",
"rnd13",
"100",
"1000",
"rnd14",
"100",
"1000",
"rnd15",
"100",
"1000",
"rnd16",
"100",
"1000",
"rnd17",
"100",
"1000",
"rnd18",
"100",
"1000",
"rnd19",
"100",
"1000",
"rnd20",
"100"
"1000",
"state",
"1000",
"status",
"1000"
]
}
},
"computation/random/2": {
"LTS/RandomData/2": {
"properties": {
"polled_attr": [
"rnd1",
......
# -*- coding: utf-8 -*-
#
# This file is part of the LOFAR2.0 project
#
#
#
# Distributed under the terms of the APACHE license.
# See LICENSE.txt for more info.
# PyTango imports
from tango import DevState
from tango.server import run, Device, attribute, command
from numpy import random
__all__ = ["RandomData", "main"]
class RandomData(Device):
"""
Random data monitor point device
"""
def read(self):
return random.random()
# Attributes
rnd1 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd2 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd3 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd4 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd5 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd6 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd7 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd8 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd9 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd10 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd11 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd12 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd13 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd14 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd15 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd16 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd17 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd18 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd19 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
rnd20 = attribute(
dtype = 'DevDouble',
polling_period = 1000,
period = 1000,
rel_change = 0.1,
abs_change = 0.1,
archive_period = 1000,
archive_rel_change = 0.1,
archive_abs_change = 0.1,
max_value = 1.0,
min_value = 0.0,
max_alarm = 1.0,
min_alarm = 0.99,
max_warning = 0.99,
min_warning = 0.98,
fget = read,
)
# General methods
def init_device(self):
"""
Initialises the attributes and properties of the RandomData device.
"""
Device.init_device(self)
self.set_state(DevState.OFF)
self.rnd1.set_data_ready_event(True)
self.set_change_event("rnd1", True, True)
self.set_archive_event("rnd1", True, True)
self.rnd2.set_data_ready_event(True)
self.set_change_event("rnd2", True, True)
self.set_archive_event("rnd2", True, True)
self.rnd3.set_data_ready_event(True)
self.set_change_event("rnd3", True, True)
self.set_archive_event("rnd3", True, True)
self.rnd4.set_data_ready_event(True)
self.set_change_event("rnd4", True, True)
self.set_archive_event("rnd4", True, True)
self.rnd5.set_data_ready_event(True)
self.set_change_event("rnd5", True, True)
self.set_archive_event("rnd5", True, True)
self.rnd6.set_data_ready_event(True)
self.set_change_event("rnd6", True, True)
self.set_archive_event("rnd6", True, True)
self.rnd7.set_data_ready_event(True)
self.set_change_event("rnd7", True, True)
self.set_archive_event("rnd7", True, True)
self.rnd8.set_data_ready_event(True)
self.set_change_event("rnd8", True, True)
self.set_archive_event("rnd8", True, True)
self.rnd9.set_data_ready_event(True)
self.set_change_event("rnd9", True, True)
self.set_archive_event("rnd9", True, True)
self.rnd10.set_data_ready_event(True)
self.set_change_event("rnd10", True, True)
self.set_archive_event("rnd10", True, True)
self.rnd11.set_data_ready_event(True)
self.set_change_event("rnd11", True, True)
self.set_archive_event("rnd11", True, True)
self.rnd12.set_data_ready_event(True)
self.set_change_event("rnd12", True, True)
self.set_archive_event("rnd12", True, True)
self.rnd13.set_data_ready_event(True)
self.set_change_event("rnd13", True, True)
self.set_archive_event("rnd13", True, True)
self.rnd14.set_data_ready_event(True)
self.set_change_event("rnd14", True, True)
self.set_archive_event("rnd14", True, True)
self.rnd15.set_data_ready_event(True)
self.set_change_event("rnd15", True, True)
self.set_archive_event("rnd15", True, True)
self.rnd16.set_data_ready_event(True)
self.set_change_event("rnd16", True, True)
self.set_archive_event("rnd16", True, True)
self.rnd17.set_data_ready_event(True)
self.set_change_event("rnd17", True, True)
self.set_archive_event("rnd17", True, True)
self.rnd18.set_data_ready_event(True)
self.set_change_event("rnd18", True, True)
self.set_archive_event("rnd18", True, True)
self.rnd19.set_data_ready_event(True)
self.set_change_event("rnd19", True, True)
self.set_archive_event("rnd19", True, True)
self.rnd20.set_data_ready_event(True)
self.set_change_event("rnd20", True, True)
self.set_archive_event("rnd20", True, True)
self.set_state(DevState.ON)
def delete_device(self):
self.set_state(DevState.OFF)
def main(args = None, **kwargs):
"""
Main function of the RandomData module.
"""
return run((RandomData,), args = args, **kwargs)
if __name__ == '__main__':
main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment