diff --git a/pypcc2.py b/pypcc2.py index 79dd46a37b44af10e60c80d700b5cbb6cd68d968..13ddf412889d0084a022019093a358d5c738ed68 100644 --- a/pypcc2.py +++ b/pypcc2.py @@ -46,7 +46,7 @@ SW1=I2Cswitch1.I2Cswitch1(I2C.I2C1server) SW0=I2Cswitch1.I2Cswitch0(None) #Dummy switch as their is no switch on LTS RCU=RCU.RCU1(NRCU,I2C.I2C1server,SW1.SetChannel) -RCU.AddVars(Q1,opcuaserv.AddVarR,opcuaserv.AddVarW) +RCU.AddVars(Q1,opcuaserv.AddVarR,opcuaserv.AddVarW,opcuaserv.AddVar) RCU.AddMethod(Q1,opcuaserv.Addmethod) RCU.load() #Load current register values from HW diff --git a/rcu/RCU.py b/rcu/RCU.py index 9b8d41c4758a5a9f38b3db155ef72d2daa8da0b4..901a1581f24b2dd9c192f6eb5a9c6971328a894e 100644 --- a/rcu/RCU.py +++ b/rcu/RCU.py @@ -372,7 +372,9 @@ class RCU1(): while True: item = Q1.get() if item is None: break; + self.statevar.set_value("busy"); self.SetVar(item) + if Q1.qsize()==0: self.statevar.set_value("ready"); logging.info("End RCU thread") RCUthread1 = threading.Thread(target=RCUthread, args=(Q1,)) @@ -386,7 +388,8 @@ class RCU1(): Inst1=Vars.Instr(Vars.DevType.VarUpdate,Vars.RCU_ADC_lock,96,[0]*96) Q1.put(Inst1) return - def AddVars(self,Q1,AddVarR,AddVarW): + def AddVars(self,Q1,AddVarR,AddVarW,AddVar): + self.statevar=AddVar("RCU_state_R","busy") for v in Vars.OPC_devvars: dim1=Vars.RCU_MPaddr.nI2C*Vars.RCU_MPaddr.nSwitch*v.nVars dim2=Vars.RCU_MPaddr.nI2C*Vars.RCU_MPaddr.nSwitch*v.size diff --git a/rcu/Vars.py b/rcu/Vars.py index 8857161b55c62f80bae6dc4ec92a57ac1e928868..b16db9e85c324f56cca37b79efaaab888f4b84da 100644 --- a/rcu/Vars.py +++ b/rcu/Vars.py @@ -36,13 +36,17 @@ RCU_Dth1_freq=Var2dev("RCU_dth1_freq",RCUmod,DevType.I2Cbb,RCU_Dth1_Freq,32,0,1e RCU_dth_freq=VarArray("RCU_dither_freq",3,[RCU_Dth1_freq,RCU_Dth2_freq,RCU_Dth3_freq],RW.ReadWrite,datatype.dfloat,3,None,None) HBA1_Delay=Var2dev("",RCUmod,DevType.HBA1,RCU_HBA1,5,2,1) -HBA1_led =Var2dev("",RCUmod,DevType.HBA1,RCU_HBA1,1,0,1) HBA2_Delay=Var2dev("",RCUmod,DevType.HBA1,RCU_HBA2,5,2,1) -HBA2_led =Var2dev("",RCUmod,DevType.HBA1,RCU_HBA2,1,0,1) HBA3_Delay=Var2dev("",RCUmod,DevType.HBA1,RCU_HBA3,5,2,1) +HBA1_led =Var2dev("",RCUmod,DevType.HBA1,RCU_HBA1,1,0,1) +HBA2_led =Var2dev("",RCUmod,DevType.HBA1,RCU_HBA2,1,0,1) HBA3_led =Var2dev("",RCUmod,DevType.HBA1,RCU_HBA3,1,0,1) +HBA1_pwr =Var2dev("",RCUmod,DevType.HBA1,RCU_HBA1,1,7,1) +HBA2_pwr =Var2dev("",RCUmod,DevType.HBA1,RCU_HBA2,1,7,1) +HBA3_pwr =Var2dev("",RCUmod,DevType.HBA1,RCU_HBA3,1,7,1) HBA_Delay=VarArray("HBA_element_beamformer_delays",3,[HBA1_Delay,HBA2_Delay,HBA3_Delay],RW.ReadWrite,datatype.dInt,96,None,None) HBA_led =VarArray("HBA_element_led" ,3,[HBA1_led ,HBA2_led ,HBA3_led ],RW.ReadWrite,datatype.dInt,96,None,None) +HBA_pwr =VarArray("HBA_element_pwr" ,3,[HBA1_pwr ,HBA2_pwr ,HBA3_pwr ],RW.ReadWrite,datatype.dInt,96,None,None) #RCU_ID0=Var2dev("",RCUmod,DevType.I2C,RCU_ROM,8,0,1) #RCU_ID=VarArray("RCU_ID",1,[RCU_ID0],RW.ReadOnly,datatype.dInt,4,None,None) @@ -105,7 +109,7 @@ RCU_OUT2=VarArray("RCU_OUT2",3,[RCU_IO1_2,RCU_IO2_2,RCU_IO3_2],RW.ReadOnly,datat #OPC_devvars=[RCU_mask,Ant_mask,RCU_att,RCU_band,RCU_temp,RCU_pwrd,RCU_LED,RCU_ID,RCU_VER,HBA_Delay,HBA_led] #OPC_devvars=[RCU_mask,Ant_mask,RCU_att,RCU_band,RCU_temp,RCU_pwrd,RCU_LED,RCU_ID,RCU_VER,HBA_Delay,HBA_led,RCU_uCV_ID] -OPC_devvars=[RCU_mask,Ant_mask,RCU_att,RCU_band,RCU_temp,RCU_pwrd,RCU_LED,RCU_ADC_lock,RCU_ADC_SYNC,RCU_ADC_JESD,RCU_ADC_CML,RCU_OUT1,RCU_OUT2,RCU_ID,RCU_VER,HBA_Delay,HBA_led,RCU_uCV_ID] +OPC_devvars=[RCU_mask,Ant_mask,RCU_att,RCU_band,RCU_temp,RCU_pwrd,RCU_LED,RCU_ADC_lock,RCU_ADC_SYNC,RCU_ADC_JESD,RCU_ADC_CML,RCU_OUT1,RCU_OUT2,RCU_ID,RCU_VER,HBA_Delay,HBA_led,HBA_pwr,RCU_uCV_ID] #OPC_devvars=[RCU_mask,Ant_mask,RCU_att,RCU_band,RCU_temp,RCU_pwrd,RCU_LED,RCU_uCV_ID,RCU_uCV_spd0,RCU_uCV_RXspd1,RCU_uCV_RXspd2,RCU_uCV_TXspd1,RCU_uCV_debug ]#,HBA1_Pwr]#,RCU_CNF1,RCU_CNF2] #Instr=namedtuple("DevInstr","type dev nvalue value") #Instrs=namedtuple("Instr","name ninstr instr") diff --git a/scripts/SetHBAT_BF.py b/scripts/SetHBAT_BF.py index ada75d2c9b4b86e5501ff5f69383d0c586233ca6..8c934f5c29931894c9de78a6c5a1c94ee3d8627b 100644 --- a/scripts/SetHBAT_BF.py +++ b/scripts/SetHBAT_BF.py @@ -16,7 +16,7 @@ i=(RCU*3+HBAT)*32 val=get_value(name+"_R") print("old:",val[i:i+32]) -val[i:i+32]=np.array(range(32))[::] +val[i:i+32]=np.array(range(32))[::]*0 set_value(name+"_RW",val) time.sleep(1) diff --git a/scripts/SetHBAT_pwr.py b/scripts/SetHBAT_pwr.py new file mode 100644 index 0000000000000000000000000000000000000000..3b5a105ccfdd86c8468b6cf37f8bc0f53207022e --- /dev/null +++ b/scripts/SetHBAT_pwr.py @@ -0,0 +1,40 @@ +RCU=3 +HBAT=1 #HBAT on RCU 0..2 +#HBA=5; #HBA Element in HBAT +#BFX=11 #delay in 0.5ns +#BFY=BFX+1 +name="HBA_element_pwr" + +from test_common import * +import numpy as np + +AntMask=[(x==HBAT) for x in range(3)] +setAntmask([RCU],AntMask) + +i=(RCU*3+HBAT)*32 + +val=get_value(name+"_R") +print("old:",val[i:i+32]) + +val[i:i+32]=np.ones([32]) +#val[i:i+32]=np.zeros([32]) + +set_value(name+"_RW",val) + +#time.sleep(0.5) +#busy=get_value("RCU_state_R") +#print(busy) +for x in range(10): + busy=get_value("RCU_state_R") + print(busy) + if (busy=='busy'): break; + time.sleep(0.05) +while not(busy=='ready'): + busy=get_value("RCU_state_R") + print(busy) + time.sleep(0.05) + +val=get_value(name+"_R") +print("new:",val[i:i+32]) + +disconnect()