class Labcom3::DBstorer
Authors-
S.imazu
Version-
25.2.0
Date-
2024-11-21
[ 説明 ]¶ ↑
-
汎用データを保存する制御クラス
[ メンバー ]¶ ↑
[ クラスメソッド ]¶ ↑
-
new( timeout=0, server=nil, path=nil, port=0 )
-
version( )
[ インスタンスメソッド ]¶ ↑
-
puts( shot, sub_shot, diag, mail_address, data_type, arc_data_array)
[ UPDATE履歴 ]¶ ↑
- 18.0.0
-
初版
- 19.0.0
-
変更
- 25.2.0
-
変更 require(Labcom3.rb)
Public Class Methods
new( )
click to toggle source
- 引 数
-
なし
- 説 明
-
コンストラクタ
# File lib/labcom3/DBstorer.rb, line 73 def initialize( ) ObjectSpace.define_finalizer( self, DBstorer.del_callback() ) end
version()
click to toggle source
- 引 数
-
なし
- 返 値
-
バージョン番号(String)
- 説 明
-
共有ライブラリのバージョン番号(String)を戻す
# File lib/labcom3/DBstorer.rb, line 45 def self.version() return DBstore.version() end
Public Instance Methods
puts( shot, sub_shot, diag, mail_address, data_type, arc_data_array)
click to toggle source
- 引 数
- shot (int)
-
ショット番号
- sub_shot (int)
-
サブショット番号
- diag (string)
-
データ名(計測名)
- mail_address (string)
-
メールアドレス
- data_type (string)
-
データ種別 ‘RAW’,‘ANA’
- arc_data_array (Array(
ArcData)) -
チャネルデータ配列
- 返 値
-
なし
- 例 外
-
DBstore::DBstoreError, RuntimeError
- 説 明
-
汎用データを保存する。
# File lib/labcom3/DBstorer.rb, line 94 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