ステータスフラグに応じた演算シグナルの挙動
MDF測定ファイルでは、各サンプルに以下の2つのフラグを追加することができます。1つはそのタイムスタンプにおいて値が存在するかを示し(Has a value)、もう1つはその値が有効かどうかを示します(Value is valid)。
各フラグはTrueまたはFalseの値をとり、次の4とおりの組み合わせがあります。
|
Has a value |
Value is valid |
意味 |
例 |
|---|---|---|---|
|
true |
true |
通常のサンプル |
|
|
false |
true |
サンプルがない |
測定開始後、実際のシグナル値が取得できるようになるまでのタイムスタンプ |
|
true |
false |
エラーサンプル(値あり) |
|
|
false |
false |
エラーサンプル(値なし) |
0で除算される整数値 |
演算シグナルの場合は、入力シグナルのフラグの状態が計算結果に反映されます。
これは次のように行われます。
-
No value - 値のないサンプル
- これはサンプル(タイムスタンプを含む)が完全に欠落しているのと同じ意味になります。
- このフラグにより、あるシグナルのNo valueを、同じグループ内で、同じタイムスタンプの他のシグナルのサンプルと組み合わせて使用することができます。
- No valueを使用した計算結果もNo valueとしてマークされます(他のシグナルとの補間によりサンプルが発生する場合を除く)。
- 積分などの「ステートフル演算」(状態を保持する演算)では、状態が更新されません。
-
Error - エラーサンプル(値あり/なし)
- いずれかの入力サンプルにエラー(無効値など)があると、エラーが演算結果に反映されます。
- ただし入力サンプルの影響がない場合はその限りではありません。たとえば、true? 3: error の結果は必ず 3 になります。
- エラーは「ステートフル演算」の状態にも反映されます。
- したがって、積分などの累積演算は、対象範囲にエラーサンプルが存在する限り、エラーとなります。