Hi all,
Rather specific issue but I wonder if anyone has had similar problems. Trying to determine if this is expected behaviour in Labview or if something else is at play.
I'm using a K10CR1 motor device from Thorlabs (https://www.thorlabs.com/thorproduct.cfm?partnumber=K10CR1/M) in a microscope beam path to control some polarization optics. Thorlabs provide the device drivers, which can be accessed in LabVIEW using .NET controls.
I've placed a snippet below to show the basic device pairing, based on a pdf guide provided by Thorlabs (link to pdf: https://www.thorlabs.com/Software/Motion%20Control/Kinesis/Kinesis-labview.pdf ). Once paired, the device is homed when the software starts, and the user can command the device to move to a certain angle.
This device is being controlled as part of a larger LabVIEW package which controls a number of devices via serial/usb connections etc. I've designed the software in an event-driven, producer-consumer style messaging system, and there are a number of different threads controlling various aspects of the system.
Up until now, the design meant that all hardware could be controlled asynchronously, with no blocking of the user interface when devices are being accessed. Whenever the K10CR1 is accessed however, it appears to block the entire VI. This is despite the fact it's in a sub-thread of the program, and so the event and message-passing loops are completely separate.
I dont know much about accessing devices through .NET, but is this expected behaviour? Is this an aspect of LabVIEW or more likely something to do with the Kinesis drivers themselves? And is there a way to circumvent this blocking?
Thanks very much for your help