106 lines
4.2 KiB
Python
106 lines
4.2 KiB
Python
TEST = False
|
|
|
|
|
|
if TEST:
|
|
set_exec_pars(path="/sls/X12SA/data/x12saop/Data10/bpm/{date}_{time}_{name}")
|
|
|
|
|
|
#rel_x = pico_bpm6_new_x.read()
|
|
rel_x = pico_bpm6_ts_x.read()
|
|
pico_bpm6_fft_x_freq.update()
|
|
|
|
class SensorXAxis(ReadableArray):
|
|
def __init__(self, sensor):
|
|
self.sensor = sensor
|
|
self.x = rel_x[:]
|
|
def read(self):
|
|
timestamp = self.sensor.getTimestamp()
|
|
return [x + timestamp for x in self.x]
|
|
def getSize(self):
|
|
return len(self.x) #only reads if cache is None
|
|
|
|
|
|
def fixed_samples_scan(sensor, samples):
|
|
global sensors
|
|
x_axis = SensorXAxis(sensor)
|
|
set_device_alias(x_axis, sensor.name+"_x_axis")
|
|
r = mscan(sensor, [sensor, x_axis] , samples, title = sensor.name)
|
|
set_attribute( r.group, "Sensor", sensor.channelName)
|
|
set_attribute( r.group, "Scan Type", "Fixed samples: " + str(samples))
|
|
|
|
def fixed_time_scan(sensor, time):
|
|
global sensors
|
|
x_axis = SensorXAxis(sensor)
|
|
set_device_alias(x_axis, sensor.name+"_x_axis")
|
|
r = mscan(sensor, [sensor, x_axis] , -1, time)
|
|
set_attribute( r.group, "Sensor", sensor.channelName)
|
|
set_attribute( r.group, "Scan Type", "Fixed time: " + str(time))
|
|
|
|
|
|
def time_interval_scan(sensor, samples, interval):
|
|
global sensors
|
|
x_axis = SensorXAxis(sensor)
|
|
set_device_alias(x_axis, sensor.name+"_x_axis")
|
|
r = tscan([sensor, x_axis] , samples, interval)
|
|
set_attribute( r.group, "Sensor", sensor.channelName)
|
|
set_attribute( r.group, "Scan Type", "Time interval samples: " + str(samples) + " interval:" + str(interval))
|
|
|
|
def fixed_samples_fft_scan(sensor, samples):
|
|
global sensors
|
|
r = mscan(sensor, [sensor, pico_bpm6_fft_x_freq] , samples, title = sensor.name)
|
|
set_attribute( r.group, "Sensor", sensor.channelName)
|
|
set_attribute( r.group, "Scan Type", "Fixed samples: " + str(samples))
|
|
|
|
|
|
def execute_parallel_fixed_samples_scan(sensors, samples):
|
|
function_calls = []
|
|
for sensor in sensors:
|
|
function_calls.append([fixed_samples_scan, [sensor, samples]])
|
|
parallelize(*function_calls)
|
|
|
|
sensors = [pico_bpm6_ts_sumall, pico_bpm6_ts_cur1, pico_bpm6_ts_cur2, pico_bpm6_ts_cur3, pico_bpm6_ts_cur4]
|
|
sensors = sensors + [pico_bpm6_fft_sumal_f_absval, pico_bpm6_fft_sumal_f_real, pico_bpm6_fft_sumal_f_imag]
|
|
|
|
setup_plotting(line_plots = sensors, plot_list =sensors )
|
|
|
|
|
|
caputq ("X12SA-OP-BPM6:TS:TSAcquire", 1)
|
|
for sensor in sensors: sensor.setMonitored(True)
|
|
caput ("X12SA-ES1-TTL:OUT_02", "HIGH")
|
|
|
|
set_parallel_layout()
|
|
|
|
|
|
#x_axis = SensorXAxis(pico_bpm6_ts_sumall)
|
|
#r = tscan([pico_bpm6_ts_sumall, pico_bpm6_ts_cur1, pico_bpm6_ts_cur2, pico_bpm6_ts_cur3, pico_bpm6_ts_cur4, x_axis], 10, 0.2)
|
|
|
|
try:
|
|
#time_interval_scan(pico_bpm6_ts_sumall, 10, 0.001)
|
|
samples = 10
|
|
#execute_parallel_fixed_samples_scan(sensors, samples)
|
|
|
|
#parallelize([fixed_samples_scan, [pico_bpm6_ts_sumall, samples]], [fixed_samples_scan, [pico_bpm6_ts_cur1, samples]], \
|
|
# [fixed_samples_scan, [pico_bpm6_ts_cur2, samples]], [fixed_samples_scan, [pico_bpm6_ts_cur3, samples]], \
|
|
# [fixed_samples_scan, [pico_bpm6_ts_cur4, samples]])
|
|
|
|
parallelize([fixed_samples_scan, [pico_bpm6_ts_sumall, samples]], [fixed_samples_scan, [pico_bpm6_ts_cur1, samples]], \
|
|
[fixed_samples_scan, [pico_bpm6_ts_cur2, samples]], [fixed_samples_scan, [pico_bpm6_ts_cur3, samples]], \
|
|
[fixed_samples_scan, [pico_bpm6_ts_cur4, samples]], \
|
|
[fixed_samples_fft_scan, [pico_bpm6_fft_sumal_f_absval, samples]], \
|
|
[fixed_samples_fft_scan, [pico_bpm6_fft_sumal_f_real, samples]], \
|
|
[fixed_samples_fft_scan, [pico_bpm6_fft_sumal_f_imag, samples]],
|
|
)
|
|
|
|
#time = 1.00
|
|
#parallelize([fixed_time_scan, [pico_bpm6_ts_sumall, time]], [fixed_time_scan, [pico_bpm6_ts_cur1, time]], \
|
|
# [fixed_time_scan, [pico_bpm6_ts_cur2, time]], [fixed_time_scan, [pico_bpm6_ts_cur3, time]], \
|
|
# [fixed_time_scan, [pico_bpm6_ts_cur4, time]])
|
|
finally:
|
|
set_default_layout()
|
|
for sensor in sensors: sensor.setMonitored(False)
|
|
caput ("X12SA-ES1-TTL:OUT_02", "LOW")
|
|
caputq ("X12SA-OP-BPM6:TS:TSAcquire", 0)
|
|
|
|
|
|
|