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 ) #caput ("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 = 100 #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") # caput ("X12SA-OP-BPM6:TS:TSAcquire", 0)