1 $:.unshift(File.dirname(__FILE__))
12 def TEMObject.instance
14 @instance = WIN32OLE.new('TEMScripting.Instrument')
21 class FEIControl < VEM
38 @@tem = TEMObject.instance
45 @@tem = TEMObject.instance
47 @@params["x"] = @@tem.Stage.Position.X
48 @@params["y"] = @@tem.Stage.Position.Y
49 @@params["z"] = @@tem.Stage.Position.Z
50 @@params["a"] = @@tem.Stage.Position.A
53 return @@params.to_json
56 def set_stageA(x, y, z, a)
60 position = @@tem.Stage.Position
64 position.A = a*(3.145159/180.0)
66 @@tem.Stage.GoTo(position, 15)
68 return @@params.to_json
71 def set_stageR(x, y, z, a)
74 position = @@tem.Stage.Position
75 position.X = position.X + x*1e-7
76 position.Y = position.Y + y*1e-7
77 position.Z = position.Z + z*1e-7
78 position.A = position.A + a*(3.145159/180.0)
80 @@tem.Stage.GoTo(position, 15)
82 return @@params.to_json
85 def set_spotsize(spsize)
86 puts "FEI setSpotSize"
88 ill = @@tem.Illumination
89 ill.SpotsizeIndex = ill.SpotsizeIndex + spsize
90 return ill.SpotsizeIndex
93 def set_magnification(magsize)
94 puts "FEI setMagnification"
96 proj = @@tem.Projection
97 proj.MagnificationIndex = proj.MagnificationIndex + magsize
98 return proj.MagnificationIndex
101 def acquisition_init(binning, exp_time, image_size)
103 @@tem = TEMObject.instance
105 # get acquitision object
106 @@acq = @@tem.Acquisition
108 # acquire an image from "CCD" camera
109 @@acq.AddAcqDeviceByName("CCD")
111 ## settings for acquisition parameters
112 # ccdCamerasAcqParams
113 ccdCamerasAcqParams = @@acq.Cameras.Item(0).AcqParams
115 ccdCamerasAcqParams.Binning = binning
117 ccdCamerasAcqParams.ExposureTime = exp_time
119 ccdCamerasAcqParams.ImageSize = image_size
120 return "#{ccdCamerasAcqParams.Binning}, #{ccdCamerasAcqParams.ExposureTime}, #{ccdCamerasAcqParams.ImageSize}"
124 @@tem = TEMObject.instance
127 imageCollection = @@acq.AcquireImages
128 img = imageCollection.Item(0)
129 return img.AsSafeArray
136 def set_beamtilt(params)
137 puts "FEI setBeamTilt"