from SmartRemote import SmartRemote

class ControlZScanner:
    def __init__(self):
        self.__sr = SmartRemote()

    def retract_z_scanner(self):
        reply = self.__sr.run('spm.zscanner.retractAll()')
        return reply['result']
    
    def get_z_scanner_pos(self):
        reply = self.__sr.run('spm.zscanner.pos')
        pos = float(reply['value'])
        return pos
    
    def set_z_scanner_range(self,percent:int=70):
        reply = self.__sr.run(f'spm.zscanner.changeRangeTo({percent})')
        return reply['result']  


if __name__ == "__main__":
    czs = ControlZScanner()
    czs.retract_z_scanner()
    pos = czs.get_z_scanner_pos()
    print(f'Z Scanner Pos.: {pos}')
    czs.set_z_scanner_range(30)