added pvcombination class but is no longer needed. can be deleted
This commit is contained in:
@ -1,40 +1,30 @@
|
|||||||
from slic.core.adjustable import Adjustable
|
from slic.core.adjustable import Adjustable,DummyAdjustable,PVAdjustable
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
class PVCombiAdjustable(Adjustable):
|
class PVCombiAdjustable(Adjustable):
|
||||||
def __init__(self, adjustables,values):
|
def __init__(self, adjustables,values):
|
||||||
self.adjustables = adjustables
|
self.adjustables = adjustables
|
||||||
self.values = values # array or indiviual array values
|
self.values = values # array or indiviual array values
|
||||||
self.process_time = np.max(np.array([adj.process_time for adj in self.adjustables]))
|
|
||||||
|
|
||||||
def set_target_value(self, value):
|
def set_target_value(self, value):
|
||||||
intval = int(value)
|
print('##### Setvalue:',value)
|
||||||
if intval < 0 or intval >= len(self.values[0]):
|
# check if values are in range
|
||||||
tname = typename(self)
|
|
||||||
raise AdjustableError(f"Outside of array bounds for {tname} \"{self.name}\" to set target values")
|
|
||||||
|
|
||||||
for adj in self.adjustables:
|
|
||||||
adj._wait_for_ready()
|
|
||||||
|
|
||||||
for i,adj in enumerate(self.adjustables):
|
for i,adj in enumerate(self.adjustables):
|
||||||
val=self.values[i,intval]
|
idx = int(value[i])
|
||||||
ret = adj.pvs.setvalue.put(val, wait=True, use_complete=True) # use_complete=True enables status in PV.put_complete
|
print('### Index',i, idx)
|
||||||
error = handle_put_return_value(ret)
|
val=self.values[i][idx]
|
||||||
if error is not None:
|
print('### Setting',adj.name,'to',val)
|
||||||
tname = typename(adj)
|
adj.set_target_value(val)
|
||||||
raise AdjustableError(f"changing {tname} \"{adj.name}\" to {val} {adj.units} failed due to {error}")
|
|
||||||
|
|
||||||
sleep(self.process_time)
|
|
||||||
|
|
||||||
for adj in self.adjustables:
|
|
||||||
adj._wait_for_done()
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def units(self):
|
def units(self):
|
||||||
[adj.units() for adj in self.adjustables]
|
return ['m' for adj in self.adjustables]
|
||||||
|
# return [adj.units() for adj in self.adjustables if adj is not None]
|
||||||
|
|
||||||
|
|
||||||
def get_current_value(self, readback=True):
|
def get_current_value(self, readback=True):
|
||||||
return [adj.get_current_value(readback) for adj in self.adjustables]
|
return [adj.get_current_value() for adj in self.adjustables] # this is different for dummy elements
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
for adj in self.adjustbale:
|
for adj in self.adjustbale:
|
||||||
|
Reference in New Issue
Block a user