Authors
S.imazu
Version
20.0.0
Date
2018-06-01
new( timeout=0, server=nil, path=nil, port=0 )
version( )
puts( shot, sub_shot, diag, mail_address, data_type, arc_data_array)
汎用データを保存する制御クラス
18.0.0 初版 19.0.0 変更
なし
[説 明] コンストラクタ
# File labcom/DBstorer.rb, line 73 def initialize( ) ObjectSpace.define_finalizer( self, DBstorer.del_callback() ) end
なし
バージョン番号(String)
[説 明] 共有ライブラリのバージョン番号(String)を戻す
# File labcom/DBstorer.rb, line 44 def self.version() return DBstore.version() end
ショット番号
サブショット番号
データ名(計測名)
メールアドレス
データ種別 'RAW','ANA'
チャネルデータ配列
なし
DBstore::DBstoreError, RuntimeError
[説 明] 汎用データを保存する。
# File labcom/DBstorer.rb, line 95 def puts( shot, sub_shot, diag, mail_address, data_type, arc_data_array) dd = 0 return if arc_data_array == nil # データがない。 if( arc_data_array.is_a?(Array) ) then return if 0 == arc_data_array.length # データがない。 data_array = arc_data_array elsif( arc_data_array.is_a?(ArcData) ) then data_array = [arc_data_array] else raise RuntimeError, 'Illegal type of arc_data' end data_array.each {|data| if( !data.is_a?(ArcData) ) then raise RuntimeError, 'Illegal type of arc_data_array' end } begin # begin_1 dd = DBstore.open(mail_address, diag, shot, sub_shot, data_type.upcase()) ch_no = 0 for arc_data in data_array do ch_no = ch_no + 1 if arc_data.is_frame() then DBstore.open_frame(dd, ch_no, arc_data.samples.x_size, arc_data.samples.y_size, arc_data.samples.image_type) fr = 0 for fr_data in arc_data.samples.frames do fr = fr+1 DBstore.write_frame(dd, ch_no, fr, fr_data.block_bin_str) end # end of for-fr DBstore.close_frame(dd, ch_no, arc_data.parameters) else # samples DBstore.write(dd, ch_no, arc_data.parameters, arc_data.samples.block_bin_str, arc_data.samples.image_type) end # end of if end # end of for-arc_data DBstore.close(dd) dd = 0 # rescue DBstore::DBstoreError => ex rescue => ex if( dd != 0 )then DBstore.abort(dd) end raise ex end # end of begin_1 return end