13 #@@tem = WIN32OLE.new('TEMScripting.Instrument')
16 def setStageA(x, y, z, a)
19 o,s = Open3.capture2("cscript vem/tool/setStageA.js " + x.to_s + " " + y.to_s + " " + z.to_s + " " + a.to_s)
20 position = o.lines.to_a[3]
25 def setStageR(x, y, z, a)
28 o,s = Open3.capture2("cscript ../../vem/tool/setStageR.js " + x.to_s + " "+ y.to_s + " " + z.to_s + " " + a.to_s)
29 position = o.lines.to_a[3]
34 def setSpotSize(spsize)
35 puts "FEI setSpotSize"
37 ill = @@tem.Illumination
38 ill.SpotsizeIndex = ill.SpotsizeIndex + spsize
39 return ill.SpotsizeIndex
42 def setMagnification(magsize)
43 puts "FEI setMagnification"
45 proj = @@tem.Projection
46 proj.MagnificationIndex = proj.MagnificationIndex + magsize
47 return proj.MagnificationIndex
51 puts "FEI acquisition"
53 WIN32OLE.ole_initialize
54 @@tem = WIN32OLE.new('TEMScripting.Instrument')
56 # get acquitision object
57 acq = @@tem.Acquisition
58 # acquire an image from "CCD" camera
59 acq.AddAcqDeviceByName("CCD")
61 ## settings for acquisition parameters
63 ccdCamerasAcqParams = acq.Cameras.Item(0).AcqParams
65 ccdCamerasAcqParams.Binning = 4
67 ccdCamerasAcqParams.ExposureTime = 0.07
69 ccdCamerasAcqParams.ImageSize = 2
72 imageCollection = acq.AcquireImages
74 img = imageCollection.Item(0)
75 imgData = img.AsSafeArray
76 return imgData.to_json
80 puts "FEI acquisition"
82 WIN32OLE.ole_initialize
83 @@tem = WIN32OLE.new('TEMScripting.Instrument')
85 # get acquitision object
86 acq = @@tem.Acquisition
87 # acquire an image from "CCD" camera
88 acq.AddAcqDeviceByName("CCD")
90 # ---settings for acquisition parameters
93 ccdCamerasAcqParams = acq.Cameras.Item(0).AcqParams
95 ccdCamerasAcqParams.Binning = 4
97 ccdCamerasAcqParams.ExposureTime = 0.07
99 ccdCamerasAcqParams.ImageSize = 0
104 imageCollection = acq.AcquireImages
106 img = imageCollection.Item(0)
107 imgData = img.AsSafeArray
109 imgLength = imgData.length
114 imgMax = imgData.flatten.max
115 imgMin = imgData.flatten.min
117 #conversion factor for 255 scale
118 conversion = 255/(imgMax.to_f - imgMin.to_f)
120 img255 = Array.new(imgLength){ Array.new(imgLength) }
122 imgLength.times do |x|
123 imgLength.times do |y|
124 img255[y][x] = ((imgData[x][y]-imgMin.to_f)*conversion).to_i
132 return img255.to_json
139 def setBeamTilt(params)
140 puts "FEI setBeamTilt"
147 puts "FEI getCondition"