def unmount(segment, puck, sample, force=False): """ """ print "unmount: ", segment, puck, sample, force #Initial checks assertValidAddress(segment, puck, sample) robot.assert_no_task() robot.state.assertReady() robot.assert_cleared() if hexiposi.homed == False: raise Exception ("Hexiposi is not homed") #Enabling enable_motion() set_hexiposi(segment) if not force: #Clearing for image processing robot.move_park() assert_img_in_cover_pos(segment) location = get_current_point() try: robot.get_gonio() except: #TODO: recover raise try: robot.move_dewar_wait() except: #TODO: recover raise try: robot.put_dewar(segment, puck, sample) except: #robot.move_dewar() raise