shorter examples
This commit is contained in:
@ -1,11 +1,10 @@
|
||||
|
||||
class MySup(object):
|
||||
def __init__(self, rec):
|
||||
self.val = rec.field('VAL')
|
||||
print rec,self.val.fieldinfo()
|
||||
print 'VAL',self.val.getval()
|
||||
print rec, rec.field('VAL').fieldinfo()
|
||||
print 'VAL', rec.VAL
|
||||
def process(self, rec, reason):
|
||||
self.val.putval(1+self.val.getval())
|
||||
rec.VAL = 1+rec.VAL
|
||||
def detach(self, rec):
|
||||
print 'test1 detach',rec.name()
|
||||
|
||||
|
@ -54,12 +54,11 @@ class Device(object):
|
||||
def __init__(self, rec, drv):
|
||||
self.driver, self.record = drv, rec
|
||||
self.driver.addrec(self)
|
||||
self.val = rec.field('VAL')
|
||||
def detach(self, rec):
|
||||
self.driver.delrec(self)
|
||||
def process(self, rec, data):
|
||||
if data is not None:
|
||||
self.val.putval(data)
|
||||
self.VAL = data
|
||||
|
||||
def build(rec, args):
|
||||
drv = insts[args]
|
||||
|
@ -5,12 +5,8 @@ from numpy.random import randint, uniform
|
||||
|
||||
class WfSup(object):
|
||||
def __init__(self, rec, args):
|
||||
self.VAL = rec.field('VAL')
|
||||
self.NORD = rec.field('NORD')
|
||||
self.nelm = rec.field('NELM').getval()
|
||||
|
||||
self.arr = self.VAL.getarray()
|
||||
self.x = np.arange(self.nelm)
|
||||
self.arr = rec.field('VAL').getarray()
|
||||
self.x = np.arange(rec.NELM)
|
||||
|
||||
self.phase = 0.0
|
||||
|
||||
@ -19,11 +15,9 @@ class WfSup(object):
|
||||
|
||||
def process(self, rec, reason):
|
||||
pha = self.phase*np.pi/180.0
|
||||
self.phase += 10.0
|
||||
if self.phase>=360.0:
|
||||
self.phase == 360.0
|
||||
self.phase = np.fmod(self.phase+10.0, 360.0)
|
||||
|
||||
N=randint(1,self.nelm)
|
||||
N=randint(1, rec.NELM)
|
||||
|
||||
val=self.arr[:N]
|
||||
x=self.x[:N]
|
||||
@ -35,7 +29,7 @@ class WfSup(object):
|
||||
val[:]*=uniform(0.5,2.0)
|
||||
val[:]+=2
|
||||
|
||||
self.NORD.putval(N)
|
||||
self.NORD = N
|
||||
|
||||
def build(rec, args):
|
||||
return WfSup(rec, args)
|
||||
|
@ -5,7 +5,6 @@ AsyncComplete = object()
|
||||
|
||||
class Counter(object):
|
||||
def __init__(self, rec, args):
|
||||
self.val = rec.field('VAL')
|
||||
self.nextval = None
|
||||
self.timer = None
|
||||
def detach(self, rec):
|
||||
@ -14,10 +13,10 @@ class Counter(object):
|
||||
|
||||
def process(self, rec, reason):
|
||||
if reason is AsyncComplete:
|
||||
self.val.putval(self.nextval)
|
||||
rec.VAL = self.nextval
|
||||
|
||||
else:
|
||||
self.nextval = self.val.getval()+1
|
||||
self.nextval = rec.VAL+1
|
||||
self.timer = threading.Timer(0.2, rec.asyncFinish, kwargs={'reason':AsyncComplete})
|
||||
rec.asyncStart()
|
||||
self.timer.start()
|
||||
|
Reference in New Issue
Block a user