def scan_pin(segment, puck, sample, force=False): pin_name = get_sample_name(segment, puck, sample) print "scan pin", pin_name #Initial checks assert_valid_address(segment, puck, sample) assert_puck_detected(segment, puck) robot.assert_no_task() robot.reset_motion() robot.wait_ready() robot.assert_cleared() #robot.assert_in_known_point() #Enabling set_status("Scanning pin: " + str(pin_name)) enable_motion() set_hexiposi(segment) if not force: visual_check_hexiposi(segment) if not robot.is_dewar(): robot.move_dewar() robot.get_dewar(segment, puck, sample) (detected, dm) = move_scanner() update_samples_info_sample_scan(get_puck_name(segment, puck), sample, detected, dm) robot.move_dewar() robot.put_dewar(segment, puck, sample) ret = "Empty" if detected: if (dm is None) or (len(dm.strip())==0): ret = "Present" else: ret = str(dm) return ret def scan_puck(segment, puck, force=False): ret = [] for i in range(16): ret.append(scan_pin (segment, puck, i+1, force)) return ret