Skip to content

Commit 3af801b

Browse files
committed
Create MFF10x_pythonnet.py
1 parent 7c0e2df commit 3af801b

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed
+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import clr
2+
import time
3+
4+
clr.AddReference("C:\\Program Files\\Thorlabs\\Kinesis\\Thorlabs.MotionControl.DeviceManagerCLI.dll")
5+
clr.AddReference("C:\\Program Files\\Thorlabs\\Kinesis\\Thorlabs.MotionControl.GenericMotorCLI.dll")
6+
clr.AddReference("C:\\Program Files\\Thorlabs\\Kinesis\\ThorLabs.MotionControl.FilterFlipperCLI.dll")
7+
8+
from Thorlabs.MotionControl.DeviceManagerCLI import *
9+
from Thorlabs.MotionControl.GenericMotorCLI import *
10+
from Thorlabs.MotionControl.FilterFlipperCLI import *
11+
from System import Decimal, UInt32
12+
13+
def main():
14+
# Uncomment this line if you are using a simulation
15+
#SimulationManager.Instance.InitializeSimulations()
16+
17+
try:
18+
# Build device list.
19+
DeviceManagerCLI.BuildDeviceList()
20+
21+
# create new device.
22+
serial_no = "37847808"
23+
device = FilterFlipper.CreateFilterFlipper(serial_no)
24+
25+
# Connect to device.
26+
device.Connect(serial_no)
27+
28+
# Ensure that the device settings have been initialized.
29+
if not device.IsSettingsInitialized():
30+
device.WaitForSettingsInitialized(10000) # 10 second timeout.
31+
assert device.IsSettingsInitialized() is True
32+
33+
# Start polling loop and enable device.
34+
device.StartPolling(250) #250ms polling rate.
35+
time.sleep(5)
36+
device.EnableDevice()
37+
time.sleep(5) # Wait for device to enable.
38+
39+
# Get Device Information and display description.
40+
device_info = device.GetDeviceInfo()
41+
print(device_info.Description)
42+
43+
# Call device methods.
44+
print("Homing Device")
45+
device.Home(60000) # 60 second timeout.
46+
print("Done")
47+
48+
time.sleep(2)
49+
50+
new_pos = UInt32(2) # Must be a .NET decimal.
51+
print(f'Moving to {new_pos}')
52+
device.SetPosition(new_pos,60000) # 60 second timeout.
53+
print("Done")
54+
55+
56+
# Stop polling loop and disconnect device before program finishes.
57+
device.StopPolling()
58+
device.Disconnect()
59+
60+
61+
except Exception as e:
62+
print(e)
63+
64+
#SimulationManager.Instance.UninitializeSimulations()
65+
66+
if __name__ == "__main__":
67+
main()
68+
69+
70+
71+
72+
73+

0 commit comments

Comments
 (0)