if(rec_buf["type"]=="req")
if(rec_buf["data"]=="img")
@buf["type"] = "img"
+ @camera.unlock_acq
@buf["data"] = @camera.get_image
@buf["count"] = @count
ws.send(@buf.to_json)
@count = @count + 1
end
end
-
end
ws.onclose do
end
ws.onmessage do |msg|
- sleep(0.5)
rec_buf = JSON.parse(msg)
if(rec_buf["type"]=="req")
if(rec_buf["data"]=="img")
@buf["type"] = "img"
+ @camera.unlock_acq
@buf["data"] = @camera.get_image
@buf["count"] = @count
ws.send(@buf.to_json)
@count = @count + 1
end
end
-
end
ws.onclose do
@mutex = Mutex.new
@cv = ConditionVariable.new
@image = nil
- @complete = false
+ @acq_lock = true
+ @acq_complete = false
@flag = false
@count = 0
end
@flag = false
end
+ def lock_acq
+ @acq_lock = true
+ end
+
+ def unlock_acq
+ @acq_lock = false
+ @cv.broadcast
+ end
+
def execute
- #puts "execute #{@count}"
- sleep(1)
- @origin_image = @vem.acquisition # 撮影
+ @mutex.synchronize do
+ @cv.wait(@mutex) while (@acq_lock == true)
+ @origin_image = @vem.acquisition # 撮
+ end
+ lock_acq
converted_image = convert_256(@origin_image) # 256階調に変換
@image = converted_image.to_json
- @complete = true
+ @acq_complete = true
@cv.broadcast
@count = @count+1
end
def get_image
- if(@count==0) then
@mutex.synchronize do
- @cv.wait(@mutex) while (@complete == false)
- @complete = false
+ @cv.wait(@mutex) while (@acq_complete == false)
+ @acq_complete = false
return @image
end
- else
- return @image
- end
-
end
end
@mutex = Mutex.new
@cv = ConditionVariable.new
@image = nil
- @complete = false
+ @acq_lock = true
+ @acq_complete = false
@flag = false
@count = 0
end
@flag = false
end
+ def lock_acq
+ @acq_lock = true
+ end
+
+ def unlock_acq
+ @acq_lock = false
+ @cv.broadcast
+ end
+
def execute
- #puts "execute #{@count}"
- sleep(1.5)
- @origin_image = @vem.acquisition # 撮影
+ @mutex.synchronize do
+ @cv.wait(@mutex) while (@acq_lock == true)
+ puts "acq #{@count}"
+ @origin_image = @vem.acquisition # 撮
+ end
+ lock_acq
converted_image = convert_256(@origin_image) # 256階調に変換
@image = converted_image.to_json
- @complete = true
+ @acq_complete = true
@cv.broadcast
@count = @count+1
end
def get_image
- if(@count==0) then
@mutex.synchronize do
- @cv.wait(@mutex) while (@complete == false)
- @complete = false
+ @cv.wait(@mutex) while (@acq_complete == false)
+ @acq_complete = false
return @image
end
- else
- return @image
- end
-
end
end
def acquisition
@@acq = @@tem.Acquisition
-
# acquisition Image
imageCollection = @@acq.AcquireImages
img = imageCollection.Item(0)
return @@params[:proj][:focus].to_json
end
- def set_defocusr(params)
- puts "FEI setDefocus"
+ def set_defocusR(params)
+ puts "FEI setDefocusR"
proj = @@tem.Projection
- proj.Defocus = proj.Defocus
+ proj.Defocus = proj.Defocus + params*1e-9
@@params[:proj][:defocus] = proj.Defocus
return @@params[:proj][:defocus].to_json
end
def acquisition
@@acq = @@tem.Acquisition
-
# acquisition Image
imageCollection = @@acq.AcquireImages
img = imageCollection.Item(0)
+ puts img
return img.AsSafeArray
end
test.test_acq_init
test.test_acq
=end
+test.test_acq_init
+test.test_acq
#test.test_set_magnificationR
#test.test_set_image_beam_shift
#test.test_set_focus
-test.test_set_defocusR
+#test.test_set_defocusR
#test.test_set_reset_defocus
#test.test_set_condenser_stg
#test.test_set_object_stg
puts @@vem.set_focus(0)
end
- def test_set_defocusr
- puts @@vem.set_defocusr(1)
+ def test_set_defocusR
+ puts @@vem.set_defocusR(1)
end
def test_set_reset_defocus
test.test_acq
=end
+test.test_acq
+
#test.test_set_magnificationR
#test.test_set_image_beam_shift
#test.test_set_focus
-test.test_set_defocus
+#test.test_set_defocusR
#test.test_set_reset_defocus
#test.test_set_condenser_stg
#test.test_set_object_stg
$:.unshift(File.dirname(__FILE__))
-$ip_address = 'localhost'
-$cs_port = '2000'
+$ip_address = '192.168.4.146'
+$cs_port = '3000'
$vemapi_port = 9090
$debug = true
-$em_name = 'mock'
+$em_name = 'fei'
$:.unshift(File.dirname(__FILE__))
-$ip_address = '192.168.4.146'
-$cs_port = '3000'
+$ip_address = 'localhost'
+$cs_port = '192.168.4.146'
$vemapi_port = 9090
$debug = true
-$em_name = 'mock'
+$em_name = 'fei'