diff --git a/pypcc/config/RECVTR_LB.yaml b/pypcc/config/RECVTR_LB.yaml index 7da36600b7d4f07d555c86c9a9cfe023ee36b2d0..49eba6678df3c1a9abbbc23e3801244eaf09bcb0 100644 --- a/pypcc/config/RECVTR_LB.yaml +++ b/pypcc/config/RECVTR_LB.yaml @@ -151,6 +151,8 @@ device_registers: address: 0xFF - name: testmode address: 0x0D + - name: test + address: 0x19 #a register to test reading and writing - name: dither address: 0x0C - name: JESDscramble @@ -504,6 +506,18 @@ variables: # monitor: true read_parallel: true + - name: RCU_ADC_test + driver: I2C_RCU + devreg: [ADC1.test,ADC2.test,ADC3.test] + width: 8 + rw: ro + dtype: uint8 + dim: 96 + dim2: [3,32] + debug: true + read_parallel: true + + - name: RCU_ADC_sync driver: I2C_RCU devreg: [ADC1.SYNC_control,ADC2.SYNC_control,ADC3.SYNC_control] @@ -668,7 +682,7 @@ methods: - IO3.CONF1: 0 - IO3.CONF2: 0 # - RCU_GPIO1: Update - - RCU_GPIO2: Update +# - RCU_GPIO2: Update # - RCU_attenuator: [10,10,10] #Set OPC-UA variable #name="RCU_DTH_shutdown" - RCU_update: 0 diff --git a/python_scripts/ADCtest.py b/python_scripts/ADCtest.py new file mode 100644 index 0000000000000000000000000000000000000000..b7003308807c0637a29164047e0652d8140e59b1 --- /dev/null +++ b/python_scripts/ADCtest.py @@ -0,0 +1,117 @@ +##NB translator should be off or monitor should be 0 +name='RECVTR_LB' #YAML config file with all register values etc +varID='RCU_PCB_ID' +regname="RCU_ADC_test" + +logFile='ADCtest' + +import logging +import argparse +from pypcc.opcuaserv import opcuaserv,i2client,yamlreader +#from opcuaserv import pypcc2 +from pypcc.i2cserv import i2cthread +import threading +import time +import sys +import signal +from pypcc.yamlconfig import Find; +import pypcc.yamlconfig as yc +from datetime import datetime +import numpy as np + +testtime=datetime.now().strftime("%y-%m-%d %H:%M") +#if len(sys.argv)<3: +# print("setVersion RCUnr RCUsi HBAnr"); +# print("e.g. SetVersion 8 1 1") +# exit(); + +#RCUNR=int(sys.argv[1]); +#SINR=int(sys.argv[2]); +#HBANR=int(sys.argv[3]); +#print(RCUNR,SINR,HBANR) +logging.basicConfig(level="WARNING",format='%(asctime)s [%(levelname)-8s,%(filename)-20s:%(lineno)-3d] %(message)s') +#logging.basicConfig(level="DEBUG",format='%(asctime)s [%(levelname)-8s,%(filename)-20s:%(lineno)-3d] %(message)s') + +RunTimer=True; +conf=yc.yamlconfig(name) +conf.linkdevices() +conf.loaddrivers() +conf.linkdrivers() + +def GetVal(name): + varid=conf.getvarid(name); +# print("varid",varid) + var1=conf.getvars()[varid] + dim=var1['dim'] + drv=var1.get('drivercls'); + mask=[True]*dim#+[True]*N+[False]*((dim-RCUNR-1)*N); + data=drv.OPCUAReadVariable(varid,var1,mask) + data=data[0].data +# N3=len(data[0])//dim + return data,var1 + + +def SetVal(name,data): + varid=conf.getvarid(name); +# print("varid",varid) + var1=conf.getvars()[varid] + dim=var1['dim'] + drv=var1.get('drivercls'); + mask=[True]*dim#+[True]*N+[False]*((dim-RCUNR-1)*N); + return drv.OPCUASetVariable(varid,var1,data,mask) + +def SetReg(name,data,drvvar): + varid=conf.getvarid(drvvar) + var2=conf.getvars()[varid] + drv=var2.get('drivercls'); + var1=conf.getdevreg(name); +# print("Var",var1) +# drv=var1.get('drivercls'); +# print("DRV",drv) + drv.Setdevreg(var1,data,[]) + + + +#reading the ID also set the switch +print("Get IDs") +data,var1=GetVal(varID); +data=np.array(data)[::4] +mask=[not(d is None) for d in data] +#print(data) +print(mask) +#GetReg("GPIO3. +#SetReg("IO3.GPIO1",[21]*32) +#SetReg("IO3.GPIO2",[71]*32) +SetVal("RCU_IO3_GPIO1",[21]*32) +SetVal("RCU_IO3_GPIO2",[71]*32) + +#exit() +data,var1=GetVal("RCU_IO3_GPIO1") +print("RCU_IO3_GPIO1",data) +data,var1=GetVal("RCU_IO3_GPIO2") +print("RCU_IO3_GPIO2",data) +#print("Set Reg") +#exit() +#print("Read Reg") + +#data,var1=GetVal(regname); +#data=np.array(data).reshape([32,3]) +#print(data) +#exit() +for x in range(1,100): + print("Set reg",x) + SetReg("ADC1.test",[x]*32,regname) + SetReg("ADC2.test",[x+1]*32,regname) + SetReg("ADC3.test",[x+2]*32,regname) +# data=np.array([x]*96) +# SetVal(regname,data) + +#print("Read reg") + data,var1=GetVal(regname); + data=np.array(data).reshape([32,3]) + print(data) + + +exit() +#ID=("%.2x%.2x%.2x%.2x" % (data[0],data[1],data[2],data[3])) +