| Version 2 (modified by , 13 years ago) ( diff ) |
|---|
waveformレコードに値を入れたい
例1:オシロスコープ
あらかじめASCIIモードで転送するように設定。CURV?コマンドを送ると、数値のみをコンマ区切りで値を返す場合。 (こんな感じのレスポンスは楽に処理できます)
CURV? 19,21,19,20,19,20,19,20,19,18, .... ,19,19,20,20,19,19<LF>
解決方法
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")
}
Note:
See TracWiki
for help on using the wiki.
