diff --git a/tomcat_bec/devices/aerotech/AerotechDriveDataCollection.py b/tomcat_bec/devices/aerotech/AerotechDriveDataCollection.py index 9e77763..0ba20c3 100644 --- a/tomcat_bec/devices/aerotech/AerotechDriveDataCollection.py +++ b/tomcat_bec/devices/aerotech/AerotechDriveDataCollection.py @@ -34,22 +34,14 @@ class AerotechDriveDataCollectionMixin(CustomDeviceMixin): if 'kwargs' in scanparam: scanargs = scanparam['kwargs'] for prefix in ["", alias + "_"]: - if f'{prefix}_num_points_total' in scanargs: - d['num_points'] = scanargs[f'{prefix}_num_points_total'] - if f'{prefix}_ddc_trigger' in scanargs: - d['ddc_trigger'] = scanargs[f'{prefix}_ddc_trigger'] - if f'{prefix}_ddc_source0' in scanargs: - d['ddc_source0'] = scanargs[f'{prefix}_ddc_source0'] - if f'{prefix}_ddc_source1' in scanargs: - d['ddc_source1'] = scanargs[f'{prefix}_ddc_source1'] - if 'num_points_total' in scanargs: - d['num_points'] = scanargs['num_points_total'] - if 'ddc_trigger' in scanargs: - d['ddc_trigger'] = scanargs['ddc_trigger'] - if 'ddc_source0' in scanargs: - d['ddc_source0'] = scanargs['ddc_source0'] - if 'ddc_source1' in scanargs: - d['ddc_source1'] = scanargs['ddc_source1'] + if f'{prefix}num_points_total' in scanargs: + d['num_points_total'] = scanargs[f'{prefix}num_points_total'] + if f'{prefix}ddc_trigger' in scanargs: + d['ddc_trigger'] = scanargs[f'{prefix}ddc_trigger'] + if f'{prefix}ddc_source0' in scanargs: + d['ddc_source0'] = scanargs[f'{prefix}ddc_source0'] + if f'{prefix}ddc_source1' in scanargs: + d['ddc_source1'] = scanargs[f'{prefix}ddc_source1'] # Perform bluesky-style configuration if len(d)>0: @@ -126,7 +118,7 @@ class aa1AxisDriveDataCollection(PSIDeviceBase): Aerotech API allows the simultaneous capture of two signals into the limited amount of local DriveArray (2-16 MB/axis). """ - num_points = int(d["num_points"]) + num_points = int(d["num_points_total"]) ddc_trigger = d.get("ddc_trigger", DriveDataCaptureTrigger.PsoOutput) ddc_source0 = d.get("ddc_source0", DriveDataCaptureInput.PrimaryFeedback) ddc_source1 = d.get("ddc_source1", DriveDataCaptureInput.PositionCommand) diff --git a/tomcat_bec/devices/aerotech/AerotechPso.py b/tomcat_bec/devices/aerotech/AerotechPso.py index 8379bcb..65532e3 100644 --- a/tomcat_bec/devices/aerotech/AerotechPso.py +++ b/tomcat_bec/devices/aerotech/AerotechPso.py @@ -32,30 +32,22 @@ class AerotechPsoDistanceMixin(CustomDeviceMixin): # Fish out our configuration from scaninfo (via explicit or generic addressing) scanparam = self.parent.scaninfo.scan_msg.info - prefix = self.parent.parent.name if self.parent.parent is not None else self.parent.name + alias = self.parent.parent.name if self.parent.parent is not None else self.parent.name + logger.warning(f"[{alias}] Scan parameters:\n{scanparam}") d = {} if 'kwargs' in scanparam: - scanargs = scanparam['kwargs'] - if f'{prefix}_pso_distance' in scanargs: - d['pso_distance'] = scanargs[f'{prefix}_pso_distance'] - if f'{prefix}_pso_wavemode' in scanargs: - d['pso_wavemode'] = scanargs[f'{prefix}_pso_wavemode'] - if f'{prefix}_pso_w_pulse' in scanargs: - d['pso_w_pulse'] = scanargs[f'{prefix}_pso_w_pulse'] - if f'{prefix}_pso_t_pulse' in scanargs: - d['pso_t_pulse'] = scanargs[f'{prefix}_pso_t_pulse'] - if f'{prefix}_pso_n_pulse' in scanargs: - d['pso_n_pulse'] = scanargs[f'{prefix}_pso_n_pulse'] - if 'psod_distance' in scanargs: - d['pso_distance'] = scanargs['psod_distance'] - if 'psod_wavemode' in scanargs: - d['pso_wavemode'] = scanargs['psod_wavemode'] - if 'psod_w_pulse' in scanargs: - d['pso_w_pulse'] = scanargs['psod_w_pulse'] - if 'psod_t_pulse' in scanargs: - d['pso_t_pulse'] = scanargs['psod_t_pulse'] - if 'psod_n_pulse' in scanargs: - d['pso_n_pulse'] = scanargs['psod_n_pulse'] + scanargs = scanparam['kwargs'] + for prefix in ["", alias + "_"]: + if f'{prefix}pso_distance' in scanargs: + d['pso_distance'] = scanargs[f'{prefix}pso_distance'] + if f'{prefix}pso_wavemode' in scanargs: + d['pso_wavemode'] = scanargs[f'{prefix}pso_wavemode'] + if f'{prefix}pso_w_pulse' in scanargs: + d['pso_w_pulse'] = scanargs[f'{prefix}pso_w_pulse'] + if f'{prefix}pso_t_pulse' in scanargs: + d['pso_t_pulse'] = scanargs[f'{prefix}pso_t_pulse'] + if f'{prefix}pso_n_pulse' in scanargs: + d['pso_n_pulse'] = scanargs[f'{prefix}pso_n_pulse'] # Perform bluesky-style configuration if len(d)>0: diff --git a/tomcat_bec/devices/aerotech/AerotechTasks.py b/tomcat_bec/devices/aerotech/AerotechTasks.py index e30fbaa..b33340e 100644 --- a/tomcat_bec/devices/aerotech/AerotechTasks.py +++ b/tomcat_bec/devices/aerotech/AerotechTasks.py @@ -24,26 +24,20 @@ class AerotechTasksMixin(CustomDeviceMixin): # Fish out our configuration from scaninfo (via explicit or generic addressing) scanparam = self.parent.scaninfo.scan_msg.info - prefix = self.parent.parent.name if self.parent.parent is not None else self.parent.name + alias = self.parent.parent.name if self.parent.parent is not None else self.parent.name + logger.warning(f"[{alias}] Scan parameters:\n{scanparam}") d = {} if 'kwargs' in scanparam: - scanargs = scanparam['kwargs'] - if f'{prefix}_script_text' in scanargs: - d['script_text'] = scanargs[f'{prefix}_script_text'] - if f'{prefix}_script_file' in scanargs: - d['script_file'] = scanargs[f'{prefix}_script_file'] - if f'{prefix}_script_mode' in scanargs: - d['script_mode'] = scanargs[f'{prefix}_script_mode'] - if f'{prefix}_script_task' in scanargs: - d['script_task'] = scanargs[f'{prefix}_script_task'] - if 'script_text' in scanargs: - d['script_text'] = scanargs['script_text'] - if 'script_file' in scanargs: - d['script_file'] = scanargs['script_file'] - if 'script_mode' in scanargs: - d['script_mode'] = scanargs['script_mode'] - if 'script_task' in scanargs: - d['script_task'] = scanargs['script_task'] + scanargs = scanparam['kwargs'] + for prefix in ["", alias + "_"]: + if f'{prefix}script_text' in scanargs: + d['script_text'] = scanargs[f'{prefix}script_text'] + if f'{prefix}script_file' in scanargs: + d['script_file'] = scanargs[f'{prefix}script_file'] + if f'{prefix}script_mode' in scanargs: + d['script_mode'] = scanargs[f'{prefix}script_mode'] + if f'{prefix}script_task' in scanargs: + d['script_task'] = scanargs[f'{prefix}script_task'] # Perform bluesky-style configuration if len(d)>0: diff --git a/tomcat_bec/devices/gigafrost/stddaq_client.py b/tomcat_bec/devices/gigafrost/stddaq_client.py index 1943bcc..31ba840 100644 --- a/tomcat_bec/devices/gigafrost/stddaq_client.py +++ b/tomcat_bec/devices/gigafrost/stddaq_client.py @@ -289,7 +289,7 @@ class StdDaqClient(PSIDeviceBase): if 'image_height' in d: self.cfg_pixel_height.set(d['image_height']).wait() if 'num_points_total' in d: - self.num_images.set(d['num_images']).wait() + self.num_images.set(d['num_points_total']).wait() if 'file_path' in d: self.file_path.set(d['file_path']).wait()