= waveformレコードに値を入れたい = == 例1:オシロスコープ == あらかじめASCIIモードで転送するように設定。CURV?コマンドを送ると、数値のみをコンマ区切りで値を返す場合。 (こんな感じのレスポンスは楽に処理できます) {{{ CURV? 19,21,19,20,19,20,19,20,19,18, .... ,19,19,20,20,19,19 }}} === 解決方法 === protocol file (sample.proto) {{{ Terminator = LF; getIDN { out "*IDN?"; in "%39c"; ExtraInput = Ignore; } getDATA { Separator = ","; # データ区切りとしてコンマを使用 out "CURV?"; # CURV? コマンドを送る in "%d"; # integer データを入力。waveformレコードから呼ばれたときには%d変換が繰り返される。 } }}} database file (stream.db) NELM, FTVLを正しく設定しておく。 機器が返してくる配列数が不定の場合はNELMを大き目にとっておいて、プロセスした後でNORDをみてデータ数を判別する。 {{{ record(waveform, "obina:data_ch1") { field(DESC, "get wave data") field(DTYP, "stream") field(SCAN, "Passive") field(INP, "@sample.proto getDATA PS1") field(NELM, "10000") field(FTVL, "LONG") } }}}