From ba719de9169a76763a2493f92e3e1ab88898d9ef Mon Sep 17 00:00:00 2001
From: kruger <kruger@astron.nl>
Date: Sun, 23 May 2021 22:11:37 +0200
Subject: [PATCH] Unit conversion, Kelvin2Degrees, period2RMS added

---
 config/APSCTTR.yaml     | 1 +
 config/APSPUTR.yaml     | 2 +-
 config/RECVTR.yaml      | 1 +
 opcuaserv/yamlreader.py | 4 ++++
 scripts/Ant_Pwr.py      | 2 +-
 scripts/CLK.py          | 4 ++--
 scripts/RCUupdate.py    | 2 +-
 scripts/SetMonitor.py   | 6 +++---
 8 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/config/APSCTTR.yaml b/config/APSCTTR.yaml
index 13a38f8..ac79008 100644
--- a/config/APSCTTR.yaml
+++ b/config/APSCTTR.yaml
@@ -243,6 +243,7 @@ variables:
     devreg:  VSENSE.Temp
     width: 23
     scale: 3.8265e-3
+    convert_unit: Kelvin2Celsius
     rw:  ro
     dtype: double
     monitor: true
diff --git a/config/APSPUTR.yaml b/config/APSPUTR.yaml
index 25d5f3b..ed17c84 100644
--- a/config/APSPUTR.yaml
+++ b/config/APSPUTR.yaml
@@ -103,7 +103,7 @@ variables:
     rw:  ro
     dtype: double
     scale: 1.52588e-5 #FAN_TACHS/TACH_COUNT_FREQ/TACH_PERIODS = 1/8192/16 *2
-#    monitor: true
+    monitor: true
 
 methods:
   - name: APSPUTR_Init #Called after startup to load. Should have all stored registers  
diff --git a/config/RECVTR.yaml b/config/RECVTR.yaml
index 48df945..58cdd33 100644
--- a/config/RECVTR.yaml
+++ b/config/RECVTR.yaml
@@ -304,6 +304,7 @@ variables:
      devreg:  AN.Temp
      width: 23
      scale: 4.21e-3
+     convert_unit: Kelvin2Celsius
      rw:  ro
      dtype: double
      dim: 32
diff --git a/opcuaserv/yamlreader.py b/opcuaserv/yamlreader.py
index 1ee0836..6be8749 100644
--- a/opcuaserv/yamlreader.py
+++ b/opcuaserv/yamlreader.py
@@ -4,6 +4,7 @@ import time
 from yamlconfig import *
 import logging
 from .smbus_float import *
+from .convert_unit import *
 def bytes2int(bts):
    x=0;
    for b in bts:
@@ -196,6 +197,9 @@ class yamlreader(yamlconfig):
                 else:
                     scale=float(scale)
                     data2=[(d*scale) for d in data2]
+                convert=v.get("convert_unit")
+                if convert: data2=[eval(convert)(d) for d in data2]
+
         var1=v.get('OPCR')
         if not(var1): var1=v.get('OPCW')
         if not(var1):
diff --git a/scripts/Ant_Pwr.py b/scripts/Ant_Pwr.py
index fc382be..3b3b0e9 100644
--- a/scripts/Ant_Pwr.py
+++ b/scripts/Ant_Pwr.py
@@ -1,7 +1,7 @@
 from test_common import *
 
 name="RCU_PWR_ANT_on"
-RCU=[0,1,2,3];
+RCU=[2];
 On=[True,True,True]
 #On=[False,False,False]
 #Att=[10,10,10]
diff --git a/scripts/CLK.py b/scripts/CLK.py
index b0ff702..3d23ffb 100644
--- a/scripts/CLK.py
+++ b/scripts/CLK.py
@@ -3,8 +3,8 @@ connect("opc.tcp://localhost:4843/")
 
 #callmethod("APSCT_off")
 #time.sleep(1)
-#callmethod("APSCT_200MHz_on")
-callmethod("APSCT_160MHz_on")
+callmethod("APSCT_200MHz_on")
+#callmethod("APSCT_160MHz_on")
 for x in range(10):
   busy=get_value("APSCTTR_translator_busy_R")
   print(busy)
diff --git a/scripts/RCUupdate.py b/scripts/RCUupdate.py
index 6182e25..6f314be 100644
--- a/scripts/RCUupdate.py
+++ b/scripts/RCUupdate.py
@@ -1,5 +1,5 @@
 from test_common import *
-
+connect()
 RCUs=[0,1,2,3];
 setRCUmask(RCUs)
 #for RCU in RCUs: 
diff --git a/scripts/SetMonitor.py b/scripts/SetMonitor.py
index 76f9d2d..d90e1a4 100644
--- a/scripts/SetMonitor.py
+++ b/scripts/SetMonitor.py
@@ -1,7 +1,7 @@
 from test_common import *
-
-rate= 0 #seconds
-name="RCU_monitor_rate_RW"
+connect()
+rate= 30 #seconds
+name="RECVTR_monitor_rate_RW"
 
 print("old:",get_value(name))
 set_value(name,rate)
-- 
GitLab