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

CCD update for testing

parent b403e92b
No related branches found
No related tags found
No related merge requests found
Pipeline #70436 failed
...@@ -9,9 +9,10 @@ then ...@@ -9,9 +9,10 @@ then
conffile="RECVTR_LB" conffile="RECVTR_LB"
fi fi
#CCD should not run
if [ $lmp_id -eq 10 ] || [ $lmp_id -eq 21 ] if [ $lmp_id -eq 10 ] || [ $lmp_id -eq 21 ]
then then
conffile="CCDTR" conffile="None"
fi fi
echo $lmp_id,$conffile echo $lmp_id,$conffile
......
version: "1.0"
description: "1234"
drivers:
- name: I2C
type: i2c
parameters: [1] #I2C port number
- name: I2C_CLK
type: i2c_dev #I2C devices
parent: I2C
status: CCDTR_I2C_error
#This is the I2C devices in the RCU
device_registers:
- name: ROM
description: 24AA02UIDT
address: 0x50
driver: I2C_CLK
registers:
- name: ID
description: Random
address: 0xfc
- name: Version
description: Set in production
address: 0
- name: Serial
address: 0x20
variables:
- name: CCDTR_I2C_error
description: 0=good, >0 indicates an I2C communication error to CCD
driver: I2C_CLK
rw: ro #server RW variable, not linked to IO
dtype: uint8
- name: CCDTR_monitor_rate
description: Monitor rate in seconds
rw: variable
dtype: uint8
- name: CCDTR_translator_busy
description: True when I2C lines are busy
rw: ro #server variable, not linked to IO
dtype: boolean
dim: 1
- name: CCD_PCB_ID
description: Unique PCB ID
driver: I2C_CLK
devreg: ROM.ID
width: 32
rw: ro
dtype: uint32
- name: CCD_PCB_version
description: PCB version number
driver: I2C_CLK
devreg: ROM.Version
width: 0x80 #16 characters
rw: ro
dtype: string
- name: CCD_PCB_number
description: PCB number
driver: I2C_CLK
devreg: ROM.Serial
width: 0x80 #16 characters
rw: ro
dtype: string
methods:
- name: CCDTR_Init #Called after startup to load. Should have all stored registers
driver: I2C_CLK
debug: True
instructions:
- CCDTR_I2C_error : 0
- CCDTR_Update: 0
- name: CCDTR_Update
driver: I2C_CLK
debug: True
instructions:
- CCD_PCB_ID : Update
- CCD_PCB_version : Update
- CCD_PCB_number : Update
IP_CCD= '10.99.250.90' IP_CCD= '10.99.250.90'
IP_APSCT_TEST='10.99.100.100' IP_APSCT_TEST='10.99.100.100'
IP_UNKNOWN ='10.99.250.99'
#IP_APSCT_subrack='10.99.x.100' #IP_APSCT_subrack='10.99.x.100'
import logging import logging
...@@ -62,13 +63,16 @@ def check_ip(): ...@@ -62,13 +63,16 @@ def check_ip():
ID=get_LMP_ID() ID=get_LMP_ID()
logging.info("LMP id="+hex(ID)) logging.info("LMP id="+hex(ID))
ip_new=IP_CCD #default (CCD) ip_new=IP_UNKNOWN #default (CCD)
if ID==0x3F: #APSCT in test setup if ID==0x3F: #APSCT in test setup
ip_new=IP_APSCT_TEST ip_new=IP_APSCT_TEST
logging.info("APSCT test setup, ip=%s"%ip_new) logging.info("APSCT test setup, ip=%s"%ip_new)
if ID in [0,1,2,3]: #APSCT in subrack if ID in [0,1,2,3]: #APSCT in subrack
ip_new='10.99.%i.100'%ID ip_new='10.99.%i.100'%ID
logging.info("APSCT subrack, ip=%s"%ip_new) logging.info("APSCT subrack, ip=%s"%ip_new)
if ID in [21,10]:
ip_new=IP_CCD
logging.info("CCD detected, ip=%s"%ip_new)
if (ip_new!=ip_current) and not(ip_current is None): if (ip_new!=ip_current) and not(ip_current is None):
logging.warning("Change IP to %s"%ip_new) logging.warning("Change IP to %s"%ip_new)
......
...@@ -4,12 +4,12 @@ import subprocess ...@@ -4,12 +4,12 @@ import subprocess
import signal import signal
import logging import logging
from queue import Queue from queue import Queue
#try: try:
from .check_ip import check_ip from .check_ip import check_ip
from .setEEPROM import SetEEPROM from .setEEPROM import SetEEPROM
#except: except:
#from check_ip import check_ip from check_ip import check_ip
#from setEEPROM import SetEEPROM from setEEPROM import SetEEPROM
port=4899 port=4899
...@@ -66,6 +66,7 @@ def start_translator(ObjectId,tr_action): ...@@ -66,6 +66,7 @@ def start_translator(ObjectId,tr_action):
if True: if True:
pcb_type='' pcb_type=''
conffile=''
i2c_nr=-1 i2c_nr=-1
i2c1=subprocess.run(['i2cdetect','-y','1'],stdout=subprocess.PIPE).stdout.decode() i2c1=subprocess.run(['i2cdetect','-y','1'],stdout=subprocess.PIPE).stdout.decode()
i2c5=subprocess.run(['i2cdetect','-y','5'],stdout=subprocess.PIPE).stdout.decode() i2c5=subprocess.run(['i2cdetect','-y','5'],stdout=subprocess.PIPE).stdout.decode()
...@@ -74,9 +75,11 @@ if True: ...@@ -74,9 +75,11 @@ if True:
if i2c5[1]=='50': if i2c5[1]=='50':
logging.info("EEPROM detected on I2C 5") logging.info("EEPROM detected on I2C 5")
pcb_type='APSCT' pcb_type='APSCT'
conffile='APSCTTR'
i2c_nr=5 i2c_nr=5
elif i2c1[1]=='50': elif i2c1[1]=='50':
logging.info("EEPROM detected on I2C 1") logging.info("EEPROM detected on I2C 1")
conffile='CCDTR_EEPROM'
pcb_type='CCD' pcb_type='CCD'
i2c_nr=1 i2c_nr=1
...@@ -107,10 +110,10 @@ def testEEPROMcode(value): ...@@ -107,10 +110,10 @@ def testEEPROMcode(value):
def EEPROM_code_changed(): def EEPROM_code_changed():
# try: # try:
EEPROM_ID.set_value(byte2int(get_i2c('0xfc',4))) EEPROM_ID.set_value(byte2int(get_i2c('0xfc',4)))
value=SetEEPROM("APSCTTR","APSCT_PCB_number",None); value=SetEEPROM(conffile,pcb_type+"_PCB_number",None);
EEPROM_number.set_value(value) EEPROM_number.set_value(value)
EEPROM_number_new.set_value(value) EEPROM_number_new.set_value(value)
value=SetEEPROM("APSCTTR","APSCT_PCB_version",None); value=SetEEPROM(conffile,pcb_type+"_PCB_version",None);
EEPROM_version.set_value(value) EEPROM_version.set_value(value)
EEPROM_version_new.set_value(value) EEPROM_version_new.set_value(value)
# except: # except:
...@@ -125,6 +128,7 @@ def update_temperature(): ...@@ -125,6 +128,7 @@ def update_temperature():
if True: if True:
# global server,running,PCCobj,DEBUGobj,idx,sub; # global server,running,PCCobj,DEBUGobj,idx,sub;
server = Server() server = Server()
logging.getLogger('asyncua').setLevel(logging.ERROR)
server.set_endpoint("opc.tcp://0.0.0.0:{}/".format(port)) server.set_endpoint("opc.tcp://0.0.0.0:{}/".format(port))
idx = server.register_namespace("http://lofar.eu") idx = server.register_namespace("http://lofar.eu")
...@@ -184,11 +188,11 @@ if True: ...@@ -184,11 +188,11 @@ if True:
EEPROM_code_changed() EEPROM_code_changed()
elif (nodeid==EEPROM_number_new.nodeid.Identifier): elif (nodeid==EEPROM_number_new.nodeid.Identifier):
if EEPROM_number_new.get_value()!=EEPROM_number.get_value(): if EEPROM_number_new.get_value()!=EEPROM_number.get_value():
newvalue=SetEEPROM("APSCTTR","APSCT_PCB_number",EEPROM_number_new.get_value()); newvalue=SetEEPROM(conffile,pcb_type+"_PCB_number",EEPROM_number_new.get_value());
EEPROM_number.set_value(newvalue) EEPROM_number.set_value(newvalue)
elif (nodeid==EEPROM_version_new.nodeid.Identifier): elif (nodeid==EEPROM_version_new.nodeid.Identifier):
if EEPROM_version_new.get_value()!=EEPROM_version.get_value(): if EEPROM_version_new.get_value()!=EEPROM_version.get_value():
newvalue=SetEEPROM("APSCTTR","APSCT_PCB_version",EEPROM_version_new.get_value()); newvalue=SetEEPROM(conffile,pcb_type+"_PCB_version",EEPROM_version_new.get_value());
EEPROM_version.set_value(newvalue) EEPROM_version.set_value(newvalue)
# sleep(10) # sleep(10)
#P1.GetVarNames("",AddVar); #P1.GetVarNames("",AddVar);
......
...@@ -106,7 +106,13 @@ def SetEEPROM(configfile,varSet,value): ...@@ -106,7 +106,13 @@ def SetEEPROM(configfile,varSet,value):
if __name__=="__main__": if __name__=="__main__":
logging.basicConfig(level="INFO",format='%(asctime)s [%(levelname)-8s,%(filename)-20s:%(lineno)-3d] %(message)s') logging.basicConfig(level="INFO",format='%(asctime)s [%(levelname)-8s,%(filename)-20s:%(lineno)-3d] %(message)s')
if False:
newval=SetEEPROM("APSCTTR","APSCT_PCB_version","123") newval=SetEEPROM("APSCTTR","APSCT_PCB_version","123")
print("new value=",newval) print("new value=",newval)
newval=SetEEPROM("APSCTTR","APSCT_PCB_version","123") newval=SetEEPROM("APSCTTR","APSCT_PCB_version","123")
print("new value=",newval) print("new value=",newval)
else:
newval=SetEEPROM("CCDTR","CCD_PCB_version","123")
print("new value=",newval)
newval=SetEEPROM("CCDTR","CCD_PCB_version","123")
print("new value=",newval)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment