pyfast_adt.main.adaptor.microscope.adaptor_fei_temspy

Classes

Tem_fei_temspy

every angle for moving the satge must be in deg as input and output, velocity for the stage in radian/s and um for the stage xyz movement

Module Contents

class pyfast_adt.main.adaptor.microscope.adaptor_fei_temspy.Tem_fei_temspy(ip='192.168.21.1', port=8080, cam_table=None, master=None)

Bases: pyfast_adt.main.adaptor.microscope.adaptor_tem.Tem_base

every angle for moving the satge must be in deg as input and output, velocity for the stage in radian/s and um for the stage xyz movement

tem = None
result = []
master = None
client
calibrated_speed = None
move_stage_up(stage_ampl)

‘ take a float as stage ampl (um) and move the stage on +y of that quantity, rotation and scale to um already inside

move_stage_down(stage_ampl)
move_stage_left(stage_ampl)
move_stage_right(stage_ampl)
move_stage_z_up(stage_ampl)
move_stage_z_down(stage_ampl)
move_beam_up(beam_ampl)
move_beam_down(beam_ampl)
move_beam_left(beam_ampl)
move_beam_right(beam_ampl)
move_stem_beam_up(beam_ampl)
move_stem_beam_down(beam_ampl)
move_stem_beam_left(beam_ampl)
move_stem_beam_right(beam_ampl)
diffraction(checked_diff_value, kl=None)

“ this function set directly to 350 KL to fix a bug in temscript, this is ok only for the tecnai spirit, we should set in an external file which is the standard KL to set

get_defocus()
set_defocus(defocus)
euc_focus()
wobbler(checked_wobbler_value)
move_screen(checked_screen_value)
get_screen_position()
beam_blank(checked_blank_value)
apply_rotation(vector, theta=216.4)
fake()
get_stage(standard=False)

return it in deg and um if standard == True return also the measuring units

set_stage_position(x=None, y=None, z=None, a=None, b=None)
get_beam_shift()

return the value of the beam shift

set_beam_shift(beam_pos)

set the value of the beam shift

connect(ip, port)
get_projection_mode()
set_magnification(mag_value)
get_magnification()
set_KL(kl_value)
get_KL()

“return the KL value in mm

get_intensity(slot=0)

slot: 0,1,2, where 0 is not store the c2% value, 1 is store in beam_intensity_1, and 2 in the beam_intensity_2

set_intensity(intensity=0, slot=0)
get_spotsize()

return the c1 index value, in fei/termofisher this is the spotsize

load_calibration_table(cam_table)
set_alpha(angle, velocity=1)
set_alpha_temspy(angle, velocity=1, event=None, stop_event=None)

this is not really compatible with the prague method right now, because the bot start changing the value and the wait event will only press the button but all the threads starts together

set_xyz_temspy(value, axis, velocity=1, event=None, stop_event=None)

move an axis of the gonio using compustage temspy

set_xyz_tui(axis)

move an axis of the gonio using stage tui bot

microscope_thread_setup(tracking_file='tracking.txt', tracking_dict=None, timer=None, event=None, stop_event=None)

“this function read the tracking file and set up the threads necessary for the acqusition. 3 sockets are necessary to work. if tracking_positions == None and experiment_type == “continuous”, the stage is threaded only for continuous rotation (trackless experiment). if tracking positions != None and experiment_type == “continuous”, the stage is threaded for continuous rotation and the beam is threaded for tracking. if experiment_type == “stepwise”, the beam only is threaded for tracking waiting to pass the target angle to apply the tracking beamshift. in the case of cred, results are displayed in the variable self.result

calc_stage_speed(speed)

“calculate the speed in degrees/s for the tecnai series, 1 is equivalent to the maximum (normalized). speed is provided in degrees/s and return it in rad/s.

angle_tracking(final_angle, result: list, timer=None, event=None, stop_event=None)
beamshift_tracking(tracking_dict, result=None, timer=None, event=None, stop_event=None)

this thread live in a separate socket and check continuously the position of the stage. when the angle is in the one to apply the tracking, the beamshift is applied to track the crystal. the thread work passivly waiting for the angle to be reached/passed to work

beamshift_tracking_stem(tracking_dict, result=None, timer=None, event=None, stop_event=None)

this thread live in a separate socket and check continuously the position of the stage. when the angle is in the one to apply the tracking, the beamshift is applied to track the crystal. the thread work passivly waiting for the angle to be reached/passed to work

get_voltage()
test_tracking(tracking, ub_class=None)

this thread live in a separate socket and check continuously the position of the stage. when the angle is in the one to apply the tracking, the beamshift is applied to track the crystal. the thread work passivly waiting for the angle to be reached/passed to work

test_tracking_stem(ub_class)

this thread live in a separate socket and check continuously the position of the stage. when the angle is in the one to apply the tracking, the beamshift is applied to track the crystal. the thread work passivly waiting for the angle to be reached/passed to work

continuous_rotation(a, speed, event=None, stop_event=None)

modified cred function for fei_temspy because the stage is rotated by the bot. so it’s normal that the wait here is commented because the wait is in the set_alpha_temspy function. a input in deg and speed in a.u. (radians)

get_illumination_mode()

return micro or nanoprobe for the condenser minilens fei

set_illumination_mode(mode)

set micro or nanoprobe for the condenser minilens fei

get_instrument_mode()

return the current instrument mode i.e. TEM/STEM

set_instrument_mode(mode)

set the current instrument mode i.e. TEM/STEM