Skip to content

Commit f11be35

Browse files
Update from develop, and type hints.
1 parent d28aa8d commit f11be35

File tree

1 file changed

+33
-27
lines changed

1 file changed

+33
-27
lines changed

src/navigate/model/devices/APIs/asi/asi_tiger_controller.py

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,7 @@ def get_axis_position_um(self, axis: str) -> float:
534534
response = self.read_response()
535535
return float(response.split(" ")[1]) / 10.0
536536

537-
def get_position(self, axes) -> dict:
537+
def get_position(self, axes: list[str]) -> dict:
538538
"""Return current stage position in ASI units.
539539
540540
If default axes sequence has gotten from the ASI device,
@@ -667,7 +667,7 @@ def set_speed_as_percent_max(self, pct: float) -> None:
667667
"""
668668
if self.default_axes_sequence is None:
669669
logger.error(
670-
f"{str(self)}, Default axes sequence is not set. " f"Cannot set speed."
670+
f"{str(self)}, Default axes sequence is not set. Cannot set speed."
671671
)
672672
raise ASIException(
673673
"Unable to query system for axis sequence. Cannot set speed."
@@ -692,7 +692,7 @@ def set_speed_as_percent_max(self, pct: float) -> None:
692692
)
693693
self.read_response()
694694

695-
def get_speed(self, axis: str):
695+
def get_speed(self, axis: str) -> float:
696696
"""Get speed
697697
698698
Parameters
@@ -704,7 +704,7 @@ def get_speed(self, axis: str):
704704
response = self.read_response()
705705
return float(response.split("=")[1])
706706

707-
def get_encoder_counts_per_mm(self, axis: str):
707+
def get_encoder_counts_per_mm(self, axis: str) -> float:
708708
"""Get encoder counts pre mm of axis
709709
710710
Parameters
@@ -728,7 +728,7 @@ def scanr(
728728
end_position_mm: float,
729729
enc_divide: float = 0,
730730
axis: str = "X",
731-
):
731+
) -> None:
732732
"""Set scanr operation mode.
733733
734734
Parameters
@@ -765,7 +765,7 @@ def scanv(
765765
number_of_lines: float,
766766
overshoot: float = 1.0,
767767
axis: str = "X",
768-
):
768+
) -> None:
769769
"""Set scanv operation mode.
770770
771771
Parameters
@@ -792,7 +792,7 @@ def scanv(
792792
self.send_command(command)
793793
self.read_response()
794794

795-
def start_scan(self, axis: str, is_single_axis_scan: bool = True):
795+
def start_scan(self, axis: str, is_single_axis_scan: bool = True) -> None:
796796
"""Start scan
797797
798798
Parameters
@@ -805,12 +805,12 @@ def start_scan(self, axis: str, is_single_axis_scan: bool = True):
805805
self.send_command("SCAN")
806806
self.read_response()
807807

808-
def stop_scan(self):
808+
def stop_scan(self) -> None:
809809
"""Stop scan."""
810810
self.send_command("SCAN P")
811811
self.read_response()
812812

813-
def is_moving(self):
813+
def is_moving(self) -> bool:
814814
"""Check to see if the stage is moving.
815815
816816
Sends the command / which is equivalent to STATUS
@@ -848,7 +848,7 @@ def is_moving(self):
848848

849849
# Basic Serial Commands for Filter Wheels
850850

851-
def send_filter_wheel_command(self, cmd) -> None:
851+
def send_filter_wheel_command(self, cmd: str) -> None:
852852
"""Send a serial command to the filter wheel.
853853
854854
Parameters
@@ -861,7 +861,7 @@ def send_filter_wheel_command(self, cmd) -> None:
861861
self.send_command(f"{cmd}\n")
862862
# print(f"Sent Command: {command.decode(encoding='ascii')}")
863863

864-
def select_filter_wheel(self, filter_wheel_number=0):
864+
def select_filter_wheel(self, filter_wheel_number: int = 0) -> None:
865865
"""
866866
Select the filter wheel, e.g., 0, 1...
867867
@@ -882,7 +882,7 @@ def select_filter_wheel(self, filter_wheel_number=0):
882882
self.send_filter_wheel_command(f"FW {filter_wheel_number}")
883883
self.read_response()
884884

885-
def move_filter_wheel(self, filter_wheel_position=0):
885+
def move_filter_wheel(self, filter_wheel_position: int = 0) -> None:
886886
"""Move Filter Wheel
887887
888888
Move to filter position n , where n is a valid filter position.
@@ -896,24 +896,28 @@ def move_filter_wheel(self, filter_wheel_position=0):
896896
self.send_filter_wheel_command(f"MP {filter_wheel_position}")
897897
self.read_response()
898898

899-
def move_filter_wheel_to_home(self):
899+
def move_filter_wheel_to_home(self) -> None:
900900
"""Move the Filter Wheel to Home Position
901901
902902
Causes current wheel to seek its home position.
903903
"""
904904
self.send_filter_wheel_command("HO")
905905
self.read_response()
906906

907-
def change_filter_wheel_speed(self, speed=0):
907+
def change_filter_wheel_speed(self, speed: int = 0) -> None:
908908
"""Change the Filter Wheel Speed
909909
910910
Selects a consistent set of preset acceleration and speed parameters.
911911
Supported in version 2.4 and later.
912912
913-
0 Default - directly set and saved AU, AD, and VR parameters are used.
914-
1 Slowest and smoothest switching speed.
915-
2 to 8 Intermediate switching speeds.
916-
9 Fastest but least reliable switching speed.
913+
Parameters
914+
----------
915+
speed : int
916+
Speed of the filter wheel. The speed can be set to one of the following values:
917+
- 0: Default - directly set and saved AU, AD, and VR parameters are used.
918+
- 1: Slowest and smoothest switching speed.
919+
- 2 to 8: Intermediate switching speeds.
920+
- 9: Fastest but least reliable switching speed.
917921
"""
918922
self.send_filter_wheel_command(f"SV {speed}")
919923
self.read_response()
@@ -923,7 +927,7 @@ def halt_filter_wheel(self):
923927
self.send_filter_wheel_command("HA")
924928
self.read_response()
925929

926-
def move_dichroic(self, dichroic_id, dichroic_position=0):
930+
def move_dichroic(self, dichroic_id: str, dichroic_position: int = 0) -> None:
927931
"""Move Dichroic Slider.
928932
929933
Move to dichroic position n , where n is a valid filter position.
@@ -939,7 +943,7 @@ def move_dichroic(self, dichroic_id, dichroic_position=0):
939943
self.send_filter_wheel_command(f"MOVE {dichroic_id}={dichroic_position}")
940944
self.read_response()
941945

942-
def square_wave(self, on_time, delay_time):
946+
def square_wave(self, on_time: int, delay_time: int) -> None:
943947
"""Square wave modulation.
944948
945949
For testing only.
@@ -981,7 +985,7 @@ def square_wave(self, on_time, delay_time):
981985
self.send_command(f"{command}\r")
982986
self.read_response()
983987

984-
def logic_card_on(self, axis: str):
988+
def logic_card_on(self, axis: str) -> None:
985989
"""Turn on the logic card
986990
987991
Parameters
@@ -996,7 +1000,7 @@ def logic_card_on(self, axis: str):
9961000
self.send_command(f"6 CCA Z=64\r")
9971001
self.read_response()
9981002

999-
def logic_card_off(self, axis: str):
1003+
def logic_card_off(self, axis: str) -> None:
10001004
"""Turn off the logic card
10011005
10021006
Parameters
@@ -1010,19 +1014,21 @@ def logic_card_off(self, axis: str):
10101014
self.send_command(f"6 CCA Z=0\r")
10111015
self.read_response()
10121016

1013-
def SA_waveform(self, axis: str, waveform=0, amplitude=1000, offset=500):
1017+
def SA_waveform(
1018+
self, axis: str, waveform: int = 0, amplitude: int = 1000, offset: int = 500
1019+
) -> None:
10141020
"""Programs the analog waveforms using SAA, SAO, and SAP
10151021
Default waveform is a sawtooth waveform with an amplitude of 1V with an offset of 0.5V
10161022
10171023
Parameters
10181024
----------
10191025
axis: str
10201026
Laser axis
1021-
waveform:
1027+
waveform: int
10221028
Type of waveform pattern according to https://asiimaging.com/docs/commands/sap
1023-
amplitude:
1029+
amplitude: int
10241030
amplitude of the waveform
1025-
offset:
1031+
offset: int
10261032
sets the center position of the waveform
10271033
"""
10281034

@@ -1034,7 +1040,7 @@ def SA_waveform(self, axis: str, waveform=0, amplitude=1000, offset=500):
10341040
self.send_command(f"SAO {axis}={offset}")
10351041
self.read_response()
10361042

1037-
def SAM(self, axis: str, mode: int):
1043+
def SAM(self, axis: str, mode: int) -> None:
10381044
"""Sets the single-axis mode according to the integer code.
10391045
10401046
0: stops waveforms if they are running

0 commit comments

Comments
 (0)