Select Git revision
reference_component_manager.rst
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ADCtest.py 4.03 KiB
##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);
print(data)
data=np.array(data)[::4]
mask=[not(d is None) for d in data]
print(mask)
#GetReg("GPIO3.
#SetReg("IO3.GPIO1",[21]*32)
#SetReg("IO3.GPIO2",[71]*32)
#exit()
data,var1=GetVal("RCU_IO1_GPIO1")
data,var1=GetVal("RCU_IO1_GPIO2")
data,var1=GetVal("RCU_IO2_GPIO1")
data,var1=GetVal("RCU_IO2_GPIO2")
if False:
SetVal("RCU_IO3_GPIO1",[0]*32)
SetVal("RCU_IO3_GPIO2",[0]*32)
SetVal("RCU_PWR_DIGITAL_on",[0]*32)
SetVal("RCU_PWR_DIGITAL_on",[1]*32)
SetVal("RCU_IO3_GPIO1",[21]*32)
SetVal("RCU_IO3_GPIO2",[71]*32)
SetReg("IO3.CONF1",[0]*32,"RCU_IO3_GPIO1")
SetReg("IO3.CONF2",[0]*32,"RCU_IO3_GPIO1")
SetReg("IO3.POL1",[0]*32,"RCU_IO3_GPIO1")
SetReg("IO3.POL2",[0]*32,"RCU_IO3_GPIO1")
data,var1=GetVal("RCU_PWR_DIGITAL_on")
print("RCU_PWR_DIGITAL_on",data)
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")
if False:
SetVal("RCU_ADC_shutdown",[1]*96)
SetVal("RCU_ADC_shutdown",[0]*96)
data,var1=GetVal("RCU_ADC_shutdown")
print("RCU_ADC_shutdown",data)
if True: #SPI bus reset
SetVal("RCU_IO3_GPIO2",[0x40]*32) #bit0,1,2 = CS = Low
SetVal("RCU_IO3_GPIO1",[0x17]*32) #CLK high
SetVal("RCU_IO3_GPIO1",[0x15]*32) #CLK low
SetVal("RCU_IO3_GPIO1",[0x17]*32) #CLK high
SetVal("RCU_IO3_GPIO1",[0x15]*32) #CLK low
SetVal("RCU_IO3_GPIO2",[0x47]*32) #CS = High
# for x in range(1):
# SetVal("RCU_IO3_GPIO1",[0x02]*32) #CLK high
# SetVal("RCU_IO3_GPIO1",[0x00]*32) #CLK low
# SetVal("RCU_IO3_GPIO1",[0x15]*32) #CLK low
time.sleep(1)
SetReg("ADC2.test",[2]*32,regname)
SetReg("ADC3.test",[3]*32,regname)
SetReg("ADC1.test",[1]*32,regname)
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("ADC3.test",[x+2]*32,regname)
SetReg("ADC2.test",[x+1]*32,regname)
SetReg("ADC1.test",[x]*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]))