Skip to content
Snippets Groups Projects
Select Git revision
  • 07ebc1f4ed24d452f4675a4165a6ab6224b81a20
  • MCCS-163 default
  • main
  • sar-277-update-docs-with-examples-for-lrc
  • st-946-automate
  • sar_302-log-fix
  • sar-287_subarray_commands_to_lrc
  • sar_302-POC_await_sub_device_state
  • sat_302_fix_pipelines
  • sar-286_lrc_one_subarry_command
  • sar-286_lrc_improvements
  • sar-288-async-controller
  • sar-276-combine-tango-queue
  • sar-255_remove_nexus_reference
  • sar-275-add-LRC
  • sar-273-add-lrc-attributes
  • sar-272
  • sp-1106-marvin-1230525148-ska-tango-base
  • sp-1106-marvin-813091765-ska-tango-base
  • sar-255/Publish-package-to-CAR
  • mccs-661-device-under-test-fixture
  • mccs-659-pep257-docstring-linting
  • 0.11.3
  • 0.11.2
  • 0.11.1
  • 0.11.0
  • 0.10.1
  • 0.10.0
  • 0.9.1
  • 0.9.0
  • 0.8.1
  • 0.8.0
  • 0.7.2
  • 0.7.1
  • 0.7.0
  • 0.6.6
  • 0.6.5
  • 0.6.4
  • 0.6.3
  • 0.6.2
  • 0.6.1
  • 0.6.0
42 results

reference_component_manager.rst

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