Skip to content
Snippets Groups Projects
Commit 4410b601 authored by Paulus Kruger's avatar Paulus Kruger
Browse files

HBAT PPS update working

parent ead72f9e
No related branches found
No related tags found
No related merge requests found
Pipeline #26401 passed
RECVTR_HB.yaml
\ No newline at end of file
This diff is collapsed.
...@@ -26,11 +26,14 @@ class hba1(hwdev): ...@@ -26,11 +26,14 @@ class hba1(hwdev):
logging.warn("RPi GPIO module not found, PPS input disable!") logging.warn("RPi GPIO module not found, PPS input disable!")
def OPCUASetVariable(self,varid,var1,data,mask): def OPCUASetVariable(self,varid,var1,data,mask):
logging.info(str(("HBA set Var",var1['name'],data[:32*3],mask[:12]))) logging.info(str(("HBA set Var",var1['name'],len(data),len(mask),data[:32*3],mask[:12])))
self.conf['parentcls'].SetGetVarValueMask(var1,data,mask,getalso=False) self.conf['parentcls'].SetGetVarValueMask(var1,data,mask,getalso=False)
RCUmask=[(mask[i*3] | mask[i*3+1] | mask[i*3+2]) for i in range(32)]
# print(RCUmask)
#Wait for PPS if required else wait a bit #Wait for PPS if required else wait a bit
if var1.get('wait')=="PPS": if var1.get('wait')=="PPS":
# logging.info("HBA wait PPS") logging.info("HBA wait PPS")
self.conf['parentcls'].SetSwitchMask(RCUmask)
channel=GPIO.wait_for_edge(self.pin,GPIO.RISING,timeout=1500) channel=GPIO.wait_for_edge(self.pin,GPIO.RISING,timeout=1500)
self.conf['parentcls'].i2csetget(self.addr,[self.reg]) self.conf['parentcls'].i2csetget(self.addr,[self.reg])
if channel is None: if channel is None:
...@@ -54,12 +57,12 @@ class hba1(hwdev): ...@@ -54,12 +57,12 @@ class hba1(hwdev):
logging.debug("SetHba addr=0x%x reg=0x%x",addr,reg) logging.debug("SetHba addr=0x%x reg=0x%x",addr,reg)
I2Ccallback=self.conf['parentcls'].i2csetget I2Ccallback=self.conf['parentcls'].i2csetget
I2Ccallback(0x40,[0],read=1)#wakeup, do nothing I2Ccallback(0x40,[0],read=1)#wakeup, do nothing
sleep(0.01) #sleep(0.01)
I2Ccallback(addr,data[:16],reg=reg) I2Ccallback(addr,data[:16],reg=reg)
if len(data)>16: if len(data)>16:
sleep(0.01) #sleep(0.01)
I2Ccallback(addr,data[16:],reg=reg+16) I2Ccallback(addr,data[16:],reg=reg+16)
sleep(0.01) #sleep(0.01)
return True return True
def gethba(self,addr,reg,data): def gethba(self,addr,reg,data):
......
...@@ -37,6 +37,7 @@ class i2c_array(i2c_dev): ...@@ -37,6 +37,7 @@ class i2c_array(i2c_dev):
for RCUi in range(self.N): for RCUi in range(self.N):
if (mask[RCUi]) and (self.I2Cmask[RCUi]<=self.I2Ccut): if (mask[RCUi]) and (self.I2Cmask[RCUi]<=self.I2Ccut):
self.conf['parentcls'].AddNewChannel(self.RCU_Switch1[RCUi]); self.conf['parentcls'].AddNewChannel(self.RCU_Switch1[RCUi]);
self.RCUi=RCUi
self.conf['parentcls'].UpdateNewChannel(); self.conf['parentcls'].UpdateNewChannel();
def SetGetVarValueMask(self,var1,data,mask,getalso=True): def SetGetVarValueMask(self,var1,data,mask,getalso=True):
...@@ -180,7 +181,7 @@ class i2c_array(i2c_dev): ...@@ -180,7 +181,7 @@ class i2c_array(i2c_dev):
if self.disableI2ConError: self.I2Cmask[RCUi]+=1; if self.disableI2ConError: self.I2Cmask[RCUi]+=1;
self.I2Cmask[RCUi]=0; self.I2Cmask[RCUi]=0;
value1[RCUi]=value2[0] value1[RCUi]=value2[0]
if devreg.get('store'): if devreg.get('store')==True:
if mask[RCUi] and not(value2[0] is None): if mask[RCUi] and not(value2[0] is None):
storearray[RCUi]=value2[0] storearray[RCUi]=value2[0]
logging.debug(str(("Stored values:",self.getstorearray(devreg)))) logging.debug(str(("Stored values:",self.getstorearray(devreg))))
...@@ -234,7 +235,7 @@ class i2c_array(i2c_dev): ...@@ -234,7 +235,7 @@ class i2c_array(i2c_dev):
if not(callback(devreg['addr'],value2,reg=reg,read=rd)): return False; if not(callback(devreg['addr'],value2,reg=reg,read=rd)): return False;
if value2[0] is None: return False if value2[0] is None: return False
value[:]=value2[:]; value[:]=value2[:];
if devreg.get('store'): if devreg.get('store')==True:
storearray=self.getstorearray(devreg,len(value)); storearray=self.getstorearray(devreg,len(value));
storearray[self.RCUi]=(value[0] if len(value)==1 else value[:]) storearray[self.RCUi]=(value[0] if len(value)==1 else value[:])
logging.debug(str(("Store buffer",self.RCUi,storearray[self.RCUi]))) logging.debug(str(("Store buffer",self.RCUi,storearray[self.RCUi])))
......
...@@ -252,7 +252,7 @@ class yamlreader(yamlconfig): ...@@ -252,7 +252,7 @@ class yamlreader(yamlconfig):
data3=data2; data3=data2;
# print("OPCset",v['name'],data3[:64],mask) # print("OPCset",v['name'],data3[:64],mask)
logging.info(str(("OPCset",v['name'],data3[:64]))) logging.info(str(("OPCset",v['name'],data3[:64])))
if v['name']=='UNB2_FPGA_POL_ERAM_IOUT': logging.warn(str((data3,data2,mask,var1.get_value(),[hex(d) for d in data]))); # if v['name']=='UNB2_FPGA_POL_ERAM_IOUT': logging.warn(str((data3,data2,mask,var1.get_value(),[hex(d) for d in data])));
if len(data3)==1: data3=data3[0]; if len(data3)==1: data3=data3[0];
var1.set_value(data3); var1.set_value(data3);
......
...@@ -14,7 +14,7 @@ parser = argparse.ArgumentParser() ...@@ -14,7 +14,7 @@ parser = argparse.ArgumentParser()
parser.add_argument("-s", "--simulator", help="Do not connect to I2c, but simulate behaviour.", action="store_true") parser.add_argument("-s", "--simulator", help="Do not connect to I2c, but simulate behaviour.", action="store_true")
parser.add_argument("-t", "--test", help="Do not start OPC-UA server.", action="store_true") parser.add_argument("-t", "--test", help="Do not start OPC-UA server.", action="store_true")
parser.add_argument("-p", "--port", help="Port number to listen on [%(default)s].", type=int, default=4842) parser.add_argument("-p", "--port", help="Port number to listen on [%(default)s].", type=int, default=4842)
parser.add_argument("-l", "--loglevel", help="Log level [%(default)s].", type=str, choices=["DEBUG","INFO","WARNING","ERROR"], default="INFO") parser.add_argument("-l", "--loglevel", help="Log level [%(default)s].", type=str, choices=["DEBUG","INFO","WARNING","ERROR"], default="WARNING")
parser.add_argument("--loghost", help="Logstash host to which to forward logs [%(default)s]",type=str, default='') parser.add_argument("--loghost", help="Logstash host to which to forward logs [%(default)s]",type=str, default='')
parser.add_argument("-c", "--config", help="YAML config files, comma seperated [%(default)s]",type=str, default='RCU') parser.add_argument("-c", "--config", help="YAML config files, comma seperated [%(default)s]",type=str, default='RCU')
args = parser.parse_args() args = parser.parse_args()
......
...@@ -20,8 +20,14 @@ setRCUmask(RCUs) ...@@ -20,8 +20,14 @@ setRCUmask(RCUs)
# time.sleep(0.1) # time.sleep(0.1)
# print("Time=",x*0.1,"s") # print("Time=",x*0.1,"s")
#call_debug_method("ADC1_test") #call_debug_method("ADC0_test")
#call_debug_method("ADC1_test")
#call_debug_method("ADC2_test")
#call_debug_method("ADC_scramble_off") #call_debug_method("ADC_scramble_off")
call_debug_method("ADC_scramble_on") call_debug_method("ADC_dither_off")
#call_debug_method("ADC_dither_on")
#call_debug_method("ADC_scramble_on")
#call_debug_method("ADC_test_off") #call_debug_method("ADC_test_off")
#call_debug_method("ADC_DCcorrect_on")
#call_debug_method("RCU_DTH_shutdown")
disconnect(); disconnect();
...@@ -3,10 +3,11 @@ from test_common import * ...@@ -3,10 +3,11 @@ from test_common import *
#RCUs=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]; #RCUs=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];
#RCUs=[4,5]; #RCUs=[4,5];
#RCUs=[3,5,7,8,11]; #RCUs=[3,5,7,8,11];
RCUs=[2]; #RCUs=[0];
#RCUs=[0,2]; #RCUs=[0,1,2,3,4,5];
#RCUs=[4];
#RCUs=[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]; RCUs=[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];
connect() connect()
#8,12 #8,12
...@@ -20,11 +21,12 @@ setRCUmask(RCUs) ...@@ -20,11 +21,12 @@ setRCUmask(RCUs)
# time.sleep(0.1) # time.sleep(0.1)
# print("Time=",x*0.1,"s") # print("Time=",x*0.1,"s")
callmethod("RCU_off") #callmethod("RCU_off")
#wait() #wait()
#exit() #exit()
time.sleep(5) #time.sleep(5)
callmethod("RCU_on") callmethod("RCU_on")
#callmethod("RCU_on2") #highband
#wait() #wait()
#callmethod("RCU_on") #callmethod("RCU_on")
#time.sleep(1) #time.sleep(1)
......
...@@ -9,6 +9,7 @@ RCU=[0,1,2,3]; ...@@ -9,6 +9,7 @@ RCU=[0,1,2,3];
#RCU=[2] #RCU=[2]
LEDvalue=False; LEDvalue=False;
LEDvalue=True;
connect() connect()
setRCUmask(RCU) setRCUmask(RCU)
......
from test_common import * from test_common import *
name="RCU_PWR_ANT_on" name="RCU_PWR_ANT_on"
RCU=[2]; RCU=[0];
On=[True,True,True] On=[False,True,False]
#On=[False,False,False] #On=[False,False,False]
#Att=[10,10,10] #Att=[10,10,10]
#RCU=[1,2,3]; #RCU=[1,2,3];
......
...@@ -2,11 +2,12 @@ from test_common import * ...@@ -2,11 +2,12 @@ from test_common import *
connect() connect()
name="RCU_attenuator_dB" name="RCU_attenuator_dB"
RCU=[0]; #RCU=[0];
#RCU=[4]; RCU=[0,1,2,3];
#Att=[15,15,15] #Att=[15,15,15]
#RCU=[0,1,2,3,16,17,18,19]; #RCU=[0,1,2,3,16,17,18,19];
Att=[0,0,0] #Att=[4,4,4]
Att=[4,4,4]
setAntmask(RCU) setAntmask(RCU)
......
from test_common import * from test_common import *
name="RCU_band_select" #name="RCU_band_select"
name="RCU_hband_select"
#RCU=[0,1,2,3,4,5,8,12]; #RCU=[0,1,2,3,4,5,8,12];
#RCU=[0,1,2,3,4]; #RCU=[0,1,2,3,4];
RCU=[0]; RCU=[0,1,2,3];
#Att=[2,2,2] Att=[2,2,2] #30MHz
Att=[2,2,2] #Att=[1,1,1] #10
#Att=[4,4,4]
#Att=[4,4,4] #Att=[4,4,4]
#Att=[1+4,2,1] #Att=[1+4,2,1]
#Att=[2,1+4,1] #Att=[2,1+4,1]
......
...@@ -2,7 +2,7 @@ from test_common import * ...@@ -2,7 +2,7 @@ from test_common import *
name="RCU_DAB_select" name="RCU_DAB_select"
#RCU=[0,1,2,3,4,5,8,12]; #RCU=[0,1,2,3,4,5,8,12];
RCU=[0]; RCU=[0,1,2,3];
Att=[2,2,2] #2=DAB off Att=[2,2,2] #2=DAB off
#Att=[1,1,1] #1=DAB on #Att=[1,1,1] #1=DAB on
......
...@@ -18,7 +18,7 @@ for r in RCU: ...@@ -18,7 +18,7 @@ for r in RCU:
print("Att set:",att[:12]) print("Att set:",att[:12])
set_debug_value(name+"_RW",att) set_debug_value(name+"_RW",att)
time.sleep(0.5) time.sleep(1.0)
att=get_debug_value(name+"_R") att=get_debug_value(name+"_R")
print("Att new:",att[:12]) print("Att new:",att[:12])
......
...@@ -8,10 +8,11 @@ setRCUmask(RCU) ...@@ -8,10 +8,11 @@ setRCUmask(RCU)
#call_debug_method("DTH_off") #call_debug_method("DTH_off")
FRCU=0.05; FRCU=0.05;
FCH=0.425; FCH=0.425;
F0=101.0 #F0=101.0
F0=97.0
name="RCU_DTH_freq" name="RCU_DTH_freq"
if False: if True:
att=get_value(name+"_R") att=get_value(name+"_R")
print("freq old:",att[3*RCU[0]:3*RCU[-1]+3]) print("freq old:",att[3*RCU[0]:3*RCU[-1]+3])
...@@ -27,6 +28,6 @@ if False: ...@@ -27,6 +28,6 @@ if False:
print("freq new :",att[3*RCU[0]:3*RCU[-1]+3]) print("freq new :",att[3*RCU[0]:3*RCU[-1]+3])
#callmethod("RCU_DTH_on") #callmethod("RCU_DTH_on")
callmethod("RCU_DTH_off") #callmethod("RCU_DTH_off")
disconnect() disconnect()
\ No newline at end of file
RCU=0 RCU=1
HBAT=0 #HBAT on RCU 0..2 HBAT=0 #HBAT on RCU 0..2
#HBA=5; #HBA Element in HBAT #HBA=5; #HBA Element in HBAT
#BFX=11 #delay in 0.5ns #BFX=11 #delay in 0.5ns
...@@ -17,7 +17,7 @@ i=(RCU*3+HBAT)*32 ...@@ -17,7 +17,7 @@ i=(RCU*3+HBAT)*32
val,tp=get_value_type(name+"_R") val,tp=get_value_type(name+"_R")
print("old:",val[i:i+32]) print("old:",val[i:i+32])
val[i:i+32]=np.array(range(32))[::] val[i:i+32]=np.array(range(32))[::]*0
print("set:",val[i:i+32]) print("set:",val[i:i+32])
set_value(name+"_RW",val,tp) set_value(name+"_RW",val,tp)
......
...@@ -13,13 +13,13 @@ setAntmask([RCU],AntMask) ...@@ -13,13 +13,13 @@ setAntmask([RCU],AntMask)
i=(RCU*3+HBAT)*32+HBA*2 i=(RCU*3+HBAT)*32+HBA*2
val=get_value(name+"_R") val,tp=get_value_type(name+"_R")
print("old:",val[i:i+2]) print("old:",tp,val[i:i+2])
val[i]=BFX val[i]=BFX
val[i+1]=BFY val[i+1]=BFY
set_value(name+"_RW",val) set_value(name+"_RW",val,tp)
time.sleep(1) time.sleep(1)
val=get_value(name+"_R") val=get_value(name+"_R")
print("new:",val[i:i+2]) print("new:",val[i:i+2])
......
from test_common import * from test_common import *
connect() connect()
rate= 1 #seconds rate= 0 #seconds
name="RECVTR_monitor_rate_RW" name="RECVTR_monitor_rate_RW"
print("old:",get_value(name)) print("old:",get_value(name))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment