@@ -76,14 +76,14 @@ def _temp_parser(response: str) -> float:
7676 return float (response .rsplit (":" , maxsplit = 1 )[- 1 ][:- 1 ])
7777
7878
79- class OxfordMercuryWorkerPS (InstrumentChannel ):
79+ class OxfordMercuryWorkerPS (InstrumentChannel [ "OxfordMercuryiPS" ] ):
8080 """
8181 Class to hold a worker power supply for the Oxford MercuryiPS
8282 """
8383
8484 def __init__ (
8585 self ,
86- parent : VisaInstrument ,
86+ parent : OxfordMercuryiPS ,
8787 name : str ,
8888 UID : str ,
8989 ** kwargs : Unpack [InstrumentBaseKWArgs ],
@@ -108,7 +108,7 @@ def __init__(
108108
109109 # The firmware update from 2.5 -> 2.6 changed the command
110110 # syntax slightly
111- if version .parse (self .root_instrument .firmware ) >= version .parse ("2.6" ):
111+ if version .parse (self .parent .firmware ) >= version .parse ("2.6" ):
112112 self .psu_string = "SPSU"
113113 else :
114114 self .psu_string = "PSU"
@@ -348,10 +348,14 @@ def __init__(
348348 self .firmware = self .IDN ()["firmware" ]
349349
350350 # TODO: Query instrument to ensure which PSUs are actually present
351- for grp in ["GRPX" , "GRPY" , "GRPZ" ]:
352- psu_name = grp
353- psu = OxfordMercuryWorkerPS (self , psu_name , grp )
354- self .add_submodule (psu_name , psu )
351+ GRPX = OxfordMercuryWorkerPS (self , "GRPX" , "GRPX" )
352+ self .GRPX : OxfordMercuryWorkerPS = self .add_submodule ("GRPX" , GRPX )
353+
354+ GRPY = OxfordMercuryWorkerPS (self , "GRPY" , "GRPY" )
355+ self .GRPY : OxfordMercuryWorkerPS = self .add_submodule ("GRPY" , GRPY )
356+
357+ GRPZ = OxfordMercuryWorkerPS (self , "GRPZ" , "GRPZ" )
358+ self .GRPZ : OxfordMercuryWorkerPS = self .add_submodule ("GRPZ" , GRPZ )
355359
356360 self ._field_limits = field_limits if field_limits else lambda x , y , z : True
357361
0 commit comments