Select Git revision
add_beaminfo.py
Forked from
ResearchAndDevelopment / EveryBeam
Source project has a limited visibility.
-
Bas van der Tol authored
Add the column only when is does not exist yet.
Bas van der Tol authoredAdd the column only when is does not exist yet.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
RCUH_I2C_test.py 2.09 KiB
import RPi.GPIO as GPIO
from time import sleep
I2C_reset_pin=15
##NB translator should be off or monitor should be 0
name='RECVTR_HB' #YAML config file with all register values etc
varID='RCU_PCB_ID'
import logging
import argparse
from pypcc.opcuaserv import opcuaserv
from pypcc.opcuaserv import i2client
from pypcc.opcuaserv import 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
testtime=datetime.now().strftime("%y-%m-%d %H:%M")
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')
GPIO.setmode(GPIO.BCM)
RunTimer=True;
conf=yc.yamlconfig(name)
conf.linkdevices()
conf.loaddrivers()
conf.linkdrivers()
GPIO.setup(I2C_reset_pin,GPIO.OUT)
#GPIO.output(I2C_reset_pin,0)
#sleep(0.5)
#GPIO.output(I2C_reset_pin,1)
print("State=",GPIO.input(I2C_reset_pin))
def GetVal(name,RCUNR,N=1):
varid=conf.getvarid(name);
# print("varid",varid)
var1=conf.getvars()[varid]
dim=var1['dim']
drv=var1.get('drivercls');
mask=[False]*RCUNR*N+[True]*N+[False]*((dim-RCUNR-1)*N);
data=drv.OPCUAReadVariable(varid,var1,mask)
data=data[0].data
N3=len(data)//dim
return data[N3*RCUNR:N3*(RCUNR+1)],var1
for x in range(32):
GPIO.output(I2C_reset_pin,0)
sleep(0.01)
GPIO.output(I2C_reset_pin,1)
sleep(0.01)
data,var1=GetVal(varID,x);
if data[0] is None:
print(x,data[0])
else:
ID=("%.2x%.2x%.2x%.2x" % (data[0],data[1],data[2],data[3]))
print(x,ID)
# print("I2C lines=",GPIO.input(2),GPIO.input(3))
if False:
GPIO.setup(2,GPIO.IN)
GPIO.setup(3,GPIO.IN)
print("I2C lines=",GPIO.input(2),GPIO.input(3))
GPIO.setup(2,GPIO.OUT)
GPIO.setup(3,GPIO.OUT)
GPIO.output(2,0)
GPIO.output(3,0)
GPIO.output(2,1)
GPIO.output(3,1)
GPIO.setup(2,GPIO.IN)
GPIO.setup(3,GPIO.IN)
print("I2C lines=",GPIO.input(2),GPIO.input(3))
GPIO.cleanup()