From 55090d60f44acd0d4279c21fa4461002c5960d63 Mon Sep 17 00:00:00 2001 From: kruger <kruger@astron.nl> Date: Mon, 5 Sep 2022 09:52:11 +0000 Subject: [PATCH] update from LCU --- bin/sync.sh | 3 +++ bin/sync_all.sh | 3 +++ install.sh | 10 ++++++++++ pypcc/i2cserv/i2c_array.py | 25 ++++++++++++++++++++++--- 4 files changed, 38 insertions(+), 3 deletions(-) create mode 100755 bin/sync.sh create mode 100755 bin/sync_all.sh create mode 100755 install.sh diff --git a/bin/sync.sh b/bin/sync.sh new file mode 100755 index 0000000..cc2f93a --- /dev/null +++ b/bin/sync.sh @@ -0,0 +1,3 @@ +#!/bin/bash +rsync -avzh ~/pypcc pi@10.99.0.$1:. +ssh pi@10.99.0.$1 "cd pypcc;sh install.sh" \ No newline at end of file diff --git a/bin/sync_all.sh b/bin/sync_all.sh new file mode 100755 index 0000000..3b77da3 --- /dev/null +++ b/bin/sync_all.sh @@ -0,0 +1,3 @@ +#!/bin/bash +./sync.sh 100 +./sync.sh 101 diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..d93e7b4 --- /dev/null +++ b/install.sh @@ -0,0 +1,10 @@ +#!/bin/bash +sudo systemctl stop recvtr.service +sudo systemctl stop apscttr.service +sudo systemctl stop apsputr.service +sudo systemctl stop unb2tr.service +sudo python3 setup.py install +sudo systemctl start recvtr.service +sudo systemctl start apscttr.service +sudo systemctl start apsputr.service +sudo systemctl start unb2tr.service diff --git a/pypcc/i2cserv/i2c_array.py b/pypcc/i2cserv/i2c_array.py index 2f1d023..b2b31a2 100644 --- a/pypcc/i2cserv/i2c_array.py +++ b/pypcc/i2cserv/i2c_array.py @@ -144,8 +144,9 @@ class i2c_array(i2c_dev): if not(len(mask)==Step*self.N): print("Check mask length!",len(mask),Step,self.N); return; - else: - for x,enanbled in enumerate(self.enablemask): + else: + if not(var1.get('check_value')): + for x,enanbled in enumerate(self.enablemask): if enanbled: continue; for y in range(Step): mask[x*Step+y]=False; # mask[x*Step:(x+1)*Step]=False; @@ -186,8 +187,8 @@ class i2c_array(i2c_dev): res=self.GetVarValue(devreg,width,bitoffset,[],mode=3) #wait if needed # for Vari in range(Step): # else: - for RCUi in self.RCUorder: # for Vari in range(Step): + for RCUi in self.RCUorder: if not(mask[RCUi*Step+Vari]): continue i0=(RCUi*Step+ Vari)*Step2 i1=(RCUi*Step+(Vari+1))*Step2 @@ -209,6 +210,24 @@ class i2c_array(i2c_dev): continue; self.I2Cmask[RCUi]=0; value1[i0:i1]=value2 + if var1.get('check_value'): + check_val=var1.get('check_value') + Ncheck=len(check_val); + if Ncheck>Step2: Ncheck=Step2; + for Vari in range(Step): + for RCUi in self.RCUorder: + if not(mask[RCUi*Step+Vari]): continue + i0=(RCUi*Step+ Vari)*Step2 + i1=(RCUi*Step+(Vari+1))*Step2 + if value1[i0] is None: + #print(RCUi,'None') + self.enablemask[RCUi]=False; + continue; + for x in range(Ncheck): + #print(RCUi,ord(check_val[x]),value1[i0+x]) + if ord(check_val[x])!=value1[i0+x]: + self.enablemask[RCUi]=False; + logging.warn(str(("Identify RCUs:",check_val,self.enablemask))) return value1,mask def getstorearray(self,devreg,N=1): -- GitLab