OSDN Git Service

95e4a613f009fbd5d2a7c84eb6ff170b957b4cbb
[vem/vem.git] / vem / mock.rb
1 $:.unshift(File.dirname(__FILE__))
2
3 require "json"
4 require "vem"
5 require "singleton"
6
7
8 class MockControl < VEM
9   include Singleton
10
11   def initialize
12     @params = {
13       :stage => {
14       :x => 0,
15       :y => 0,
16       :z => 0,
17       :a => 0,
18     },
19     :ccdCamera => {
20       :binning    => 1,
21       :expTime    => 1,
22       :imageSize  => 0
23     },
24       :proj => {
25       :magIndex => 0,
26       :mag => 0,
27       :imageBeamShift => {:x => 0, :y => 0},
28       :focus => 0,
29       :defocus => 0,
30       :objStg => {:x => 0, :y => 0}
31     },
32       :ill => {
33       :spotSizeIndex => 0,
34       :condenserStg => {:x => 0, :y => 0}
35     },
36       :vacuum => {
37       :p1 => 1,
38       :p2 => 2,
39       :p3 => 3,
40       :p4 => 4,
41       :p5 => 5,
42       :p8 => 8
43     }
44     }
45     @send_size = 2048
46   end
47
48   def get_params
49     puts "MOCK get params"
50     return @params.to_json
51   end
52
53   def set_stageA(x, y, z, a)
54     puts "MOCK setStageA"
55
56     @params[:stage][:x] = x
57     @params[:stage][:y] = y
58     @params[:stage][:z] = z
59     @params[:stage][:a] = a
60
61     return @params[:stage].to_json
62   end
63
64   def set_stageR(x, y, z, a)
65     puts "MOCK setStageR"
66
67     @params[:stage][:x] = @params[:stage][:x].to_i + x
68     @params[:stage][:y] = @params[:stage][:y].to_i + y
69     @params[:stage][:z] = @params[:stage][:z].to_i + z
70     @params[:stage][:a] = @params[:stage][:a].to_i + a
71
72     return @params[:stage].to_json
73   end
74
75   def set_spotsizeA(spsize)
76     puts "MOCK setSpotSizeA"
77
78     @params[:ill][:spotSizeIndex] = spsize
79     return @params[:ill].to_json
80   end
81
82   def set_spotsizeR(spsize)
83     puts "MOCK setSpotSizeR"
84
85     @params[:ill][:spotSizeIndex] = @params[:ill][:spotSizeIndex] +  spsize
86     return @params[:ill].to_json
87   end
88
89   def set_magnificationA(magsize)
90     puts "MOCK setMagnificationA"
91
92     @params[:proj][:magIndex] = magsize
93     return @params[:proj].to_json
94   end
95
96   def set_magnificationR(magsize)
97     puts "MOCK setMagnificationR"
98
99     @params[:proj][:magIndex] = @params[:proj][:magIndex] + magsize
100     return @params[:proj].to_json
101   end
102
103   def set_defocusR(defocus)
104     puts "MOCK setDefocus"
105     @params[:proj][:defocus] = @params[:proj][:defocus] + defocus
106     return @params[:proj].to_json
107   end
108
109   def set_reset_defocus
110     puts "MOCK setResetDefocus"
111     @params[:proj][:defocus] = 0
112     return @params[:proj].to_json
113   end
114
115   def set_condenser_stg(x, y)
116     puts "MOCK setCondenserStigmater"
117     return @@params[:ill][:condenserStg].to_json
118   end
119
120   def set_object_stg(x, y)
121     puts "MOCK setObjectStigmator"
122     return @@params[:proj][:objStg].to_json
123   end
124
125
126
127   def acquisition_init( binning, exp_time, image_size )
128     if(image_size==0)
129       @send_size = 2048/binning
130     elsif(image_size==1)
131       @send_size = 2048/(2*binning)
132     elsif(image_size==2)
133       @send_size = 2048/(4*binning)
134     end
135     @params[:ccdCamera][:binning]    = binning
136     @params[:ccdCamera][:expTime]   = exp_time
137     @params[:ccdCamera][:imageSize] = image_size
138     return @params[:ccdCamera].to_json
139   end
140
141   def acquisition
142     img_array = Array.new
143     # 画像ファイルをひらく
144     File.open("#{File.dirname(__FILE__)}/image/image#{@send_size}", "r") do |file|
145       img_array = JSON.load(file)
146     end
147     return img_array
148   end 
149
150   def get_vacuum_status
151     puts "MOCK getVacuumStatus"
152
153     return @params[:vacuum].to_json
154   end
155
156 end
157