def initializeJeol(self): # 1. checking the communication to microscope if ToTEM.GetCheckMicroscope() != 0: print 'Communication Error: Jeol 3100 is not ready to serve.' return # 2.1 setting the mag mode LowMag and defining low mag focus for the future defocus ToTEM.SelectFunctionMode(self.LowMAG) ToTEM.SetOM(self.theObjectMini) self.theFocusLowMAG = self.theObjectMini # 2.2 setting the mag mode LMAG and defining focus for the future defocus ToTEM.SelectFunctionMode(self.MAG1) # 3. defining focus plane for the future defocus length ToTEM.SetOLFine(self.theObjectLensFine) ToTEM.SetOLCoarse(self.theObjectLensCoarse) self.theFocusMAG1 = self.theObjectLensFine + ( self.theObjectLensCoarse * 32) print 'Jeol is MAG1 mode and focus is defined for the future defocus.' # 4. initializing screen position as 'up' ToTEM.SetScreen(1) self.theScreenPos = 'up' # 5. MDS photo mode is set for film recording if ToTEM.GetMDSMode() != 3: ToTEM.SetMDSMode(3) return
def setDefocus(self, defocus, relative="absolute"): if defocus == 0.0: if self.theMagMode == self.LowMAG: ToTEM.SetOM(self.theFocusLowMAG) elif self.theMagMode == self.MAG1: focus = self.theFocusMAG1 focus_coarse = int(focus / 32) focus_fine = focus - (focus_coarse * 32) print 'focus coarse:', focus_coarse, 'fine:', focus_fine ToTEM.SetOLCoarse(focus_coarse) ToTEM.SetOLFine(focus_fine) else: pass return 0 if relative == 'relative': defocus += self.getDefocus() elif relative == 'absolute': pass print self.theMagMode if self.theMagMode == self.LowMAG: defocus_steps = int(round(defocus / 0.00000001)) ToTEM.SetOM(self.theFocusLowMAG + defocus_steps) elif self.theMagMode == self.MAG1: defocus_steps = int(round(defocus / 0.0000000058)) focus = self.theFocusMAG1 + defocus_steps focus_coarse = int(focus / 32) focus_fine = focus - (focus_coarse * 32) print 'focus coarse:', focus_coarse, 'fine:', focus_fine ToTEM.SetOLCoarse(focus_coarse) ToTEM.SetOLFine(focus_fine) else: return 1 return 0