From 1adbd5bfd838159f80368b18f5fbbd93bc4c81c0 Mon Sep 17 00:00:00 2001 From: iwasaki Date: Wed, 9 Dec 2015 09:26:06 +0900 Subject: [PATCH] modify by FEI --- vem/.feicontrol.rb.un~ | Bin 43969 -> 48755 bytes vem/.test.rb.un~ | Bin 21899 -> 24605 bytes vem/.vem.rb.un~ | Bin 0 -> 3995 bytes vem/feicontrol.rb | 220 +++++++++++++++++++++++++---------------------- vem/feicontrol.rb~ | 134 +++++++++++++++++++++++++++++ vem/test.rb | 7 +- vem/test.rb~ | 36 ++++++++ vem/vem.rb | 5 +- vem/vem.rb~ | 51 +++++++++++ vemserver/.vemapi.rb.un~ | Bin 0 -> 21349 bytes vemserver/vemapi.rb | 33 +++++-- vemserver/vemapi.rb~ | 99 +++++++++++++++++++++ 12 files changed, 471 insertions(+), 114 deletions(-) create mode 100644 vem/.vem.rb.un~ create mode 100644 vem/feicontrol.rb~ create mode 100644 vem/test.rb~ create mode 100644 vem/vem.rb~ create mode 100644 vemserver/.vemapi.rb.un~ create mode 100644 vemserver/vemapi.rb~ diff --git a/vem/.feicontrol.rb.un~ b/vem/.feicontrol.rb.un~ index 672c884d7e0884276a66abd0343a4a9ca7c36360..fc2a49db2d90fb00500f17e313537514e8fd3471 100644 GIT binary patch literal 48755 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 R$NhSP+|&(HB!Boj{|73Q=2HLw literal 43969 zcmeI5U2I&(b;l`Lvb45j*^*^j{=6dXh?1xkC5n>O_=D7kZN-+YS_)%ZwB;4KlvgHq zY3|CQWIKtQexym-CXU_jI6(8#y6r>ShoV4HG<|A;w#Z9?KD3WP9ul-gfj$&%(f)tu z&g`CDE~(XS*{6G;(Y<%(oHMiMKWFaD+?nA-Y3@6pEuX0Tuy5_(Y_1&r{wM#m@!Zk> z{_cC<`)K>8cm1UFSI_c|C zF!fe`eCn+$rG?@t602gIQMglKjlvlPh-(ae6O&s<){(lQ@4^pA6|GG#_CHBm6>j0_ ze?+E=hm2Oi0uz(#erRy?_5J%j(tn4-HieHAfa1O+nJ&&G)ne^zO%RU{E)FGEhmvbU zNn!Ws`-UKFHz`B{&HEHG1fxY(^(q8^>=C?Ix!td@41zDVK@h~&xk7^G!wMOK&M2#Q zD+K@5BRHU}9#M!0?r8Yne5H1_bgej8ov-Q=JrKOsyYhi0_-!FBYeTWZYLf8#x0Ud_ zw~pV1YI^_y>}FR)z#LM@9MBnM^=<{=e|P}*Dyw}8(E%T-19-Y{sa%>VO%><@4XV@Q z-4N6^xKe^BDCUUE+z>0QCJDv=>%uzX>@SRTnw73OPK z7K#T4`=_c?3#Iv5@^*1~Xj9 ze2_fnD``Da#+CeRsa&j*UN}GUsyOa2jw`ilolTM3h+HVDbme+<7z|OVHYr4+!ZDsQ zlVp`Fnx)IDuVnt-SF-zkC8N=%l6|1SIQ5=7oc&LoJk=Q1_6PWYYqLTmpd_R06&@|p z%k^$2?C(8%|KQ=HjbJSMp#t#bfNyN9R-6lXfzNFUk-!cCqs-l+CAz#m;N<+h!|UdG zj~CNE(fr`m7hnPw8;lYs0y5k(>r-KkUMX4}J^tRq^gRy~EgJs!8w$X*)mp{y8qB|> z7vW+64xnyVhy;ikaM2pQUOia;-UIhXD*ff<=U<|)fxvFvHYM6ve`6B zv`8;kKNR=(9@#IpB1@<8Hx(G~^?)o$+FYit5bs!2+aydj;etteAdjZM_sG8Qk;SQa z2S#MKq&_=eSSZXflO9^y*b|CH1Ht;>FhebxrOWF>PR`$Z)V|sdwcnN?Yj19ELG2wB z+H$No6ok`HsKp)XW({m=kKX=IoVdUDfc~im6knn@^KAuS%GpG9|I7W+0l|mK z(Ma@e5wdR$nFB_%ba~zBu)_?(XBp~Ab4#~@p`F0dHjiFI5e7I(SPC|G7qN4@n zm3Ui|N3x2ld3`dq!10Az(BO+RIxV&3m8RN4?RXH?fv7n&4Mth394*o1)mzrzyV|m` zX+;RNC7OSY?$^;R3XL()_`VeiBX2fWAY=4IzRC3W9YYmA^a4xbiUMT7WUG@ik8+mj z=GON{{Jn>1XKVXQzcfzitWT0+c{;ch*!WgF(KF4axmAXhEYS=3#>(G&toD1X=-)7J z#=DZ%PlG~s-drlyE~LZx09&H8euYRt$TAqC47O;AF0bAp{Jn?mSq~d+M~g=eOg~zD^njW2tI|Lw5E+=g!qU;w+@%wRnyp5?T&wIHc5rl*m8*4KKQ9(UAlTDoK2$R?KUXYYs=Z-qe@vvho&*}*+5Gk9;a3I;YZ(pqCUsf#gP_yjMCZ|7$U)A*H;9#(!9u>JyPp3;|j4-o%&s3%Sc5$Jq72>;zDcLXjqO_4Y zgy#F}dQ*esYg#;BO{Oc!yI0>ei7$xjO9~JYhG5-*j(;)be^)%nK=2=Jlv^bpUsxzy zwT~!u6}#VQ8=Jgm*oLo8$r!LH@=w7ibl*e)pv%@Ax&t=x2=1^Z*-KjGYF__+C@m>k1Hj1IuM} zEZqyEJPw)Qt70Y-2*K2?lCWjQSSA&Xeh8K$%jgcZE!ZwrR!#v(jcCfwO96R8D6={< z(9R~t{<2sQfnXmZZ*yt&CTjY^T(xG&)uF^XE5({xchm4WNudQo!%j4aKR-S_t)iVM zzFnFs9=rOy5FhM6e*8p#>RuCKeF+&6VuNYMmeE2nDU?&BlbMCeTw-#`lvNtb^s|y6 zV+d*M#7R~rvK8v-(Fp0*5)(KlCbEPOuvgCj9sJZkYTD1Fa}_EVFYAN_lXy{FNI^(+ z^WD}I{j`M7qD55Cy8cPOGF!Y*(k7}>VOEtoXA&=n6DbIZmVTbuDE)0|m+N`)oPk*c zf9P^KKD|~<^J%4`9fEUdBm1mk;ez0Bz1Yv_@j2o}B<%yTcFyLV+58p9w){^?j2s|T zv~}udlt5k(O!?*VX>sbX`^++WT5@Ctp<_9}eoATN2f?>{xx5;F?OpezM92z4yp4CC zP&BzfuvnL*jn%B`3bOpl{(W33$Q44}b^QC7SSSGm`yPJZzyOZSYrfdZle@v|81R)|9Z+T&w zYp%Gz(Q4aINf>1iik#CN)#Im$7m?Ht0CD@;LgjM4X;<^9@^mrnjy)<~)I!KTiQIg9 z0oi1^l)XvVCvD|CB1IGkLTNhomD0LZ&*&jNW5xtV#e@)qfHq^dj5wQ$pEgH_#CRA9 z5ke9PBftwPOqLJ^%bQ9VqMg$>*TAFY6Pll5S zQhN=FCl9kI@JD-bWC6b{o;hLq_lOS}2!3a&-FnWsU1!gx$$UzDsE3fbg0WWKTbj@B*S{q@OkZrb!*p-b(FRj1$|K62p8!#m zWp*IGnBp)X4kRGBRn6)+aQ;ry=`E&zr?`-UkZ?#OdhAz#Na6+54v2@8h8hSyYah}+ zj2-%uf4Xw6G8ng+3?&Cf)Be)~;zbrh&Kl;(mbYcPdj?1H2M&!M7(KfGz@zH%rh@m2 z`9Y*a2wD%nE@%t0_Z%qhOS{MSiGiG;rOdYczQKI2n9vR_WwxD74dxwULOZmi{B_?- zO>oB7+`A=!FofVTn2x8I-USD&BDh;IZ8}rQFuhY;NI^(AOt49(zv!t$dtLh#&>6z&C=Z#G#Eh3O8e4>D0Y)labX5!=8LO-!Y zG%&)GL5DSZrB0x0I$jZob}Ib7f`<-Bk`N!E11j&{G}Q1Qmkks!LNC+_bpPcWQ6OSC z_y-Cexi2YT50+mc?1b*h{<7Sw!GtU0NidjkPwL&xls(_Uhrp@9}rY%_8QudN_9~ zF`D0)gVzDeVI%_qS>(%LidO0N+6heCI)TZr@T4$6mci65EUj|?XD|T^OM)Y@C>PJm zzJx`K^m6S4rlvn_ktjD7;Kcd&rgzv%9iq@U0$*H+ty_Z@ue*tdtV@CwdZ13=Y&xm| zPXf+3C%-Y5OV{cKxcp*#$^~@5wSk8WF09Z4bpqEw>$}XuwIP?YzXuf10-d5`o>T@j1gQTB6Hq-I9`DbUGMMTlZmN^0vSCZa1lf*A&2usglh(e-MHqw&hwj zDQa`CqVMr*{oU5zIGDRPms@Vrv7`?K=k9!4iG(1jU2c!1Qg`HXDoTA_*m&a)M=J4C zh+0Wk-0&^VhfK}#J5I#{?Lnc=N9ka5YbwA7iMD&=l{}iuwcn+y5--0;SAw^qGi(yp z7s~POkOcqUgQ{QJ5h^Id%18iwe9K>pZ1$JDyTGD1X?LH_jVM+8v%G z-eLG0+jWm>3i^*Cr?PSo(~X@N6%^=&XbP4bX|?#SIPN1A{Y#Rsl6=gPL;l^Jv?VQ? zz7XlSFWqZw9B=j1w~5D=)}D4e-6vQt7px+^zU#fk)F$zaGbQRh=idhDFAH5uG5gci zLW4j9Fpl0pW4cmCqpU%Qmgw?Yx1{9#y>AeH>>C7HkfH(%e7WiBwGf~kll(D-NWfe# zL(~r zY{;%nhx1i2UJ03j>^jqpBl0z!Kzd0mh(IkF&nW5*OGuOMY|XfS;3-WgiXfDTGvwKN;Aw1d zBj?T18PSWqvzTVxi1u$&Gkrmfu?tA94@ejNh7}G&d|hm010nKA5J@1qc}-^<#`EPY zw>W}`q8hp@vnGCNSTYbWSsIHtWFcFPx!Vpejd@ZGWCp>k$>R1yOq!t+a0Q}?Vj9FK zYnGxVy1dpcDfxH`6{=jbwBr!j?V3gEi2~vw5sl&>QMJo|0P3XrLTfT7+Tfh#iPPx*7Bf=SW&L~~qc7olPJ$7+z zSUc<*C+-F8!0I!uY~aZHmkc{+l&)_(!R{*_JKTo;ay#rAM=J*G!0K67HgH5Z!_FC{ z>)TGS`-aCZE*p#3>BDWk&1`?3X222Lo^#~{Q*hitT=wq63O!IKIDTs-9EVzPY=FAA zu;hr;04Wfjc7+CBAm#j`3{s5H3v~|ZP3ah})iw7m3u&@EreOHID>nEtINVNL=B8L- zHA$oO^eC`(DW-87S8Q(E&KQlyqe=nm1y?+P+^VpaxC}h3u$nY6c}MycVtoo8OR4dj z2;SOUJa7+S&bXog+MNow5|;sm6;_ibCby=4*7fETsBOv&pjceMkbRTZ@M@Y~Q=sK5 zv*Bgu{Yoqb-;A!nmO+LQR+R+VLF>P4NFj^glOkmLOw+-qmVo636*U)%dyB3c6%0q> zGWWv@t4R}+>$mv6Xmr1il&Q^Zz8-J_7f)aYGfWvy7-3aOI5llzrYnJ)M4b4e2ur_T K(Hr^EC;tn;C46cC diff --git a/vem/.test.rb.un~ b/vem/.test.rb.un~ index 511d12bc42e0d3a881bfa0368cb1ee59d45853a9..fce23a9aab90884483e3ec72f27858080b99029a 100644 GIT binary patch delta 715 zcmaiyy-UMD6u@&*m8hj!Gt@#gek?8(tF40y72B~>Y9a`RP{UEA(VAcvp|}YyT6Gi` zv3@K{{sA{}a}tX-G1Y`^LrSvbHA(!Uzx%#dLbpEXlL7n$5+j>FDdmhEcL1 z*8v0p0!#rI`1TQ0s+|WgD+&4oyl!Y&AqlskT$6)Ps z+ubdEMqqXT804Td=$N(>$A@kd%E@h30u_^hAE?KTVWzB7^^qxiJY|e$QQHE9&<3BH z&no%2WmaIyTi6c+8Nh{DJN&D*UbKo1ZvYD>0Y9*rb|8Qg?oqTrGE`e)O>lP`Bsu{Z zKzBeitrc#=-6_BiG!Fq1`L xnHQ;6W9DAZEJCIWKs%cMycXR4vu9Y&DzWRr>@!rWGrQEZ;~&5a_mBPK@*AY+gYEzT delta 118 zcmbPxfU$cuV`5ll?)=a^m;9#;Ot~6Nen-B|6r3w-KP#z8wvlZeujiY^>KCFPSiU+@ x+M~(9z@P}kFdz(MFaoh5Q~*T7Fhf|3;4&7FEdR#J@?b`W%^!m|Ffu(~1pq1z9s>XX diff --git a/vem/.vem.rb.un~ b/vem/.vem.rb.un~ new file mode 100644 index 0000000000000000000000000000000000000000..dbd1480a351fcccf396ac0957078f3cad123e70e GIT binary patch literal 3995 zcmeH~ze_?<6vwY-rbA0LINqV5mW0aPA%}>dh+Yvvh(6`f>q$O^mZ1KPgoMV{{sE_G zl!oSpv?ZdYG3zQ9#Kci5TUy9wT!It9sl|U^gXBy81v|XC!P5=L3>j z2^}!Q|8&5r9^NP%LVRcFhhhIT#i|~Q+_l1l^(hJ#5Dn)B6WbD1CQPj`CfJ{#Sf>CQ z#>DGbf`AA(RVf-wup~+mraOfx7E}`u%}_9=bjdCHzO)M4x~!NFe-tj@2~|uDFSaGB zOuSwcuXw-YIiBBG*6$;5asN+4h0@@I6B7~r%i2-+k|TUT p!i@;`i{T2xhXI+v1ScjU!qiikQX@=kf6#w8Ude5i$NG==`(K0oib? 0, - "y" => 0, - "z" => 0, - "a" => 0 - } - - @@acq = nil - - - def initialize - puts "FEI initialize" - - @@tem = WIN32OLE.new('TEMScripting.Instrument') - end - - def get_params - puts "FEI get params" - - @@params["x"] = @@tem.Stage.Position.X - @@params["y"] = @@tem.Stage.Position.Y - @@params["z"] = @@tem.Stage.Position.Z - @@params["a"] = @@tem.Stage.Position.A - return @@params - end - - def set_stageA(x, y, z, a) - puts "FEI setStageA" - - position = @@tem.Stage.Position - position.X = x*1e-7 - position.Y = y*1e-7 - position.Z = z*1e-7 - position.A = a*(3.145159/180.0) - - @@tem.Stage.GoTo(position, 15) - get_params - return @@params - end - - def set_stageR(x, y, z, a) - puts "FEI setStageR" - - position = @@tem.Stage.Position - position.X = position.X + x*1e-7 - position.Y = position.Y + y*1e-7 - position.Z = position.Z + z*1e-7 - position.A = position.A + a*(3.145159/180.0) - - @@tem.Stage.GoTo(position, 15) - get_params - return @@params - end - - def set_spotsize(spsize) - puts "FEI setSpotSize" - - ill = @@tem.Illumination - ill.SpotsizeIndex = ill.SpotsizeIndex + spsize - return ill.SpotsizeIndex - end - - def set_magnification(magsize) - puts "FEI setMagnification" - - proj = @@tem.Projection - proj.MagnificationIndex = proj.MagnificationIndex + magsize - return proj.MagnificationIndex - end - - def acquisition_init(binning, exp_time, image_size) - # get acquitision object - @@acq = @@tem.Acquisition - # acquire an image from "CCD" camera - @@acq.AddAcqDeviceByName("CCD") - - ## settings for acquisition parameters - # ccdCamerasAcqParams - ccdCamerasAcqParams = @@acq.Cameras.Item(0).AcqParams - # binning - ccdCamerasAcqParams.Binning = binning - # exposuretime - ccdCamerasAcqParams.ExposureTime = exp_time - # imagesize - ccdCamerasAcqParams.ImageSize = image_size - puts "#{ccdCamerasAcqParams.Binning}, #{ccdCamerasAcqParams.ExposureTime}, #{ccdCamerasAcqParams.image_size}" - end - - def acquisition - # acquisition Image - imageCollection = @@acq.AcquireImages - img = imageCollection.Item(0) - return img.AsSafeArray - end - - def set_obj(params) - puts "FEI setObj" - end - - def set_beamtilt(params) - puts "FEI setBeamTilt" - end + include TEMObject + @@params = { + "x" => 0, + "y" => 0, + "z" => 0, + "a" => 0 + } + + @@acq = nil + + + def initialize + puts "FEI initialize" + + # @@tem = WIN32OLE.new('TEMScripting.Instrument') + @@tem = TEMObject.instance + puts @@tem + end + + def get_params + puts "FEI get params" + + @@tem = TEMObject.instance + + @@params["x"] = @@tem.Stage.Position.X + @@params["y"] = @@tem.Stage.Position.Y + @@params["z"] = @@tem.Stage.Position.Z + @@params["a"] = @@tem.Stage.Position.A + return @@params + end + + def set_stageA(x, y, z, a) + puts "FEI setStageA" + + + position = @@tem.Stage.Position + position.X = x*1e-7 + position.Y = y*1e-7 + position.Z = z*1e-7 + position.A = a*(3.145159/180.0) + + @@tem.Stage.GoTo(position, 15) + get_params + return @@params + end + + def set_stageR(x, y, z, a) + puts "FEI setStageR" + + position = @@tem.Stage.Position + position.X = position.X + x*1e-7 + position.Y = position.Y + y*1e-7 + position.Z = position.Z + z*1e-7 + position.A = position.A + a*(3.145159/180.0) + + @@tem.Stage.GoTo(position, 15) + get_params + return @@params + end + + def set_spotsize(spsize) + puts "FEI setSpotSize" + + ill = @@tem.Illumination + ill.SpotsizeIndex = ill.SpotsizeIndex + spsize + return ill.SpotsizeIndex + end + + def set_magnification(magsize) + puts "FEI setMagnification" + + proj = @@tem.Projection + proj.MagnificationIndex = proj.MagnificationIndex + magsize + return proj.MagnificationIndex + end + + def acquisition_init(binning, exp_time, image_size) + # get acquitision object + @@acq = @@tem.Acquisition + # acquire an image from "CCD" camera + @@acq.AddAcqDeviceByName("CCD") + + ## settings for acquisition parameters + # ccdCamerasAcqParams + ccdCamerasAcqParams = @@acq.Cameras.Item(0).AcqParams + # binning + ccdCamerasAcqParams.Binning = binning + # exposuretime + ccdCamerasAcqParams.ExposureTime = exp_time + # imagesize + ccdCamerasAcqParams.ImageSize = image_size + puts "#{ccdCamerasAcqParams.Binning}, #{ccdCamerasAcqParams.ExposureTime}, #{ccdCamerasAcqParams.image_size}" + end + + def acquisition + # acquisition Image + imageCollection = @@acq.AcquireImages + img = imageCollection.Item(0) + return img.AsSafeArray + end + + def set_obj(params) + puts "FEI setObj" + end + + def set_beamtilt(params) + puts "FEI setBeamTilt" + end end diff --git a/vem/feicontrol.rb~ b/vem/feicontrol.rb~ new file mode 100644 index 0000000..bb9cdfc --- /dev/null +++ b/vem/feicontrol.rb~ @@ -0,0 +1,134 @@ +$:.unshift(File.dirname(__FILE__)) + +require 'singleton' +require 'win32ole' +require 'open3' +require 'json' + +require 'vem' + +module TEMObject + @instance = nil + def TEMObject.instance + unless @instance then + @instance = WIN32OLE.new('TEMScripting.Instrument') + end + return @instance + end +end + + +class FEIControl < VEM + include TEMObject + @@params = { + "x" => 0, + "y" => 0, + "z" => 0, + "a" => 0 + } + + @@acq = nil + + + def initialize + puts "FEI initialize" + + # @@tem = WIN32OLE.new('TEMScripting.Instrument') + @@tem = TEMObject.instance + puts @@tem + end + + def get_params + puts "FEI get params" + + @@tem = TEMObject.instance + puts @@tem.Stage + + +# @@params["x"] = @@tem.Stage.Position.X +# @@params["y"] = @@tem.Stage.Position.Y +# @@params["z"] = @@tem.Stage.Position.Z +# @@params["a"] = @@tem.Stage.Position.A + return @@params + end + + def set_stageA(x, y, z, a) + puts "FEI setStageA" + + + position = @@tem.Stage.Position + position.X = x*1e-7 + position.Y = y*1e-7 + position.Z = z*1e-7 + position.A = a*(3.145159/180.0) + + @@tem.Stage.GoTo(position, 15) + get_params + return @@params + end + + def set_stageR(x, y, z, a) + puts "FEI setStageR" + + position = @@tem.Stage.Position + position.X = position.X + x*1e-7 + position.Y = position.Y + y*1e-7 + position.Z = position.Z + z*1e-7 + position.A = position.A + a*(3.145159/180.0) + + @@tem.Stage.GoTo(position, 15) + get_params + return @@params + end + + def set_spotsize(spsize) + puts "FEI setSpotSize" + + ill = @@tem.Illumination + ill.SpotsizeIndex = ill.SpotsizeIndex + spsize + return ill.SpotsizeIndex + end + + def set_magnification(magsize) + puts "FEI setMagnification" + + proj = @@tem.Projection + proj.MagnificationIndex = proj.MagnificationIndex + magsize + return proj.MagnificationIndex + end + + def acquisition_init(binning, exp_time, image_size) + # get acquitision object + @@acq = @@tem.Acquisition + # acquire an image from "CCD" camera + @@acq.AddAcqDeviceByName("CCD") + + ## settings for acquisition parameters + # ccdCamerasAcqParams + ccdCamerasAcqParams = @@acq.Cameras.Item(0).AcqParams + # binning + ccdCamerasAcqParams.Binning = binning + # exposuretime + ccdCamerasAcqParams.ExposureTime = exp_time + # imagesize + ccdCamerasAcqParams.ImageSize = image_size + puts "#{ccdCamerasAcqParams.Binning}, #{ccdCamerasAcqParams.ExposureTime}, #{ccdCamerasAcqParams.image_size}" + end + + def acquisition + # acquisition Image + imageCollection = @@acq.AcquireImages + img = imageCollection.Item(0) + return img.AsSafeArray + end + + def set_obj(params) + puts "FEI setObj" + end + + def set_beamtilt(params) + puts "FEI setBeamTilt" + end + +end + diff --git a/vem/test.rb b/vem/test.rb index f535c40..5d7cc39 100644 --- a/vem/test.rb +++ b/vem/test.rb @@ -6,6 +6,10 @@ class TEST @@vem = VEM.create("fei") end + def test_get_params + @@vem.get_params + end + def test_set_stageA @@vem.set_stageA(3, 0, 0, 0) end @@ -28,6 +32,5 @@ class TEST end test = TEST.new -test.test_acq_init -test.test_acq +test.test_get_params diff --git a/vem/test.rb~ b/vem/test.rb~ new file mode 100644 index 0000000..959723c --- /dev/null +++ b/vem/test.rb~ @@ -0,0 +1,36 @@ +require "./vem" +require "./feicontrol" + +class TEST + def initialize + @@vem = VEM.create("fei") + end + + def test_get_params + @@vem = VEM.get_params + end + + def test_set_stageA + @@vem.set_stageA(3, 0, 0, 0) + end + + def test_set_stageR + @@vem.set_stageR(1, 0, 0, 0) + end + + def test_set_spotsize + @@vem.set_spotsize(1) + end + + def test_acq_init + @@vem.acquisition_init(4, 0.07, 0) + end + + def test_acq + @@vem.acquisition + end +end + +test = TEST.new +test.test_get_params + diff --git a/vem/vem.rb b/vem/vem.rb index d847507..1ace2a8 100644 --- a/vem/vem.rb +++ b/vem/vem.rb @@ -1,8 +1,9 @@ $:.unshift(File.dirname(__FILE__)) -class VEM +require 'singleton' - def self.create (inst) +class VEM + def self.create (inst) if inst == "hitachi" then HITACHIControl.new() elsif inst == "fei" then diff --git a/vem/vem.rb~ b/vem/vem.rb~ new file mode 100644 index 0000000..1ace2a8 --- /dev/null +++ b/vem/vem.rb~ @@ -0,0 +1,51 @@ +$:.unshift(File.dirname(__FILE__)) + +require 'singleton' + +class VEM + def self.create (inst) + if inst == "hitachi" then + HITACHIControl.new() + elsif inst == "fei" then + FEIControl.new() + elsif inst == "jeol" then + JEOLControl.new() + elsif inst == "mock" then + MockControl.new() + end + end + + def initialize + end + + def get_params + end + + def set_stageA(x, y, z, a) + end + + def set_stageR(x, y, z, a) + end + + def set_spotsize(spsize) + end + + def set_magnification(magsize) + end + + def acquisition_init + end + + def acquisition + end + + def set_obj(params) + end + + def set_beamtilt(params) + end + + def set_speed(params) + end + +end diff --git a/vemserver/.vemapi.rb.un~ b/vemserver/.vemapi.rb.un~ new file mode 100644 index 0000000000000000000000000000000000000000..b5e21a8626ad2b7788d0eb9cbb19bae859134b1a GIT binary patch literal 21349 zcmeI4U2GIp6vvnH{ZYOYQ4v|TSXzW#kbnsW0i_tCd{w&&wON-k3=_KBvNNsFkPu@` zc+&^pc_;C~2Q@~G55Ae0sEN_|;*;^2MBhyC|G#t3_ONc3rQNG9_avwH&UANY=KRh% z_sqSsTZ}5VhN?%$f6sIct-N#hXedT*}3^Wn#t zOlA~1n1$4WcycVs9?Tv-JQY;(<9pnITQ&|OdpThUB0yze&#M@X3PBF z|LLd&is7lh4UVqNUys^PCW1jIG32%#$WK<|OVP!o?^rYzs)6Z2idkH>#qjiE12WSbWKU1qBuQ?uI!{uqhovW}EaRjLk}C|! zg(*n}5Rpho4)km-OvbeWa&jT4PGxJ8=dWdV9nX#)C=A6xEiOcFm*eu~s1OE~LL61g zNv*uAQjU|LRv3%U^QCBP)ROHIbs6MN)RD|B)gI}yM-?kl(_)>cW z-@tr)25R1Hb2PCmhl&sx2LvNNM~fxq*tU;pahjtUAIF-SbXGz|NUj%ZN?}h+%;KsA zt$VWJQ`Y=E9%*eLEjv#U21zNMi?Hm-Y878;g&g?-Mm#&QgsT?pzA}-vG>tSSIWfN; z$%v&}odl8bwWcifn3QFlbc^( zDa*{I`=nSBZM`%=e@gZP+8es^V0PROl|b9f%A?^)jF}k@vn)?qEG+pJnO!8sN4RZ; zg!ww3KE)#QY1^TC&QR^18S_~8pMx^64ApFOF&hU-5>>-Ee<7F(#>OWqK{YvK(o^H85o#Uk@*88OC^X!ofPVq}{A#c*PaVYoVFco6@12|5fV!!u1H6F5t8QVxS7 z^{1n*>Sv*@>5XZbkM zv>0OKKBi8M{I)>NnyMdHm1UfC!R(4=#+03f3Nr>TMCzg9z=`~5Ehr~JU#>DfdO0Ug zt`XbgP!S@{K|MyXh|?Ar(`7pQyA4fe9RQO2Zi0~x8P3n}%mLs!Y zWl%kZdFEc*9FAu8sZ)tYA;k`@qu$I`Ei^TA=~}XZtn0U53S%*!1IRY$-A0o zp~7=hi-`n#%SmD^QbkCUHzPhG#Uf5y5KLEfZMDOD!NX7?*zV{k#jczzk-h-+7{ww^ zTVQ-o2jUSN?M0|yeBi`Neyn^&vgjOxnkUkHVimKvYQgiS;khQA2^zqGI1?m1Pc+QW z&TkgTrs6CPz#B~w@+Wg6p1D}URg148Zq+f|$o%CxbAC6nBgEz2RxXM3NxX+UJaJmV zrGR+ve@vW&`G}(kNt3vlkM_jHEUsD*-_eTr={90KpNyBHnJ+)Lp5V8sotX7vAYFji zIi~nPrxBbAu;*K0ADR>P21oeU;*Moc*1hWT=m%tfmiv6j(+VyH?Drb>YnzvH=Q_l` z!5g@`XB~jRx2sE}Gn|C>ai4bpTEV5j0Y1^ee*y+>4x3t0(>Rmu~8JbN9r1 zLrQO}(j)90>hkCagwL$w;nN6C1@OOa1%G%R@EhD=wtA1mpH>%1Z=eU1xX*__t>9AN z0pGOpfVVp80S!K(sy<@pqn#pji6JQ0+`Jpm2u=lV@SS#p*Ko8VRH{A)zjtQKK7!_h zw<2@`g6BP-2Tvn76@dSt75LYi#DD7_x@(B>S$^%#($^u+>!c@;{xCOu_NNtG3h4iA z=&wuf_8Y_g&Cbwoa0&Z^ht>u3^>txm0aRM=0@^xG`uGjQZ*>Bo`4>Xv`xPDf5v@ON F{{wnVyng@y literal 0 HcmV?d00001 diff --git a/vemserver/vemapi.rb b/vemserver/vemapi.rb index ccc956c..addc352 100644 --- a/vemserver/vemapi.rb +++ b/vemserver/vemapi.rb @@ -1,6 +1,7 @@ -$:.unshift(File.dirname(__FILE__)) #!/usr/bin/env ruby -I c:/Users/iwasaki/gem/sinatra-master/lib -I lib +$:.unshift(File.dirname(__FILE__)) + require 'sinatra/base' require '../vem/vem' require '../vem/mock' @@ -13,7 +14,7 @@ end class Vemapi < Sinatra::Base - @@vem = nil + # @@vem = nil get '/' do headers \ @@ -27,10 +28,10 @@ class Vemapi < Sinatra::Base "Access-Control-Allow-origin" => "*" if settings.development? - @@vem = VEM.create("mock") + vem = VEM.create("mock") print "created mock instance" else - @@vem = VEM.create(params[:emname]) + vem = VEM.create(params[:emname]) print "created #{params[:emname]} instance" end @@ -41,8 +42,16 @@ class Vemapi < Sinatra::Base get '/:emname/get' do headers \ "Access-Control-Allow-origin" => "*" + + if settings.development? + vem = VEM.create("mock") + print "created mock instance" + else + vem = VEM.create(params[:emname]) + print "created #{params[:emname]} instance" + end - result = @@vem.get_params + result = vem.get_params "#{result}" end @@ -50,7 +59,15 @@ class Vemapi < Sinatra::Base get '/:emname/set/stagea' do headers \ "Access-Control-Allow-origin" => "*" - result = @@vem.set_stageA(params["x"], params["y"], params["z"], params["a"]) + if settings.development? + vem = VEM.create("mock") + print "created mock instance" + else + vem = VEM.create(params[:emname]) + print "created #{params[:emname]} instance" + end + +result = vem.set_stageA(params["x"].to_i, params["y"].to_i, params["z"].to_i, params["a"].to_i) "#{result}" end @@ -58,14 +75,14 @@ class Vemapi < Sinatra::Base get '/:emname/set/stager' do headers \ "Access-Control-Allow-origin" => "*" - result = @@vem.set_stageR(params["x"], params["y"], params["z"], params["a"]) + result = @@vem.set_stageR(params["x"].to_i, params["y"].to_i, params["z"].to_i, params["a"].to_i) "#{result}" end get '/:emname/set/acq' do headers \ "Access-Control-Allow-origin" => "*" - result = @@vem.acquisition_init(params["bin"], params["expt"], params["size"]) + result = @@vem.acquisition_init(params["bin"].to_i, params["expt"].to_i, params["size"].to_i) "#{result}" end diff --git a/vemserver/vemapi.rb~ b/vemserver/vemapi.rb~ new file mode 100644 index 0000000..6952601 --- /dev/null +++ b/vemserver/vemapi.rb~ @@ -0,0 +1,99 @@ +#!/usr/bin/env ruby -I c:/Users/iwasaki/gem/sinatra-master/lib -I lib + +$:.unshift(File.dirname(__FILE__)) + +require 'sinatra/base' +require '../vem/vem' +require '../vem/mock' +begin + require '../vem/feicontrol' +rescue LoadError +end +#require 'vem/jeolcontrol' +#require './vem/hitachicontrol' + +class Vemapi < Sinatra::Base + + # @@vem = nil + + get '/' do + headers \ + "Access-Control-Allow-origin" => "*" + 'VEM API test' + end + + + get '/:emname/init' do + headers \ + "Access-Control-Allow-origin" => "*" + + if settings.development? + vem = VEM.create("mock") + print "created mock instance" + else + vem = VEM.create(params[:emname]) + print "created #{params[:emname]} instance" + end + + return "created #{params[:emname]} instance" + end + + + get '/:emname/get' do + headers \ + "Access-Control-Allow-origin" => "*" + + if settings.development? + vem = VEM.create("mock") + print "created mock instance" + else + vem = VEM.create(params[:emname]) + print "created #{params[:emname]} instance" + end + + result = vem.get_params + "#{result}" + end + + + get '/:emname/set/stagea' do + headers \ + "Access-Control-Allow-origin" => "*" + if settings.development? + vem = VEM.create("mock") + print "created mock instance" + else + vem = VEM.create(params[:emname]) + print "created #{params[:emname]} instance" + end + +result = vem.set_stageA(params["x"].to_i, params["y"].to_i, params["z"].to_i, params["a"].to_i) + "#{result}" + end + + + get '/:emname/set/stager' do + headers \ + "Access-Control-Allow-origin" => "*" + result = @@vem.set_stageR(params["x"], params["y"], params["z"], params["a"]) + "#{result}" + end + + get '/:emname/set/acq' do + headers \ + "Access-Control-Allow-origin" => "*" + result = @@vem.acquisition_init(params["bin"], params["expt"], params["size"]) + "#{result}" + end + + get '/:emname/acq' do + headers \ + "Access-Control-Allow-origin" => "*" + result = @@vem.acquisition + "#{result}" + end + +end + +Vemapi.run! :host => '192.168.4.145', :port => 9090 + -- 2.11.0