--- /dev/null
+$:.unshift(File.dirname(__FILE__))
+
+require 'json'
+require '../vem/vem'
+require '../vem/mock'
+begin
+require '../vem/feicontrol'
+rescue LoadError
+end
+require '../tool/imageProc'
+
+class Request
+ include ImageProc
+
+ def initialize(command, params)
+ puts "create request"
+ @command = command
+ @params = params
+ @result = nil
+ @mutex = Mutex.new
+ @cv = ConditionVariable.new
+ @complete = false
+ @em = $em_name
+ end
+
+ def execute
+ @vem = VEM.create(@em)
+ case @command
+ when "get"
+ @result = @vem.get_params
+ when "stagea"
+ @result = @vem.set_stageA(@params["x"].to_i, @params["y"].to_i, @params["z"].to_i, @params["a"].to_i)
+ when "stager"
+ @result = @vem.set_stageR(@params["x"].to_i, @params["y"].to_i, @params["z"].to_i, @params["a"].to_i)
+ when "acq_init"
+ @result = @vem.acquisition_init(@params["bng"].to_i, @params["exp"], @params["size"].to_i)
+ when "acq"
+ image = @vem.acquisition
+ converted_image = convert_256(image)
+ @result = converted_image.to_json
+ else
+ puts "else"
+ end
+ puts "execute end"
+ @complete = true
+ @cv.broadcast
+ end
+
+ def get_result
+ @mutex.synchronize do
+ @cv.wait(@mutex) while (@complete == false)
+ puts "resturn result"
+ return @result
+ end
+ end
+end