OSDN Git Service

arrangement file
[vem/vem.git] / lib / request.rb
diff --git a/lib/request.rb b/lib/request.rb
new file mode 100644 (file)
index 0000000..4381d47
--- /dev/null
@@ -0,0 +1,56 @@
+$:.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