@@ -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