Skip to content
Snippets Groups Projects
Select Git revision
  • f239a24cecb08c21c8914994f15a223c824fc247
  • master default protected
  • dither_on_off_disabled
  • yocto
  • pypcc2
  • pypcc3
  • 2020-12-07-the_only_working_copy
  • v2.1
  • v2.0
  • v1.0
  • v0.9
  • Working-RCU_ADC,ID
  • 2020-12-11-Holiday_Season_release
13 results

ADCtest.py

Blame
  • 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]))