1 $:.unshift(File.dirname(__FILE__))
12 def TEMObject.instance
14 @instance = WIN32OLE.new('TEMScripting.Instrument')
21 class FEIControl < VEM
36 @@tem = TEMObject.instance
42 @@tem = TEMObject.instance
44 @@params["x"] = @@tem.Stage.Position.X
45 @@params["y"] = @@tem.Stage.Position.Y
46 @@params["z"] = @@tem.Stage.Position.Z
47 @@params["a"] = @@tem.Stage.Position.A
50 return @@params.to_json
53 def set_stageA(x, y, z, a)
57 position = @@tem.Stage.Position
61 position.A = a*(3.145159/180.0)
63 @@tem.Stage.GoTo(position, 15)
65 return @@params.to_json
68 def set_stageR(x, y, z, a)
71 position = @@tem.Stage.Position
72 position.X = position.X + x*1e-7
73 position.Y = position.Y + y*1e-7
74 position.Z = position.Z + z*1e-7
75 position.A = position.A + a*(3.145159/180.0)
77 @@tem.Stage.GoTo(position, 15)
79 return @@params.to_json
82 def set_spotsize(spsize)
83 puts "FEI setSpotSize"
85 ill = @@tem.Illumination
86 ill.SpotsizeIndex = ill.SpotsizeIndex + spsize
87 return ill.SpotsizeIndex
90 def set_magnification(magsize)
91 puts "FEI setMagnification"
93 proj = @@tem.Projection
94 proj.MagnificationIndex = proj.MagnificationIndex + magsize
95 return proj.MagnificationIndex
98 def acquisition_init(binning, exp_time, image_size)
100 @@tem = TEMObject.instance
102 # get acquitision object
103 @@acq = @@tem.Acquisition
105 # acquire an image from "CCD" camera
106 @@acq.AddAcqDeviceByName("CCD")
108 ## settings for acquisition parameters
109 # ccdCamerasAcqParams
110 ccdCamerasAcqParams = @@acq.Cameras.Item(0).AcqParams
112 ccdCamerasAcqParams.Binning = binning
114 ccdCamerasAcqParams.ExposureTime = exp_time
116 ccdCamerasAcqParams.ImageSize = image_size
117 return "#{ccdCamerasAcqParams.Binning}, #{ccdCamerasAcqParams.ExposureTime}, #{ccdCamerasAcqParams.ImageSize}"
121 @@tem = TEMObject.instance
122 @@acq = @@tem.Acquisition
125 imageCollection = @@acq.AcquireImages
126 img = imageCollection.Item(0)
127 return img.AsSafeArray
134 def set_beamtilt(params)
135 puts "FEI setBeamTilt"