Bug report
Bug summary
When image_process_fn is configured for acquisition, potential conflicts could be triggered if the MM2 device properties contain @ symbols. This seems associated with the @ symbol being used in bridge.py as some identifier. @ is a valid character in MM2 properties and MM2 device properties containing @ seem to be misinterpreted. In the screenshot below, a device value named NIDAQ@PXI2Slot2 is involved in the data acquisition process, and it seems that the @ symbol triggers the following PXI2Slot2 to be interpreted as an array.
Code for reproduction
def img_process_fn(image, metadata):
# do nothing
return image, metadata
with Acquisition(save_path, acq_name, img_process_fn) as acq:
events = multi_d_acquisition_events(xyz_positions=position_list.reshape(-1, 3),
z_start=-int(sample_depth/2), z_end=int(sample_depth/2), z_step=z_step)
acq.acquire(events)
Error message

Additional information
Using acquisition APIs without image_process_fn does not trigger the error.
Recompiling the MM2 device adapter from the source code with @ replaced by other characters in the property names can get around the error.
Version Info
- Operating system: Windows10
- pycromanager version: 0.18.0
- MicroManager version: MM2 nightly 20220613
- Python version: 3.8
- Python environment (command line, IDE, Jupyter notebook, etc): Jupyter notebook in VS code
cc: @marktsuchida
Reactions are currently unavailable
Bug report
Bug summary
When image_process_fn is configured for acquisition, potential conflicts could be triggered if the MM2 device properties contain @ symbols. This seems associated with the @ symbol being used in bridge.py as some identifier. @ is a valid character in MM2 properties and MM2 device properties containing @ seem to be misinterpreted. In the screenshot below, a device value named NIDAQ@PXI2Slot2 is involved in the data acquisition process, and it seems that the @ symbol triggers the following PXI2Slot2 to be interpreted as an array.
Code for reproduction
Error message

Additional information
Using acquisition APIs without image_process_fn does not trigger the error.
Recompiling the MM2 device adapter from the source code with @ replaced by other characters in the property names can get around the error.
Version Info
cc: @marktsuchida