Skip to content

Commit 3b81282

Browse files
committed
Added Kinesis RTS cycling
1 parent d0cf0c6 commit 3b81282

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

pylablib/devices/Thorlabs/kinesis.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,39 @@ class BasicKinesisDevice(comm_backend.ICommBackendWrapper):
3939
"""
4040
Error=ThorlabsError
4141
def __init__(self, conn, timeout=3.):
42-
defaults={"serial":{"baudrate":115200}, "ft232":{"baudrate":115200}}
42+
defaults={"serial":{"baudrate":115200,"rtscts":True}, "ft232":{"baudrate":115200,"rtscts":True}}
4343
instr=comm_backend.new_backend(conn,backend=("auto","ft232"),term_write=b"",term_read=b"",timeout=timeout,
4444
defaults=defaults,reraise_error=ThorlabsBackendError)
4545
instr.setup_cooldown(write=0.003)
46+
self._cycle_rts(instr)
4647
super().__init__(instr)
4748
self._add_info_variable("device_info",self.get_device_info)
4849
self._bg_msg_counters={}
4950

5051
@staticmethod
52+
def _cycle_rts(instr):
53+
be=instr.get_backend_name()
54+
if be=="ft232":
55+
instr.instr._flow=256 # SIO_RTS_CTS_HS
56+
instr.instr._setFlowControl()
57+
time.sleep(0.05)
58+
instr.instr.flushInput()
59+
instr.instr.flushOutput()
60+
time.sleep(0.05)
61+
instr.instr._flow=0
62+
instr.instr._setFlowControl()
63+
time.sleep(0.05)
64+
elif be=="serial":
65+
instr.instr.setRTS(1)
66+
time.sleep(0.05)
67+
instr.instr.flushInput()
68+
instr.instr.flushOutput()
69+
time.sleep(0.05)
70+
instr.instr.setRTS(0)
71+
time.sleep(0.05)
72+
else:
73+
warnings.warn("could not cycle RTS with backend '{}'; some devices might not work properly".format(be))
74+
@staticmethod
5175
def list_devices(filter_ids=True):
5276
"""
5377
List all connected devices.

0 commit comments

Comments
 (0)