From e585da6b15244e069d5dc842c4c1b8276cfe6538 Mon Sep 17 00:00:00 2001
From: Paulus <kruger@astron.nl>
Date: Wed, 28 Apr 2021 02:30:43 +0100
Subject: [PATCH] debuged

---
 config/CLK.yaml         | 14 +++++++++++++-
 opcuaserv/yamlreader.py |  1 +
 testCLK.py              |  2 +-
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/config/CLK.yaml b/config/CLK.yaml
index 446fde4..affd55d 100644
--- a/config/CLK.yaml
+++ b/config/CLK.yaml
@@ -47,7 +47,6 @@ variables:
     driver: I2C_CLK
     rw:  variable #server RW variable, not linked to IO
     dtype: boolean
-    debug: True
 
   - name: CLK_Enable_PWR
     description: Power enabled
@@ -58,6 +57,7 @@ variables:
     bitoffset: 1
     width: 1
 
+
   - name: CLK_PLL_locked
     description: First status pin give lock status
     rw:  ro
@@ -72,6 +72,7 @@ variables:
     description: Second status pin give error
     rw:  ro
     dtype: boolean
+    monitor: true
     driver: I2C_CLK
     devreg:  IO1.GPIO1
     bitoffset: 3
@@ -108,8 +109,12 @@ methods:
     driver: I2C_CLK
     hidden: True
     instructions:   
+      - CLK_I2C_OK : 1
       - RCU_IO1_GPIO1 : Update
       - IO1.CONF1: Update
+      - CLK_Enable_PWR: Update
+      - CLK_PLL_locked: Update
+      - CLK_PLL_error: Update
 
   - name: CLK_on  
     driver: I2C_CLK
@@ -118,6 +123,13 @@ methods:
      - IO1.GPIO1: 0x42 #0100 0010 high:PWR enable, CS
      - CLK_Enable_PWR: Update
 
+  - name: CLK_off  
+    driver: I2C_CLK
+    instructions:   
+     - IO1.CONF1: 0x2C #0010 1100 PPS/PWR output, SCLK,CS,SDI
+     - IO1.GPIO1: 0x00 #all low
+     - CLK_Enable_PWR: Update
+
 #    - WAIT: 100         #ms to wait before checking lock
 #     - CLK_PLL_setup: 0
 #   - WAIT: 100         #ms to wait before checking lock
diff --git a/opcuaserv/yamlreader.py b/opcuaserv/yamlreader.py
index 9616cbc..c49107a 100644
--- a/opcuaserv/yamlreader.py
+++ b/opcuaserv/yamlreader.py
@@ -185,6 +185,7 @@ class yamlreader(yamlconfig):
            logging.warn("OPC variable not found!!");
            return;
         data3=var1.get_value();
+        if not(isinstance(data3,list)): data3=[data3];
 #        print("OPCset",v['name'],data3,mask)
         if mask: #Only update masked values
             step=len(data2)//len(mask)
diff --git a/testCLK.py b/testCLK.py
index 7ca0294..52db37d 100644
--- a/testCLK.py
+++ b/testCLK.py
@@ -42,7 +42,7 @@ RCU_I2C.readvar(var1,[])
 
 var1=RCU_conf.getvarid('CLK_PLL_locked_SPI')
 #var1=RCU_conf.getvarid('CLK_PLL_r3')
-RCU_I2C.readvar(var1,[])
+#RCU_I2C.readvar(var1,[])
 
 
 #var1=RCU_conf.getmethodid('CLK_on');
-- 
GitLab