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

L2TS updates

parent ec06dd86
No related branches found
No related tags found
No related merge requests found
...@@ -94,9 +94,9 @@ device_registers: ...@@ -94,9 +94,9 @@ device_registers:
description: Input/Ouput port 2 description: Input/Ouput port 2
address: [1,3] address: [1,3]
store: True store: True
- name: DIR1 - name: POL1
address: 4 address: 4
- name: DIR2 - name: POL2
address: 5 address: 5
- name: ROM - name: ROM
...@@ -289,7 +289,7 @@ variables: ...@@ -289,7 +289,7 @@ variables:
driver: I2C_RCU driver: I2C_RCU
devreg: [IO1.GPIO1,IO1.GPIO2,IO2.GPIO1] devreg: [IO1.GPIO1,IO1.GPIO2,IO2.GPIO1]
bitoffset: [0,0,0] bitoffset: [0,0,0]
width: 6 width: 5
rw: rw rw: rw
dtype: uint8 dtype: uint8
dim: 96 dim: 96
...@@ -538,7 +538,7 @@ variables: ...@@ -538,7 +538,7 @@ variables:
dtype: boolean dtype: boolean
dim: 96 dim: 96
dim2: [3,32] dim2: [3,32]
monitor: true # monitor: true
read_parallel: true read_parallel: true
- name: RCU_ADC_sync - name: RCU_ADC_sync
...@@ -672,7 +672,7 @@ variables: ...@@ -672,7 +672,7 @@ variables:
dim: 3072 dim: 3072
dim2: [32,96] dim2: [32,96]
mask: ANT_mask mask: ANT_mask
wait: 100 #ms wait: 1000
- name: HBAT_PWR_LNA_on - name: HBAT_PWR_LNA_on
description: HBA frontend control description: HBA frontend control
driver: I2C_HBAT driver: I2C_HBAT
...@@ -684,7 +684,7 @@ variables: ...@@ -684,7 +684,7 @@ variables:
dim: 3072 dim: 3072
dim2: [32,96] dim2: [32,96]
mask: ANT_mask mask: ANT_mask
wait: 100 #ms wait: 1000
- name: HBAT_PWR_on - name: HBAT_PWR_on
description: HBA frontend control description: HBA frontend control
driver: I2C_HBAT driver: I2C_HBAT
...@@ -697,7 +697,7 @@ variables: ...@@ -697,7 +697,7 @@ variables:
dim: 3072 dim: 3072
dim2: [32,96] dim2: [32,96]
mask: ANT_mask mask: ANT_mask
wait: 100 #ms wait: 1000
methods: methods:
- name: RECVTR_Init #Called after startup to load. Should have all stored registers - name: RECVTR_Init #Called after startup to load. Should have all stored registers
...@@ -731,10 +731,18 @@ methods: ...@@ -731,10 +731,18 @@ methods:
- RECVTR_I2C_error: 0 - RECVTR_I2C_error: 0
- RCU_PCB_version: Update - RCU_PCB_version: Update
- IO2.CONF1: 0x80 #Pgood on 0x80 - IO2.CONF1: 0x80 #Pgood on 0x80
# - IO1.POL1: 0
# - IO1.POL2: 0
# - IO2.POL1: 0
# - IO2.POL2: 0
# - IO4.POL1: 0
# - IO4.POL2: 0
- IO2.GPIO1: 0x4A #0x40 Dig on, 0x0a =10dB att - IO2.GPIO1: 0x4A #0x40 Dig on, 0x0a =10dB att
- IO2.GPIO2: 0x52 #0x09 #Band0 (or 0x12 or 0x24) #LED green=on=low 0x40 - IO2.GPIO2: 0x52 #0x09 #Band0 (or 0x12 or 0x24) #LED green=on=low 0x40
# - IO3.GPIO1: 0xD5 #ADC_SDIO=high, clk=low, DTH_EN=high # - IO3.GPIO1: 0xD5 #ADC_SDIO=high, clk=low, DTH_EN=high
# - IO3.GPIO2: 0xC7 #ADC SC=high, DTH_SDA=high # - IO3.GPIO2: 0xC7 #ADC SC=high, DTH_SDA=high
- IO3.POL1: 0
- IO3.POL2: 0
- IO3.GPIO1: 0x15 #ADC_SDIO=high, clk=low, DTH_EN=low - IO3.GPIO1: 0x15 #ADC_SDIO=high, clk=low, DTH_EN=low
- IO3.GPIO2: 0x47 #ADC SC=high, DTH_SDA=high - IO3.GPIO2: 0x47 #ADC SC=high, DTH_SDA=high
- IO1.GPIO1: 0x0A #0x0a = 10dB att - IO1.GPIO1: 0x0A #0x0a = 10dB att
...@@ -742,8 +750,6 @@ methods: ...@@ -742,8 +750,6 @@ methods:
- IO2.CONF2: 0 - IO2.CONF2: 0
- IO3.CONF1: 0 - IO3.CONF1: 0
- IO3.CONF2: 0 - IO3.CONF2: 0
- IO3.DIR1: 0
- IO3.DIR2: 0
- IO1.CONF1: 0 - IO1.CONF1: 0
- IO1.CONF2: 0 - IO1.CONF2: 0
- IO4.CONF1: 0xC0 #pin 0x40, 0x80 not used - IO4.CONF1: 0xC0 #pin 0x40, 0x80 not used
......
...@@ -79,9 +79,9 @@ device_registers: ...@@ -79,9 +79,9 @@ device_registers:
description: Input/Ouput port 2 description: Input/Ouput port 2
address: [1,3] address: [1,3]
store: True store: True
- name: DIR1 - name: POL1
address: 4 address: 4
- name: DIR2 - name: POL2
address: 5 address: 5
- name: ROM - name: ROM
...@@ -243,7 +243,7 @@ variables: ...@@ -243,7 +243,7 @@ variables:
driver: I2C_RCU driver: I2C_RCU
devreg: [IO1.GPIO1,IO1.GPIO2,IO2.GPIO1] devreg: [IO1.GPIO1,IO1.GPIO2,IO2.GPIO1]
bitoffset: [0,0,0] bitoffset: [0,0,0]
width: 6 width: 5
rw: rw rw: rw
dtype: uint8 dtype: uint8
dim: 96 dim: 96
...@@ -635,11 +635,15 @@ methods: ...@@ -635,11 +635,15 @@ methods:
- IO3.GPIO2: 0x47 #ADC SC=high, DTH_SDA=high, DTH_EN=low - IO3.GPIO2: 0x47 #ADC SC=high, DTH_SDA=high, DTH_EN=low
- IO1.GPIO1: 0x0A #0x0a = 10dB att - IO1.GPIO1: 0x0A #0x0a = 10dB att
- IO1.GPIO2: 0x8A #0x80 Analog on, 0x0a=10dB att - IO1.GPIO2: 0x8A #0x80 Analog on, 0x0a=10dB att
# - IO1.POL1: 0
# - IO1.POL2: 0
# - IO2.POL1: 0
# - IO2.POL2: 0
- IO2.CONF2: 0 - IO2.CONF2: 0
- IO3.CONF1: 0 - IO3.CONF1: 0
- IO3.CONF2: 0 - IO3.CONF2: 0
- IO3.DIR1: 0 - IO3.POL1: 0
- IO3.DIR2: 0 - IO3.POL2: 0
- IO1.CONF1: 0 - IO1.CONF1: 0
- IO1.CONF2: 0 - IO1.CONF2: 0
# - RCU_GPIO1: Update # - RCU_GPIO1: Update
......
...@@ -31,18 +31,24 @@ class hba1(hwdev): ...@@ -31,18 +31,24 @@ class hba1(hwdev):
RCUmask=[(mask[i*3] | mask[i*3+1] | mask[i*3+2]) for i in range(32)] RCUmask=[(mask[i*3] | mask[i*3+1] | mask[i*3+2]) for i in range(32)]
# print(RCUmask) # print(RCUmask)
#Wait for PPS if required else wait a bit #Wait for PPS if required else wait a bit
self.conf['parentcls'].SetSwitchMask(RCUmask)
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:
logging.warning("PPS not received!"); logging.warning("PPS not received!");
sleep(1.0) sleep(2.0)
# return False; # return False;
elif var1.get('wait'): elif var1.get('wait'):
self.conf['parentcls'].i2csetget(self.addr,[self.reg])
logging.debug("Wait %i ms",var1.get('wait')) logging.debug("Wait %i ms",var1.get('wait'))
sleep(var1['wait']/1000.) try:
sleep(float(var1.get('wait'))/1000.)
except:
logging.warning("HBAT1 wait not a number"+str((var1.get('wait'))));
else:
self.conf['parentcls'].i2csetget(self.addr,[self.reg])
data,mask2=self.conf['parentcls'].GetVarValueMask(var1,mask) data,mask2=self.conf['parentcls'].GetVarValueMask(var1,mask)
Data=OPCUAset(varid,InstType.varSet,data.copy(),mask2.copy()) Data=OPCUAset(varid,InstType.varSet,data.copy(),mask2.copy())
return [Data] return [Data]
......
...@@ -223,11 +223,13 @@ class i2c_array(i2c_dev): ...@@ -223,11 +223,13 @@ class i2c_array(i2c_dev):
if value1[i0] is None: if value1[i0] is None:
#print(RCUi,'None') #print(RCUi,'None')
self.enablemask[RCUi]=False; self.enablemask[RCUi]=False;
mask[RCUi*Step+Vari]=False
continue; continue;
for x in range(Ncheck): for x in range(Ncheck):
#print(RCUi,ord(check_val[x]),value1[i0+x]) #print(RCUi,ord(check_val[x]),value1[i0+x])
if ord(check_val[x])!=value1[i0+x]: if ord(check_val[x])!=value1[i0+x]:
self.enablemask[RCUi]=False; self.enablemask[RCUi]=False;
mask[RCUi*Step+Vari]=False
logging.warn(str(("Identify RCUs:",check_val,self.enablemask))) logging.warn(str(("Identify RCUs:",check_val,self.enablemask)))
return value1,mask return value1,mask
......
...@@ -35,6 +35,18 @@ class yamlreader(yamlconfig): ...@@ -35,6 +35,18 @@ class yamlreader(yamlconfig):
if self.statusid is None: return if self.statusid is None: return
self.OPCset(self.statusid,[1],[]) self.OPCset(self.statusid,[1],[])
def GetBusy(self):
if self.statusid is None: return False
v=self.conf['variables'][self.statusid];
# self.OPCset(self.statusid,[1],[])
var1=v.get('OPCR',None)
if var1 is None: var1=v.get('OPCW',None)
if var1 is None:
logging.warn("OPC variable not found!!");
return;
data3=var1.get_value();
return data3
def AddVars(self,AddVarR,AddVarW): def AddVars(self,AddVarR,AddVarW):
for v in self.conf['variables']: for v in self.conf['variables']:
# print(v) # print(v)
...@@ -277,6 +289,10 @@ class yamlreader(yamlconfig): ...@@ -277,6 +289,10 @@ class yamlreader(yamlconfig):
self.timecount+=1; self.timecount+=1;
# if self.statusOPC is None: self.statusOPC=self.conf['variables'][self.statusid].get('OPCR') # if self.statusOPC is None: self.statusOPC=self.conf['variables'][self.statusid].get('OPCR')
while self.timecount>=T1: while self.timecount>=T1:
if self.GetBusy():
logging.info("Busy, try monitor again in 1s")
self.timecount=T1-10; #busy, so try again in 1s
return;
if not(self.statusOPC is None) and self.statusOPC.get_value(): return; if not(self.statusOPC is None) and self.statusOPC.get_value(): return;
if self.server.QoutLength()>0: return; if self.server.QoutLength()>0: return;
v=self.conf['variables'][self.monitorvarcnt]; v=self.conf['variables'][self.monitorvarcnt];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment