Select Git revision
-
Jorrit Schaap authored
Task #9607: made interval at which scheduled/queued pipelines are moved ahead configurable (at default of 300sec)
Jorrit Schaap authoredTask #9607: made interval at which scheduled/queued pipelines are moved ahead configurable (at default of 300sec)
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()