1 $:.unshift(File.dirname(__FILE__))
12 def TEMObject.instance
14 @instance = WIN32OLE.new('TEMScripting.Instrument')
21 class FEIControl < VEM
36 # @@tem = WIN32OLE.new('TEMScripting.Instrument')
37 @@tem = TEMObject.instance
44 @@tem = TEMObject.instance
46 @@params["x"] = @@tem.Stage.Position.X
47 @@params["y"] = @@tem.Stage.Position.Y
48 @@params["z"] = @@tem.Stage.Position.Z
49 @@params["a"] = @@tem.Stage.Position.A
55 def set_stageA(x, y, z, a)
59 position = @@tem.Stage.Position
63 position.A = a*(3.145159/180.0)
65 @@tem.Stage.GoTo(position, 15)
70 def set_stageR(x, y, z, a)
73 position = @@tem.Stage.Position
74 position.X = position.X + x*1e-7
75 position.Y = position.Y + y*1e-7
76 position.Z = position.Z + z*1e-7
77 position.A = position.A + a*(3.145159/180.0)
79 @@tem.Stage.GoTo(position, 15)
84 def set_spotsize(spsize)
85 puts "FEI setSpotSize"
87 ill = @@tem.Illumination
88 ill.SpotsizeIndex = ill.SpotsizeIndex + spsize
89 return ill.SpotsizeIndex
92 def set_magnification(magsize)
93 puts "FEI setMagnification"
95 proj = @@tem.Projection
96 proj.MagnificationIndex = proj.MagnificationIndex + magsize
97 return proj.MagnificationIndex
100 def acquisition_init(binning, exp_time, image_size)
101 # get acquitision object
102 @@acq = @@tem.Acquisition
103 # acquire an image from "CCD" camera
104 @@acq.AddAcqDeviceByName("CCD")
106 ## settings for acquisition parameters
107 # ccdCamerasAcqParams
108 ccdCamerasAcqParams = @@acq.Cameras.Item(0).AcqParams
110 ccdCamerasAcqParams.Binning = binning
112 ccdCamerasAcqParams.ExposureTime = exp_time
114 ccdCamerasAcqParams.ImageSize = image_size
115 puts "#{ccdCamerasAcqParams.Binning}, #{ccdCamerasAcqParams.ExposureTime}, #{ccdCamerasAcqParams.image_size}"
120 imageCollection = @@acq.AcquireImages
121 img = imageCollection.Item(0)
122 return img.AsSafeArray
129 def set_beamtilt(params)
130 puts "FEI setBeamTilt"