OSDN Git Service

arrangement file
[vem/vem.git] / lib / request.rb
1 $:.unshift(File.dirname(__FILE__))
2
3 require 'json'
4 require '../vem/vem'
5 require '../vem/mock'
6 begin
7 require '../vem/feicontrol'
8 rescue LoadError
9 end
10 require '../tool/imageProc'
11
12 class Request
13         include ImageProc
14
15         def initialize(command, params)
16                 puts "create request"
17                 @command = command
18                 @params  = params
19                 @result = nil
20                 @mutex = Mutex.new
21                 @cv = ConditionVariable.new
22                 @complete = false
23     @em = $em_name
24         end
25
26         def execute
27                 @vem = VEM.create(@em)
28                 case @command
29                 when "get"
30                         @result = @vem.get_params
31                 when "stagea"
32                         @result = @vem.set_stageA(@params["x"].to_i, @params["y"].to_i, @params["z"].to_i, @params["a"].to_i)
33                 when "stager"
34                         @result = @vem.set_stageR(@params["x"].to_i, @params["y"].to_i, @params["z"].to_i, @params["a"].to_i)
35                 when "acq_init"
36                         @result = @vem.acquisition_init(@params["bng"].to_i, @params["exp"], @params["size"].to_i)
37                 when "acq"
38                         image = @vem.acquisition
39                         converted_image = convert_256(image)
40                         @result = converted_image.to_json
41                 else
42                         puts "else"
43                 end
44                 puts "execute end"
45                 @complete = true
46                 @cv.broadcast
47         end
48
49         def get_result
50                 @mutex.synchronize do
51                         @cv.wait(@mutex) while (@complete == false)
52                         puts "resturn result"
53                         return @result
54                 end
55         end
56 end