(57)【特許請求の範囲】
【請求項１】
ソフトウエアにより実行される、オシロスコープの動作設定を保存および再格納する方法において：
ユーザよりなされた、オシロスコープの設定および調整を反映する一連の変数の保存を開始するステップ；
前記オシロスコープの操作において採用されている複数の階層ソフトウエアオブジェクトのそれぞれに属する、内部変数のそれぞれを決定するステップ；
前記ソフトウエアオブジェクトの前記階層構造に対応する階層構造内のファイルに前記決定された結果を保存するステップ；
前記内部変数が格納されている前記オシロスコープと異なるオシロスコープにおいて前記ファイルを再現するステップ；及び、
前記再現された内部変数に従って前記異なるオシロスコープの動作設定を設定するステップ；を含み、
前記格納された内部変数が再格納された時に、前記内部変数が、階層パスにより前記再現されたファイル内で指定されるように、前記ファイルがモジュール型であることを特徴とする方法。
【請求項２】
前記オシロスコープのいかなる制御の変化によっても、前記内部変数が修正されることを特徴とする請求項１記載の方法。
【請求項３】
前記異なるオシロスコープのいかなる要件とも同じにするために、前記内部変数が修正されることを特徴とする請求項１記載の方法。
【請求項４】
前記ファイルがコンピュータプログラムを構成することを特徴とする請求項１記載の方法。
【請求項５】
前記コンピュータプログラムが工業標準プログラミング言語で書かれていることを特徴とする請求項４記載の方法。
【請求項６】
前記工業標準プログラミング言語がビジュアルベイシックスクリプトであることを特徴とする請求項５記載の方法。
【請求項７】
ソフトウエアにより実行される、オシロスコープの動作設定を保存および再格納するための装置において：
ユーザよりなされた、オシロスコープの設定および調整を反映する一連の変数の保存を開始する手段；
前記オシロスコープの操作において採用されている複数の階層ソフトウエアオブジェクトのそれぞれに属する、内部変数のそれぞれを決定する手段；
前記ソフトウエアオブジェクトの前記階層構造に対応する階層構造内のファイルに前記決定された結果を保存する手段；
前記内部変数が格納されている前記オシロスコープと異なるオシロスコープにおいて前記ファイルを再現する手段；及び、
前記再現された内部変数に従って前記異なるオシロスコープの動作設定を設定する手段；を備え、
前記格納された内部変数が再格納された時に、前記内部変数が、階層パスにより前記再現されたファイル内で指定されるように、前記ファイルがモジュール型であることを特徴とする装置。
【請求項８】
前記オシロスコープのいかなる制御の変化によっても、前記内部変数が修正されることを特徴とする請求項７記載の装置。
【請求項９】
前記異なるオシロスコープのいかなる要件とも同じにするために、前記内部変数が修正されることを特徴とする請求項７記載の装置。
【請求項１０】
前記ファイルがコンピュータプログラムを構成することを特徴とする請求項７記載の装置。
【請求項１１】
前記コンピュータプログラムが工業標準プログラミング言語で書かれていることを特徴とする請求項１０記載の装置。
【請求項１２】
前記工業標準プログラミング言語がビジュアルベイシックスクリプトであることを特徴とする請求項１１記載の装置。
【請求項１３】
ソフトウエアにより実行される、オシロスコープの動作設定を保存および再格納するための方法において：
ユーザよりなされた、オシロスコープの設定および調整を反映する一連の変数の保存を開始するステップ；
前記オシロスコープの操作において採用されている複数の階層ソフトウエアオブジェクトのそれぞれに属する、内部変数のそれぞれを決定するステップ；
前記ソフトウエアオブジェクトの前記階層構造に対応する階層構造内のファイルに前記決定された結果を保存するステップ；
前記内部変数が格納されている前記オシロスコープと異なるオシロスコープにおいて前記ファイルを再現するステップ；
前記異なるオシロスコープにより決定されたものとして、前記内部変数を修正するステップ；及び、
前記再現され、修正された内部変数に従って前記異なるオシロスコープの動作設定を設定するステップ；を含み、
前記格納された内部変数が再格納された時に、前記内部変数が、階層パスにより前記再現されたファイル内で指定されるように、前記ファイルがモジュール型であることを特徴とする方法。
【発明の詳細な説明】
【０００１】
関連出願へのクロスリファレンス
本出願は、２０００年１１月１７日に出願された米国仮特許出願６０／２４９，４８２号の恩典を特許請求する。上記出願の全内容は本明細書に参照として含まれる。
【０００２】
発明の背景
本発明は概ね、オシロスコープにより取り込まれた波形データをストリーミングアーキテクチャを用いて処理するための方法及び装置に関する。
【０００３】
デジタルオシロスコープは電気信号を測定するための複雑な計測器である。デジタルオシロスコープは、オペレータが注目する信号を特徴づける情報の捕捉、処理、表示及び格納に協同してあたる、多くのエレクトロニクスハードウエアモジュール及び多くのソフトウエアモジュールからなる。作業の本来的な複雑性にもかかわらず設定及び使用が容易な計測器をつくりだすときに処理される必要がある数群の要件がある。
【０００４】
発明の概要
“制御変数”と呼ぶことができる内部変数は、いかなる計測器制御ソフトウエアについても、極めて普遍的で中心をなす態様である。計測器(オシロスコープまたは関連計測器)はいかなる時点においても“状態”を有する。例えば、ある数のコンポーネントが組み合わされ、処理コンポーネントのそれぞれがそれぞれの状態を有する(例えば、ＦＦＴ(高速フーリエ変換)コンポーネントはある“ウインドウ”を選択し、ある閾値またはヒステリシスをタイミングパラメータに選択していることができる)。計測器をいつでも以前の状態に復帰させ得るべきであれば、計測器全体の状態を格納または記録するための手段が必要である。
【０００５】
いついかなる時にも、オペレータは目前の測定作業を実行するために、例として少しだけを挙げれば、信号捕捉レート、測定点数、入力回路感度、実時間で施される信号増強手段のタイプ及び質、データの表示スタイル、捕捉信号について実時間で評価されるべきパラメータ、を支配する数１００の動作特性のそれぞれに対して適切な値または設定を選択することにより、計測器を構成する。これらの特性のそれぞれは、発明者等がCvar(制御変数)と名付けるソフトウエアエンティティに具現化される。計測器における全てのCvarの現在値のセットが、その計測器の制御状態を構成する。タイムベース、垂直チャネル感度、トリガ条件、マス(Math)及びパラメータ設定、表示外観、及び数１０ないし数１００のその他の詳細の、オシロスコープ状態を制御するためにCvarが用いられる。
【０００６】
計測器を使用するオペレータには、Cvarの現在値及び可能な値のセットを操作するため及び見るための効率的な手段が必要である。操作手段には、計測器の前面パネル上の物理的なボタン及びノブ、計測器画面上の仮想的なボタン及びノブ、並びにネットワークを通して計測器に接続された別のコンピュータ上で実行することができるコンピュータプログラムにより発せられるリモートまたはオートメーションコマンドがある。オペレータには、別の時及び／または別の場所で同じタイプの測定を繰り返すために、コンピュータファイルの形態でのCvarの完全なセットを保存するための効率的な手段も必要である。Cvarの完全なセットを保存することにより、計測器はユーザのために設定を思い出すことができる。ユーザは、ユーザが後日再現できる‘設定’をいくらでも、ハードディスクのような計測器の記憶媒体に格納することもできる。これらの設定ファイルは、同じ計測器ファミリーに属する相異なるオシロスコープモデルとの間で、例えばｅメールを用いて、交換することさえできる。相異なるモデルのそれぞれは、異なるモデルから設定を受け入れ、別の計測器で保存された状態に近づくように最善を尽くして適合しようとするであろう。
【０００７】
好ましい実施形態の詳細な説明
本発明のより完全な理解のため、以下の説明及び添付図面が参照される。
【０００８】
本発明にしたがう装置及び方法の好ましい実施形態を添付図面を参照して説明する。
【０００９】
本発明にしたがえば、完全に“モジュール化”されており、よってオシロスコープソフトウエアを構成する要素がインターフェースに関して完全に仕様化され、実行時に(例えばオシロスコープアプリケーションソフトウエアと考えることができるプロセスを停止させずに)上記要素のインストール及びアンインストールを行うことができるように構成するに十分な独立性を有する、オシロスコープ設計が提供される。これは、ソフトウエアのいかなる細かい属性を変更するためにも、完全に(全体が)交換されなければならないソフトウエアを含む、既存製品とは対照的である。本発明の手法は、製品に基本的であるか、または製品の特定のアプリケーションに基本的な、新規のソフトウエア機能のリリースの全体の物流が短縮されるので、市場での優位性を提供する。すなわち、計測器(オシロスコープ)が顧客に届けられ、顧客がその計測器を稼働させた後に、前記事実により、計測器を返送するかあるいはこの点については計測器の使用を停止することさえ必要とせずに、特別な機能を追加することができる。これは顧客にも製造業者にも価値がある。
【００１０】
さらに、モジュール型構造により、ソフトウエアの個々のコンポーネントのそれぞれの標準“テストハーネス”における試験が可能になることにより、製品全体の品質をさらに高めるための“ユニット試験”が可能になる。それぞれのコンポーネントには、孤立試験ができるように特に考えられた標準化インターフェースが備えられる。上記の進歩的な、品質を意識する本設計の態様により、製品の最終配備が不良コンポーネントを特定できないことで阻害されることがないことを保証される。
【００１１】
図１は、本発明にしたがって構成されたオシロスコープがどのように動作するかについての概念を描いている。データフローは左から右にかけて示され、自動または手動で、ユーザにより与えられる制御シーケンスは上から下にかけて示される。図１に示されるように、複数のアナログアクイジション信号Ｃ１が本発明のオシロスコープにより取り込まれる。提供される様々なプローブ及びその他のアクイジションハードウエア110により取り込まれたこれらのアクイジション信号は続いて、アクイジション制御モジュール112により制御される。ユーザインターフェース115を介してユーザにより与えられた様々な制御変数120にしたがって、様々なアクイジション制御プロセスが取り込まれた波形に施される。
【００１２】
その後、様々な結果データが前処理システム125に与えられ、次いで前処理システム125からの出力がユーザ定義制御変数を用いる様々な後処理機能130において作用されて、処理済データ(結果データ)135が得られる。次いで後処理済データは、システム145によるさらなる処理の必要性に応じて、140においてエクスポート及び／またはインポートされる。処理が完了した後、様々な処理済データはディスプレイ装置155上への表示のために150において変換される。
【００１３】
“制御変数”と呼ぶことができる内部変数は、いかなる計測器制御ソフトウエアにおいても極めて普遍的及び中心的な態様である。計測器(オシロスコープ及び関連計測器)は、いかなる瞬間にも“状態”をもつ。例えばある数のコンポーネントが組み合わされ、処理コンポーネントのそれぞれがそれぞれの状態をもつ(例えばＦＦＴコンポーネントはある“ウインドウ”を選択し、ある閾値またはヒステリシスをタイミングパラメータに選択していることができる)。計測器をいかなる時でも以前の状態に復帰させ得るべきであれば、計測器全体の状態を格納または記録するための手段が必要である。
【００１４】
いついかなる時にも、オペレータは目前の測定作業を実行するため、例として少しだけを挙げれば、信号捕捉レート、測定点数、入力回路感度、実時間で施される信号増強手段のタイプ及び質、データの表示スタイル、捕捉信号について実時間で評価されるべきパラメータ、を支配する数１００の動作特性のそれぞれについて適切な値または設定を選択することにより、計測器を構成する。これらの特性のそれぞれは、発明者等がCvar(制御変数)と名付けるソフトウエアエンティティに具現化される。計測器における全てのCvarの現在値のセットが、その計測器の制御状態を構成する。オシロスコープの状態：タイムベース、垂直チャネル感度、トリガ条件、マス及びパラメータ設定、表示外観、及び数１０ないし数１００のその他の詳細を制御するためにCvarが用いられる。
【００１５】
計測器を用いるオペレータには、Cvarの現在値及び可能な値のセットを操作するため及び見るための効率的な手段が必要である。操作手段には、計測器の前面パネル上の物理的なボタン及びノブ、計測器画面上の仮想的なボタン及びノブ、並びにネットワークを通して計測器に接続された別のコンピュータ上で実行されるコンピュータプログラムにより発せられるリモートまたはオートメーションコマンドがある。オペレータには、別の時及び／または別の場所で同じタイプの測定を繰り返すために、コンピュータファイルの形態でCvarの完全なセットを保存するための効率的な手段も必要である。Cvarの完全なセットを保存することにより、計測器はユーザのために設定を思い出すことができる。ユーザは、ユーザが後日再現できる‘設定’をいくらでも格納することもできる。これらの設定ファイルは、相異なるオシロスコープモデル間で、ｅメールを用いて交換することさえできる。相異なるそれぞれのモデルは、異なるモデルから設定を受け入れ、別の計測器で保存された状態に近づくように最善を尽くして適合しようとするであろう。
【００１６】
いついかなる時でも、それぞれのCvarの値は、計測器の動作に対して適切であり、最適な、十分よく定められた設定または範囲内の値であるように拘束されなければならない。そのような拘束はいくつかの要件に由来し、それらの要件とは、例えば：１．Cvarが計測器のハードウエアの物理的状態を制御するためには、拘束が、そのハードウエアの物理的限界及び／または計測器の設計者により、そのハードウエアの妥当な、あるいはおそらく最適な使用と見なされている事項に対応すること；前記限界はそのハードウエアの物理的損傷を防止するために課されていなければならない場合もある；２．Cvarが信号処理及び計測器画面上への、グラフィックトレース、スキン、マップ及びその他のイメージのような、また数値表のような、データ表示モードを制御するためには、これらの拘束が、数学ソフトウエア、グラフィックソフトウエア及び計測器に内蔵されたハードウエアの能力を反映すること；３．Cvarがデータの保存及びアーカイブ化並びにコンピュータネットワーク上のデータ通信のための計測器の動作を制御するためには、同じく、これらの拘束が内蔵ソフトウエア及びハードウエアの能力に整合することである。
【００１７】
全体として、そのような拘束は、計測器の最適な設定の選択に際してオペレータを教導するため、及び設定の有用性が少ないかまたは危険な組合せをオペレータが気付かずに選択することを防止するために役立つ。多くの場合、拘束は現在、密接に関連する他のCvarの設定に依存し、それらの設定とともに変化する、与えられたいかなるCvarにも適用できる。
【００１８】
例えば、垂直オフセットに対する許容値範囲は垂直スケールのそれぞれの設定(値)に対して異なり、本発明にしたがって構築された計測器ソフトウエアは、オペレータがCvarの設定を変えれば必ず、Cvar間に適切な拘束を適用するであろう。この特徴は、計測器の拘束について考えることからオペレータを解放し、測定を実施するというオペレータの責務にオペレータを完全に集中させる。ユーザは、Cvarのレンジプロパティを問い合わせる(クエリーする)ことによりCvarの範囲を得ることができる。
【００１９】
Cvar値のいくつかまたは全てを変更するためのコマンドは、上で説明したように、いくつかのタイプの操作手段からいかなる任意の順序でも到着し得る。一連のそのようなコマンドから生じる計測器の制御状態は、それらのコマンドが計測器のソフトウエアに受け取られる順序に無関係なままであるべきことがこの上なく重要である。本発明にしたがって構築されたソフトウエアは上記の要件を満たす。
【００２０】
Cvarは、計測器に埋め込まれ、計測器のハードウエア及びソフトウエアの動作を支配するコンピュータプログラムの内部変数である。しかし、Cvarは単なる変数ではなく、Ｃ＋＋のような今日のコンピュータプログラミング言語において理解されるような、クラスの例である。このことにより、計測器ソフトウエア設計者は、今日のエレクトロニクスハードウエア及びコンピュータソフトウエアを採用する計測器に必要な、多くの有用な特徴をCvarに与えることができる。Cvarの値には、他のCvarの状態に依存して動的に変化し得る許容範囲がある。Cvarはユーザにリクエストされた値のメモリを有する。Cvarは、現在の許容値範囲に一致させるように適合された値のメモリ及び、そのCvarの値または範囲あるいは他の同様なプロパティが変化したときに通知される必要がある、他のソフトウエアオブジェクトのアドレスの組付及び削除のための手段を有する。Cvarは“読出専用”または“隠し”(等)のような属性のメモリを有し、ユーザのメモリとの相互作用はこれらの属性に影響される。
【００２１】
Cvarはリクエスト値をもつ。これは計測器のオペレータにより最新にリクエストされた値である。リクエスト値に加えて、Cvarは適合値をもつ。これは現在適用可能な値である。さらに、Cvarは使用値をもつ。これは現在適用されている値である。使用値は適合値と通常は同じであるが、ソフトウエアまたはハードウエアがあるオペレーションの実行でビジー状態にあり、新しい適合値を適用する準備がまだできていないような場合に、使用値が一時的に適合値と異なることがあり得る。Cvarはデフォールト値ももつ。これはCvarがコマンドに応じて戻る値である。Cvarの値の型は：物理単位をもつ‘倍精度’または‘実数’型の数値、例えば０．１２５Ｖ；１，２，５，１０，２０，５０，...のようなあるパターンにしたがうように拘束された‘倍精度’型の数値；‘整数’型の数値、例えば１００００点；いくつかの名称付状態一覧表からの１つの値、例えば“ＡＣ”；グラフィックシステムにおいて色をコード化する数値；テキストストリング、例えばコンピュータファイル名；論理的２状態変数(ノー／イエス、オフ／オン)；何らかのアクションを実行するためのオペレータからのリクエストを具現化する‘アクション’型の、ただしこれらには限定されない、内の１つとすることができる。
【００２２】
許容値範囲の性質はCvarの値の型に依存する。すなわち、CvarDouble及びCvarInt(それぞれ実数値及び整数値)に対する範囲は、最小値と最大値、及び粒(精度または分解能と考えることもできる、最小許容インクリメント)により定められる。CvarEnumに対する範囲は、許容されたテキストストリングまたはキーワードの明示的一覧表(リスト)により定められる。例えば“ＡＣ”，“ＤＣ”，“ＧＮＤ”からなるリストは、アクイジションチャネルの内の１つの入力結合を制御する、CvarEnumの３つの可能な状態の一覧である。
【００２３】
Cvarは、(ユーザが修正できない)読出専用、(グラフィカルインターフェースすなわちＧＵＩにおいてユーザから一時的または永続的に隠されている)隠し等のような、Cvarの状態または所期の用途を特徴づける、ブール型(すなわち論理型)フラッグをもつ。これらのフラッグは、通常はCvarBagをもつことによる、CvarのＣ＋＋インターフェースを介した計測器ソフトウエアによらない限り修正できない。これらのフラッグはオートメーションプロパティILecCvar::Flagsを介して読むことができる。いくつかのフラッグの状態は専用のILecCvar命令で知ることもできる。
【００２４】
【表１】
0004209674.tif 000002
下表に挙げられる１２のCvar型がある。
【００２５】
【表２】
0004209674.tif 000003
Cvar型の一例はCvarDoubleである。このCvarはある範囲及びある粒をもつ倍精度数へのアクセスを提供する。範囲(最小値と最大値)は適合値を制限する。粒はその符号に依存する複数の意味をもつ(約束により、正の粒は絶対値としてとられ、一方負の粒は対応する有効ディジット数を意味すると解される)。Cvarのもう一つの例はCvarDoubleLockstepである。このCvarは厳密に正の値の範囲に対して対数関数的インクリメントを与える。適合値は固定ステップ引数、例えば１，２，５，１０，...で定められるステップに固定される。初期化方法には、厳密に正の範囲(０．０＜最小値＜デフォールト値＜最大値)及び一覧表化された固定ステップ級数が必要である。
【００２６】
Cvarは、計測器のオペレータにCvarの目的及び用法を説明するために表示し得る、ヘルプテキストを含むことができる。Cvarは、オペレータが‘スクリプト’を用いて利用できる、set_Value, get_Valueのような、Cvarの状態を変更するための命令を含むオートメーションインターフェースを有する。これらは、計測器外部からプログラムを制御することにより実行され、また計測器のソフトウエアにより受け取られて処理される。
【００２７】
図２はCvar 200を図で表している。全てのCvarの意味を含むプロパティ及び命令をもつ、基本Cvar 220が示される。型固有Cvar 2４0が、内部属性または名称がm...で始まる構成要素変数及び命令またはオペレーションを含む、プロパティ及び命令とともに示される。Cvar 200は、イベントシンク（Event Sink）280すなわちイベント通知のためのソースまたは対象のベクトル(リスト)260とともに示される。型固有Cvar 2４0は基本クラスCvar 200の下位クラスであり、型固有Cvar 2４0自体が、同じインターフェースの背後で様々な動作を実施するいくつかの下位クラス242をもつことができる。
【００２８】
Cvarは、内部ソフトウエアサブシステムだけで利用可能な、set_NameのようなCvarの状態を変更するため及び通知‘シンク’を組付または削除するための命令を含む内部インターフェースを有する。Cvarは、それによりCvarが内部ソフトウエアサブシステム及び計測器を使用しているオペレータに知られる、名称をもつ。Cvarは、Cvar状態のいかなる変更も通知するためのCvar Event Sinkすなわち‘対象’のリストを有する。これは、イベントシンクがそのような変更に適切な態様で反応できるようにするためである。あり得るイベントシンクのいくつかには、一群のCvarを‘保有’し、調整するCvarBag、Cvarの状態をユーザに表示するグラフィカルユーザインターフェース(ＧＵＩ)ウィジェット(Widget(小道具))及び、最も重要な、動作がCvarにより制御される‘エンジン’すなわちサブシステムがある。
【００２９】
Cvarは、ユーザにCvarの値を変更させる操作手段とのソフトウエア連結を有する。代表的な操作手段クラスは、ＧＵＩウィジェット、押しボタン及びノブのような物理的デバイス、及び以下で論じられるリモートコマンドである。Cvarは、与えられたCvarの状態を複製するに必要な、従属Cvarのアドレスを含む複製シンクのリストももつ。これらのシンクは通知Cvarにおける選択された変更の通知を受け取り、それぞれが通知Cvarの状態を反映するために自身の状態を更新し始める。
【００３０】
本発明にしたがう別の実施形態は、CvarBagすなわちCvarの集合体である。CvarBagは、含まれるCvarのリストをもつ。CvarBagは、様々なサブシステムに属するCvarの集合体であり、Cvarの型及び(動的に変化していることがあり得る)値の範囲に必要な拘束を課す。CvarBagは、CvarBagの作成時に、含まれるCvarを妥当なデフォールト値に初期化する。CvarBagに含まれるCvarは、リクエストされたCvarの値、範囲または属性の変更を保有元CvarBagに通知する。CvarBagは保有するCvarの範囲及び値に拘束を課し、よって計測器の構成及び使用に際してオペレータを教導する‘ポリシー’を実施する。CvarBagはBag Event Sinkのリストを有する。Bag Event SinkはCvarについて説明したものと類似の通知の目的のためにある。
【００３１】
図３はCvarBag 300を示す。１つのCvar 320が示される。Cvar 320は、Cvarのベクトル310及びイベントシンクのベクトル330を介してCvarBag 300に連結される。１つのCvar 320しか示されていないが、ベクトルの存在は、多くのCvar 320があることを暗示している。これは実際におこり得る。１つのBagには一般に５から２０のCvar 320がある。
【００３２】
本発明にしたがう別の実施形態はウィジェットである。ウィジェットはCvarの状態をオペレータに表示する手段であるか、またはCvarの値を操作する手段であるか、あるいは両者を同時に備える、ソフトウエアオブジェクトである。ウィジェットはCvarのビューまたは操作手段である。ウィジェットは、Cvarの現在値をユーザに表示し、オペレータにCvarを何らかの方法(タッチスクリーン、マウス操作、キーパッド等)で修正させる。代表的な表示ウィジェットは、計測器のパネル上または取り付けられたプローブ上の有色光(ＬＥＤ)の制御及び／または計測器の画面上の様々なアイコンの制御を行う、ソフトウエアオブジェクトである。代表的な操作手段ウィジェットは、計測器パネル上のノブ及びボタン、タッチスクリーンソフトウエア、またはポインティングデバイス(例：マウス)ソフトウエア、あるいは計測器に取り付けられた、押しボタンを装着し得るプローブを制御するソフトウエアに連結された、ソフトウエアオブジェクトである。
【００３３】
さらに、‘両’カテゴリーに入るウィジェットもある。これらのウィジェットは、メニュー、ダイアログ、ボタン、仮想キーパッド及びキーボード、クリック可能なツリービュー等のオンスクリーングラフィック表示である。さらに付け足せば、リモート制御ウィジェットは、コンピュータネットワークを通してオペレータにより計測器に送信されるリモートコマンドストリングを‘理解’するソフトウエアハンドラオブジェクトである。ハンドラは、これらのコマンド及び関連するクエリーを、対応するCvarに関する‘set’及び‘ｇet’命令に翻訳する。
【００３４】
Cvarは、いついかなる時にも、ゼロまたは１つあるいはいくつかのウィジェットと連結できる。したがって、オペレータは、組み付けられている操作手段ウィジェットがどのようなものであってもそれに作用することによりCvarを操作できる。Cvarの状態の修正は必ずCvarの範囲の直接制御の下にあり、Cvarの範囲の直接制御はさらに‘保有元’CvarBagの直接制御の下にある。修正されたCvar状態はいずれかの組付ウィジェットにより表示されるであろう。修正されたCvar状態は一般に、計測器の画面上に表示されるトレース及びデータの様相に影響するであろう。
【００３５】
図４はウィジェットの概念を示す。２つのウィジェット 420及び430に連結されたCvar 410が示される。実際上、０からＮの(おそらくは５までの)ウィジェットがあり、この数は、ユーザが計測器の画面上でダイアログを開くか閉じるかするとともに動的に変化する。いくつかのCvar 410は、例えばフロントパネルの物理的ノブに、対応するソフトウエアウィジェットを介して永続的に連結されたままである。
【００３６】
ウィジェットを作成するため、ウィジェットの保有元、一般にダイアログページがウィジェットを開始し、ウィジェットにCvarを組み付ける。ウィジェットは変性し、Cvar変更イベントの通知に加入する。ウィジェットは１つのCvarに連結されるが、Cvarはいかなる数のウィジェットにも連結され得る。Cvarの値または範囲が変わるか、あるいはフラッグが変わる(例えば読出専用になる)と、Cvarはその変更をCvarの加入者に通知する。通知があると、ウィジェットは、(値が変化した場合には)Cvarの値の表示を更新し、(Cvar属性が隠しになれば)ウィジェット自体を見えなくする、等を行う。計測器ユーザがウィジェットの制御具(ボタン、テキスト編集ボックス、スライダーハンドル、色選択メニュー等)を操作すると、ウィジェットのメッセージハンドラがそのアクションを解釈して、Cvarにメッセージ、一般にはIncrement()またはSetValue()型のメッセージを送る。これが実際にCvarの状態を変化させれば(例えば、Cvarの適合値が既にその範囲の終端にあるときにCvarのインクリメントを試みた場合には、Cvarの状態は変化し得ないであろう)、Cvarは通知を送り、ウィジェットは上述したばかりのようにしてその通知に応答するでであろう。
【００３７】
ウィジェットを取り外すため、ウィジェットの保有元はWidgetDetatchCvar()メッセージを送ることによりCvarを削除する。ウィジェットは変性し、Cvar変更イベントの通知から脱退する。
【００３８】
ウィジェットは下表で示されるようにCvarと適合する。
【００３９】
【表３】
0004209674.tif 000004
図５はCvarとその他のコンポーネントとの関係を示す。２つのCvar 510及び520は１つのCvarBag 530に属する。CvarBag 530は、プロセッサ、レンダラ、チャネル等とすることができるエンジン540に属する。図５はオペレータ550−Cvarを操作し、その効果をディスプレイ552上でみる人間−も示す。ディスプレイ552はエンジン540により制御される。ディスプレイ552は、垂直または水平幅、またはスケール、または位置、または色、あるいはその他の多くの属性のいずれかの修正をオペレータ550が欲する、オシロスコープトレースのディスプレイとすることができる。
【００４０】
図６は、図５で説明した設定を用いて、オペレータが計測器のフロントパネルのノブ(例えば垂直スケールまたは水平スケールのためのノブ)をまわすときにおこる、イベントのシーケンスを示す。ステップS10において、オペレータ550がノブをまわす。ステップS12において、ノブウィジェットがCvar 510をインクリメントする。これは、ノブの‘クリック’毎にリクエスト値を１インクリメントだけ増減することをCvar 510に告げることを意味する(ノブ一回転当り２４クリック)。ステップS14において、Cvar 510は適合値を現在の範囲内にとどまるように拘束する(すなわち、Cvar 510はリクエスト値を現在の最大値をこえるか現在の最小値を下回るまで進ませないであろう)。ステップS16において、一般に親(保有元)CvarBag 530及び１つまたはそれより多くのウィジェット 524及びエンジン540であるイベントシンクに、Cvar 510が適合値の変更を通知する。ステップS18において、CvarBag 530がCvar 510の内の１つが変更されたことをエンジン540に通知する。
【００４１】
エンジンが、ステップS20においてCvar 510の新しい適合値を以降の処理に用い、ステップS22において、ディスプレイ552のようなシンクに、データが変更されたこと及びステップS32におけるように再表示の必要があり得ることを通知する。ステップS24において、他Cvar 520の範囲(すなわち最大値または最小値)を修正するためにも、CvarBag 530がCvar 510の新しい値を用いる。ステップS26において、範囲が変更されたことを知る他Cvar 520は、適合値を修正し(または関与する実値に依存して修正せず)、ステップS28において、他Cvar 520の数値をステップS28で表示する他ウィジェット 526(例えばオンスクリーンテキスト領域)のようなシンクに通知する。次いでステップS30において、Cvar 510は、続いてCvar 510の新しい値を再表示する、自身のウィジェット 524にも通知する。
【００４２】
図７は、Cvarにリクエスト値を設定する場合及びCvarBagがCvarの最大値を設定する場合の、２つの場合におけるCvarの内部動作をさらに詳細に示す。第１の場合には、ウィジェット 524がCvar 510にリクエスト値710を設定する。これは、例えば、ウィジェット 524がフロントパネル数字キーパッドであり、オペレータが新しい数値をタイプしてエンターキーを押した場合とすることができる。ステップS10において、Cvar 510がプロパティにリクエスト値710を設定する。ステップS20において、Cvar 510が適合値730を更新する。ステップS30において、Cvar 510が適合値の変更を全てのいかなるイベントシンク740にも通知する。ステップS40において、イベントシンクは通常、立ち戻って新しい適合値730を取り込み、これを用いる。それぞれの種類のイベントシンクは、システムにおけるそれぞれの機能に適切な仕方で新しい適合値を用いる。例えば、ウィジェットはその値を表示することができ、エンジンは計算を進めるためにその値を用いることができ、CvarBagは別のCvarの範囲を変更できる、等。
【００４３】
第２の場合において、CvarBag 530はCvar 510の最大値を設定する。これは、他Cvarの値の変更に応答して行われ得る。ステップS50において、Cvar 510がレンジ720を設定する。CvarInt及びCvarDoubleの場合に最も明白であるように、最大値はレンジの要素である。ステップS60において、Cvar 510が適合値730を更新する。ステップS70において、Cvar 510がイベントシンク740に通知する。ステップS80において、イベントシンクは通常、立ち戻って新しい適合値730を取り込み、第１の場合について説明した様々な仕方で、これを用いる。
【００４４】
オペレータには、計測器のCvarの完全なセットを保存するため、及び同じまたは別の同様な計測器で後に使用するためにCvarを再現するための、効率的手段も必要である。オシロスコープまたは関連計測器は、いかなる瞬間にも“状態”を有する。計測器がいつでも以前の状態に復元され得るべきであれば、全状態を格納または記録するための手段が必要となる。
【００４５】
これはコンピュータファイルの形態で行うことができる。このコンピュータファイルは、パネルファイルまたは設定ファイルと呼ばれる。パネルファイルを保存し、再現することができる計測器は、別の時及び／または別の場所における同じタイプの測定の繰返しを可能にする。ユーザに対する利点は、ユーザが標準的な測定を日々繰り返すことができ、ユーザが様々な設定の測定を実施するために計測器の迅速で確実な再構成を行うことができることである。ユーザは、計測器が生産フロアにおける自動検査装置の一部として用いられる場合に、コンピュータ制御の下で計測器の自動再構成を行うこともでき、１つの工業プラント内でも全世界にわたる多くのプラントにかけても、ユーザは実験室または生産フロアにおいて同一測定標準を施行することができる。
【００４６】
計測器の改良モデルが絶え間なく開発され、オペレータが所有する旧モデルを次々に置き換えている。パネルファイルの旧モデルから新モデルへの再現を可能にする仕方でパネル関連型計測器ソフトウエアを設計することが必要である。ユーザに対する利点は、計測器のパネルファイルにある程度具現化されているような、そのようなソフトウエアが、工数をかけて作成した(手動または自動の)標準測定手順を維持することである。本発明は、パネルファイルに具現化された計測器制御状態の電子的な保存、再現及び送達に関する問題の解決を目指している。
【００４７】
多くのCvar状態の集合体は、ビジュアルベイシックスクリプトとして記録できる。これは、制御変数オブジェクトに(上述した)“自動インターフェース”と呼ばれるインターフェースが与えられていることによる。この結果、アプリケーションの状態が記録(すなわち保存)されるときに、状態はベイシックスクリプトプログラムの形態で保存される。このことは、主として制御変数概念に基づき、本アーキテクチャで構築されるいかなるアプリケーションにも当てはまるであろう。すなわち、マイクロソフトウインドウズオペレーティングシステムの文脈の範囲内で、計測器ソフトウエアを与えられた“状態”で始動するためには、ベイシックスクリプトが送り出されなければならない。よって、計測器は同じスクリプト化機構により完全に制御及び／または復元できる。
【００４８】
保存されたパネルファイルは、パネルファイルが保存されたときに計測器があった状態を復元する効果により、ディスク上のファイルから計測器に再現することができる。計測器状態は、ユーザがそうしようと決めたときに、ユーザにより名前がつけられたパネルファイルに保存することができる。計測器状態は、あらかじめ設定された時間間隔で、または計測器の電源が切られるときに、自動的に保存することもできる。計測器の電源が切られたときに自動的に保存された計測器状態は、次に計測器の電源が入れられたときに自動的に復元されるであろう。
【００４９】
パネルファイルは個々のCvarレベルまで細分モジュール化される。個々のCvarは２つの例：“appA.subB.partC1.cvarX1”,“appA.subB.partC2.cvarX1”で示される、階層“パス”または“アドレス”により、パネルファイル内で指定される。これらの意味は：第１は、アプリケーション“appA”のサブシステム“subB”の“partC1”におかれた、“cvarX1”と名付けられたCvarにアドレスすることを意味し；第２は、同じアプリケーションの同じサブシステムの“partC2”におかれているが、同じく“cvarX1”と名付けられた別のCvarにアドレスすることを意味する。パネルファイルの好ましいフォーマットは、それぞれのCvarについて一行の、人間が読めるテキストである。しかしこのことは、個々のCvarレベルまでの細分モジュール性が保たれるならば、バイナリ、または暗号化、または圧縮化のような別のフォーマットを排除するものではない。
【００５０】
パネルファイルテキストは、工業標準プログラミング言語で書かれたコンピュータプログラムを構成することが好ましい。そのような言語の例はビジュアルベイシックスクリプト(ＶＢＳ)であるが、これには限定されない。しかしこのことは、著作権のある言語で書かれたコンピュータプログラムを構成する別のテキストフォーマットを排除するものではない。パネルファイルをサポートする計測器は、コマンドを受けて適切なパネルファイルセクションを自動的に生成する、すなわち書くソフトウエア方法すなわちルーチンを含む。これらの方法はサブシステムの全ての階層レベルにおかれ、よって階層アドレスはサブシステムの階層を自動的に反映する。
【００５１】
パネルファイルをサポートする計測器は、パネルファイルの読出または再現またはロードのためのソフトウエア方法すなわちルーチンを含む。これらの方法はサブシステムの全ての階層レベルにおかれ、よってそれぞれのサブシステムは、局部アドレスにしたがってそのサブシステムに属するCvar項目を認識できる。したがって、サブシステムは情報の経路を目標のCvarに向けて指定することができ、一方階層ツリーの別のブランチにおかれたCvarは無視できる。
【００５２】
既知のスクリプト言語で書かれたプログラムでもあるパネルファイルは、計測器の自動制御のためのより精巧なプログラムのためのモデルとしてオペレータが使用することができる。与えられたCvarBagに属する個々のCvarがパネルファイルに現れる順序は、得られる計測制御状態に影響することなく、随意に変えることができる。これは、それぞれのCvarがリクエスト値を格納し、拘束が変更されたときは必ず適合値を再設定するという事実の必然的結果である。このことにより、検査手順を自動化し、無人検査または監視を実施することができる。このことにより、許容値を見いだすこともできる。ベイシックスクリプト化を行ってしまえば、許容される設定の範囲をベイシックスクリプトによりクエリーすることができる。次いで、リクエスト値をキャッシュし、クエリーすることができる。このことにより、変数間の拘束を後に解消することができる。
【００５３】
図８は、Cvar、パネルキャプチャ及び検索の初期化を示す。図８はソフトウエアの代表的高水準オブジェクトの階層を示す。現実にはさらに多くの階層がある。実際上の現実的で完全な図は、階層レベル数において、より幅が広くも、より深く(より高く)もあろうが、本図は原理を説明するために用いられる。本図を図１と比較することができる。図８は相異なるレベルにある多くのソフトウエアオブジェクト720，730及び740を示す。ソフトウエアオブジェクト720，730及び740の全てがCvar 750を“保有”する。したがって、Cvar 750の構築及び初期化はトップダウンの、階層態様で進行する。本図では、アプリケーションカーネル710(実施においてはこの上にさらに階層があり得る)及びそれぞれのソフトウエハオブジェクト720が子オブジェクト730の構築及び初期化を行い、それぞれの子オブジェクト730が続いてそれぞれ自体の子オブジェクト740の構築及び初期化を行い、最後に個々のCvar 750の構築及び初期化が行われる。
【００５４】
図９は、Cvarの初期化を示すフローチャートである。パネルファイルをキャプチャし、パネルファイルを再ロードするフローは同様であり、同じ階層パスをたどる。ステップS910において、アプリケーションカーネルがアクイジションオブジェクト721の構築及び初期化を行う。ステップS912において、アプリケーションカーネルが前処理オブジェクト722の構築及び初期化を行う。ステップS914において、アプリケーションカーネルが処理オブジェクト723の構築及び初期化を行う。ステップS916において、アプリケーションカーネルがレンダリングオブジェクト724の構築及び初期化を行う。ステップS918において、アクイジションオブジェクト721が水平オブジェクト731の構築及び初期化を行う。ステップS920において、アクイジションオブジェクト721が垂直オブジェクト732の構築及び初期化を行う。ステップS922において、アクイジションオブジェクト721がトリガオブジェクト733の構築及び初期化を行う。ステップS924において、垂直オブジェクト732がチャネルオブジェクト741の構築及び初期化を行う。ステップS926において、処理オブジェクト723がプロセッサオブジェクト735の構築及び初期化を行う。ステップS928において、レンダリングオブジェクト724がレンダラオブジェクト736の構築及び初期化を行う。ステップS930において、レンダラオブジェクト736がCvar 751の構築及び初期化を行う。
【００５５】
以下は、パネルファイルのビジュアルベイシックスクリプトである。階層構造を、パネルファイルにある：
Set Acquisition = WaveMaster.Acquisition
Set C1 = Acquisition.C1
C1.VerScale = 0.05
C1.VerOffset = 0
C1.Coupling =“DC50”
C1.BandwidthLimit =“2MHz”
C1.ProbeAttenuation = 1
のような‘コンポジットパスストリング’に見ることができる。上記の例においては、主ソフトウエアオブジェクトWaveMasterが、0.05ボルトのリクエスト値に設定されているVerScaleのようなCvarを保有するチャネルC1を保有するAcquisitionを保有する。
【００５６】
‘ WaveMaster ConfigurationVBScript ...
On Error Resume Nextset
Set WaveMaste = CreateObject(“LeCroy.AladdinApplication”)
WaveMaster.Enable = false
' AladdinPersona ...
WaveMaster.InstrumentModel =“AladinApp”
WaveMaster.InstrumentID =“LECROY.MAUI.Aladdin-001,0.001”
WaveMaster.ProductRoot =“c:\LeCroy\Maui\Aladdin”
WaveMaster.HideClock = False
Set Acquisition = WaveMaster.Acquisition
' Acquisition ...
Set C1 = Acquisition.C1
' C1 ...
C1.View = True
C1.UseGrid =“YT1”
C1.UseDotJoin = True
C1.Persisted = False
C1.PersistenceSaturation = 50
C1.PersistenceMonoChrome = False
C1.VerScale = 0.05
C1.VerScaleVariable = False
C1.VerOffset = 0
C1.Coupling =“DC50”
C1.BandwidthLimit =“2MHz”
C1.AverageSweeps = 1
C1.EnhanceResType =“None”
C1.InterpolateType =“Linear”
C1.Invert = False
C1.ProbeAttenuation = 1
Set C2 = Acquisition.C2
' C2 ...
C2.View = True
C2.UseGrid =“YT1”
C2.UseDotJoin = True
C2.Persisted = False
C2.PersistenceSaturation = 50
C2.PersistenceMonoChrome = False
C2.VerScale = 0.05
C2.VerScaleVariable = False
C2.VerOffset = 0
C2.Coupling =“DC50”
C2.BandwidthLimit =“2MHz”
C2.AverageSweeps = 1
C2.EnhanceResType =“None”
C2.InterpolateType =“Linear”
C2.Invert = False
C2.ProbeAttenuation = 1
Set C3 = Acquisition.C3
' C3 ...
C3.View = False
C3.UseGrid =“YT1”
C3.UseDotJoin = True
C3.Persisted = False
C3.PersistenceSaturation = 50
C3.PersistenceMonoChrome = False
C3.VerScale = 0.05
C3.VerScaleVariable = False
C3.VerOffset = 0
C3.Coupling =“DC50”
C3.BandwidthLimit =“2MHz”
C3.AverageSweeps = 1
C3.EnhanceResType =“None”
C3.InterpolateType =“Linear”
C3.Invert = False
C3.ProbeAttenuation = 1
Set C4 = Acquisition.C4
' C4 ...
C4.View = False
C4.UseGrid =“YT1”
C4.UseDotJoin = True
C4.Persisted = False
C4.PersistenceSaturation = 50
C4.PersistenceMonoChrome = False
C4.VerScale = 0.05
C4.VerScaleVariable = False
C4.VerOffset = 0
C4.Coupling =“DC50”
C4.BandwidthLimit =“2MHz”
C4.AverageSweeps = 1
C4.EnhanceResType =“None”
C4.InterpolateType =“Linear”
C4.Invert = False
C4.ProbeAttenuation = 1
Set Horizontal = Acquisition.Horizontal
' Horizontal ...
Horizontal.HorScale = 0.00000005
Horizontal.HorOffset = 0
Horizontal.HorOffsetOrigin = 5
Horizontal.Numpoints = 5000
Horizontal.TimePerPoint = 0.0000000001
Horizontal.SampleMode =“RealTime”
Horizontal.NumSegments = 1
Horizontal.SequenceTimeout = 0.01
Horizontal.SequenceTimeoutEnable = True
Horizontal.ActiveChannels =“10GS/s”
Horizontal.SampleClock =“Internal”
Horizontal.ExternalClockRate = 1
Horizontal.ReferenceClock =“Internal”
Horizontal.SamplingRate = 10000000000
Horizontal.ForNanoSecToKSec = 0.0000005
Horizontal.MaxSamples = 100000
Set Trigger = Acquisition.Trigger
' Triger ...
Trigger.Source =“C1”
Trigger.Type =“Edge”
Trigger.ValidateSource =“C1”
Trigger.HoldoffType =“Off”
Trigger.HoldoffTime = 0.000000002
Trigger.HoldoffEvents = 1
Trigger.DropoutTime = 0.000000002
Trigger.Glitch =“LessThan”
Trigger.GlitchLow = 0.0000000006
Trigger.GlitchHigh = 0.0000000006
Trigger.Width =“LessThan”
Trigger.WidthRange =“Tolerance”
Trigger.WidthNominal = 0.0000000006
Trigger.WidthDelta = 0.0000000006
Trigger.Interval =“LessThan”
Trigger.IntervalLow = 0.000000002
Trigger.IntervalHigh = 0.000000002
Trigger.IntervalRange =“Tolerance”
Trigger.IntervalNominal = 0.0000000006
Trigger.IntervalDelta = 0.0000000006
Trigger.QualState =“Below”
Trigger.QualWait =“<”
Trigger.QualTime = 0.000000002
Trigger.QualEvents = 1
Trigger.PatternType =“Nand”
Trigger.TrigSlope =“Negative”
Trigger.TrigCoupling =“DC”
Trigger.TrigLevel = 0.05
Set Math = WaveMaster.Math
' Math ...
Math.MultiZoomF1 =“Off”
Math.MultiZoomF2 =“Off”
Math.MultiZoomF3 =“Off”
Math.MultiZoomF4 =“Off”
Math.MultiZoomF5 =“Off”
Math.MultiZoomF6 =“Off”
Math.MultiZoomF7 =“Off”
Math.MultiZoomF8 =“Off”
Math.AutoScrollOn = False
Math.MultiZoomOn = False
Set F1 = Math.F1
' F1 ...
F1.View = False
F1.UseGrid =“YT1”
F1.UseDotJoin = True
F1.Persisted = False
F1.PersistenceSaturation = 50
F1.PersistenceMonoChrom = False
F1.EZoff = False
F1.EZFunction1 =“wident”
F1.Function2 =“undef”
F1.EZSource1 =“C1”
Set F1Operator1 = F1.Operator1
' Operator1 ...
F1Operator1.Enable = True
F1Operator1.Origin =“”
F1Operator1.Visible = True
F1Operator1.XPos = 0
F1Operator1.YPos = 0
F1Operator1.UsageCount = 0
Set F1Operator2 = F1.Operator2
' Operator2 ...
Set F1Zoom = F1.Zoom
' Zoom ...
F1Zoom.Enable = True
F1Zoom.Origin =“”
F1Zoom.Visible = True
F1Zoom.XPos = 0
F1Zoom.YPos = 0
F1Zoom.UsageCount = 0
F1Zoom.VerPos = 0.5
F1Zoom.VerZoom = 1
F1Zoom.HorPos = 0.5
F1Zoom.HorZoom = 1
F1Zoom.MiniVisiblePoints = 5
F1Zoom.VerStart = 0
F1Zoom.VerStop = 0
F1Zoom.HorStart = 0
F1Zoom.HorStop = 0
F1Zoom.VariableVerZoom = False
F1Zoom.VariableHorZoom = False
Set F2 = Math.F2
' F2 ...
F2.View = False
F2.UseGrid =“YT1”
F2.UseDotJoin = True
F2.Persisted = False
F2.PersistenceSaturation = 50
F2.PersistenceMonoChrom = False
F2.EZoff = False
F2.EZFunction1 =“wident”
F2.Function2 =“undef”
F2.EZSource1 =“C1”
Set F2Operator1 = F2.Operator1
' Operator1 ...
F2Operator1.Enable = True
F2Operator1.Origin =“”
F2Operator1.Visible = True
F2Operator1.XPos = 0
F2Operator1.YPos = 0
F2Operator1.UsageCount = 0
Set F2Operator2 = F2.Operator2
' Operator2 ...
Set F2Zoom = F2.Zoom
' Zoom ...
F2Zoom.Enable = True
F2Zoom.Origin =“”
F2Zoom.Visible = True
F2Zoom.XPos = 0
F2Zoom.YPos = 0
F2Zoom.UsageCount = 0
F2Zoom.VerPos = 0.5
F2Zoom.VerZoom = 1
F2Zoom.HorPos = 0.5
F2Zoom.HorZoom = 1
F2Zoom.MiniVisiblePoints = 5
F2Zoom.VerStart = 0
F2Zoom.VerStop = 0
F2Zoom.HorStart = 0
F2Zoom.HorStop = 0
F2Zoom.VariableVerZoom = False
F2Zoom.VariableHorZoom = False
Set F3 = Math.F3
' F3 ...
F3.View = False
F3.UseGrid =“YT1”
F3.UseDotJoin = True
F3.Persisted = False
F3.PersistenceSaturation = 50
F3.PersistenceMonoChrom = False
F3.EZoff = False
F3.EZFunction1 =“wident”
F3.Function2 =“undef”
F3.EZSource1 =“C1”
Set F3Operator1 = F3.Operator1
' Operator1 ...
F3Operator1.Enable = True
F3Operator1.Origin =“”
F3Operator1.Visible = True
F3Operator1.XPos = 0
F3Operator1.YPos = 0
F3Operator1.UsageCount = 0
Set F3Operator2 = F3.Operator2
' Operator2 ...
Set F3Zoom = F3.Zoom
' Zoom ...
F3Zoom.Enable = True
F3Zoom.Origin =“”
F3Zoom.Visible = True
F3Zoom.XPos = 0
F3Zoom.YPos = 0
F3Zoom.UsageCount = 0
F3Zoom.VerPos = 0.5
F3Zoom.VerZoom = 1
F3Zoom.HorPos = 0.5
F3Zoom.HorZoom = 1
F3Zoom.MiniVisiblePoints = 5
F3Zoom.VerStart = 0
F3Zoom.VerStop = 0
F3Zoom.HorStart = 0
F3Zoom.HorStop = 0
F3Zoom.VariableVerZoom = False
F3Zoom.VariableHorZoom = False
Set F4 = Math.F4
' F4 ...
F4.View = False
F4.UseGrid =“YT1”
F4.UseDotJoin = True
F4.Persisted = False
F4.PersistenceSaturation = 50
F4.PersistenceMonoChrom = False
F4.EZoff = False
F4.EZFunction1 =“wident”
F4.Function2 =“undef”
F4.EZSource1 =“C1”
Set F4Operator1 = F4.Operator1
' Operator1 ...
F4Operator1.Enable = True
F4Operator1.Origin =“”
F4Operator1.Visible = True
F4Operator1.XPos = 0
F4Operator1.YPos = 0
F4Operator1.UsageCount = 0
Set F4Operator2 = F4.Operator2
' Operator2 ...
Set F4Zoom = F4.Zoom
' Zoom ...
F4Zoom.Enable = True
F4Zoom.Origin =“”
F4Zoom.Visible = True
F4Zoom.XPos = 0
F4Zoom.YPos = 0
F4Zoom.UsageCount = 0
F4Zoom.VerPos = 0.5
F4Zoom.VerZoom = 1
F4Zoom.HorPos = 0.5
F4Zoom.HorZoom = 1
F4Zoom.MiniVisiblePoints = 5
F4Zoom.VerStart = 0
F4Zoom.VerStop = 0
F4Zoom.HorStart = 0
F4Zoom.HorStop = 0
F4Zoom.VariableVerZoom = False
F4Zoom.VariableHorZoom = False
Set F5 = Math.F5
' F5 ...
F5.View = False
F5.UseGrid =“YT1”
F5.UseDotJoin = True
F5.Persisted = False
F5.PersistenceSaturation = 50
F5.PersistenceMonoChrom = False
F5.EZoff = False
F5.EZFunction1 =“wident”
F5.Function2 =“undef”
F5.EZSource1 =“C1”
Set F5Operator1 = F5.Operator1
' Operator1 ...
F5Operator1.Enable = True
F5Operator1.Origin =“”
F5Operator1.Visible = True
F5Operator1.XPos = 0
F5Operator1.YPos = 0
F5Operator1.UsageCount = 0
Set F5Operator2 = F5.Operator2
' Operator2 ...
Set F5Zoom = F5.Zoom
' Zoom ...
F5Zoom.Enable = True
F5Zoom.Origin =“”
F5Zoom.Visible = True
F5Zoom.XPos = 0
F5Zoom.YPos = 0
F5Zoom.UsageCount = 0
F5Zoom.VerPos = 0.5
F5Zoom.VerZoom = 1
F5Zoom.HorPos = 0.5
F5Zoom.HorZoom = 1
F5Zoom.MiniVisiblePoints = 5
F5Zoom.VerStart = 0
F5Zoom.VerStop = 0
F5Zoom.HorStart = 0
F5Zoom.HorStop = 0
F5Zoom.VariableVerZoom = False
F5Zoom.VariableHorZoom = False
Set F6 = Math.F6
' F6 ...
F6.View = False
F6.UseGrid =“YT1”
F6.UseDotJoin = True
F6.Persisted = False
F6.PersistenceSaturation = 50
F6.PersistenceMonoChrom = False
F6.EZoff = False
F6.EZFunction1 =“wident”
F6.Function2 =“undef”
F6.EZSource1 =“C1”
Set F6Operator1 = F6.Operator1
' Operator1 ...
F6Operator1.Enable = True
F6Operator1.Origin =“”
F6Operator1.Visible = True
F6Operator1.XPos = 0
F6Operator1.YPos = 0
F6Operator1.UsageCount = 0
Set F6Operator2 = F6.Operator2
' Operator2 ...
Set F6Zoom = F6.Zoom
' Zoom ...
F6Zoom.Enable = True
F6Zoom.Origin =“”
F6Zoom.Visible = True
F6Zoom.XPos = 0
F6Zoom.YPos = 0
F6Zoom.UsageCount = 0
F6Zoom.VerPos = 0.5
F6Zoom.VerZoom = 1
F6Zoom.HorPos = 0.5
F6Zoom.HorZoom = 1
F6Zoom.MiniVisiblePoints = 5
F6Zoom.VerStart = 0
F6Zoom.VerStop = 0
F6Zoom.HorStart = 0
F6Zoom.HorStop = 0
F6Zoom.VariableVerZoom = False
F6Zoom.VariableHorZoom = False
Set F7 = Math.F7
' F7 ...
F7.View = False
F7.UseGrid =“YT1”
F7.UseDotJoin = True
F7.Persisted = False
F7.PersistenceSaturation = 50
F7.PersistenceMonoChrom = False
F7.EZoff = False
F7.EZFunction1 =“wident”
F7.Function2 =“undef”
F7.EZSource1 =“C1”
Set F7Operator1 = F7.Operator1
' Operator1 ...
F7Operator1.Enable = True
F7Operator1.Origin =“”
F7Operator1.Visible = True
F7Operator1.XPos = 0
F7Operator1.YPos = 0
F7Operator1.UsageCount = 0
Set F7Operator2 = F7.Operator2
' Operator2 ...
Set F7Zoom = F7.Zoom
' Zoom ...
F7Zoom.Enable = True
F7Zoom.Origin =“”
F7Zoom.Visible = True
F7Zoom.XPos = 0
F7Zoom.YPos = 0
F7Zoom.UsageCount = 0
F7Zoom.VerPos = 0.5
F7Zoom.VerZoom = 1
F7Zoom.HorPos = 0.5
F7Zoom.HorZoom = 1
F7Zoom.MiniVisiblePoints = 5
F7Zoom.VerStart = 0
F7Zoom.VerStop = 0
F7Zoom.HorStart = 0
F7Zoom.HorStop = 0
F7Zoom.VariableVerZoom = False
F7Zoom.VariableHorZoom = False
Set F8 = Math.F8
' F8 ...
F8.View = False
F8.UseGrid =“YT1”
F8.UseDotJoin = True
F8.Persisted = False
F8.PersistenceSaturation = 50
F8.PersistenceMonoChrom = False
F8.EZoff = False
F8.EZFunction1 =“wident”
F8.Function2 =“undef”
F8.EZSource1 =“C1”
Set F8Operator1 = F8.Operator1
' Operator1 ...
F8Operator1.Enable = True
F8Operator1.Origin =“”
F8Operator1.Visible = True
F8Operator1.XPos = 0
F8Operator1.YPos = 0
F8Operator1.UsageCount = 0
Set F8Operator2 = F8.Operator2
' Operator2 ...
Set F8Zoom = F8.Zoom
' Zoom ...
F8Zoom.Enable = True
F8Zoom.Origin =“”
F8Zoom.Visible = True
F8Zoom.XPos = 0
F8Zoom.YPos = 0
F8Zoom.UsageCount = 0
F8Zoom.VerPos = 0.5
F8Zoom.VerZoom = 1
F8Zoom.HorPos = 0.5
F8Zoom.HorZoom = 1
F8Zoom.MiniVisiblePoints = 5
F8Zoom.VerStart = 0
F8Zoom.VerStop = 0
F8Zoom.HorStart = 0
F8Zoom.HorStop = 0
F8Zoom.VariableVerZoom = False
F8Zoom.VariableHorZoom = False
Set Measure = WaveMaster.Measure
' Measure ...
Measure.StdSource =“C1”
Measure.MeasureMode =“Off”
Measure.Calculate0 = False
Measure.Calculate1 = False
Measure.Calculate2 = False
Measure.ViewP1 = True
Measure.ViewP2 = True
Measure.ViewP3 = True
Measure.ViewP4 = True
Measure.ViewP5 = True
Measure.ViewP6 = True
Measure.ViewP7 = True
Measure.ViewP8 = True
Measure.ViewP9 = True
Measure.ViewP10 = True
Measure.ViewP11 = True
Measure.ViewP12 = True
Measure.ViewP13 = True
Measure.ViewP14 = True
Measure.ViewP15 = True
Measure.ViewP16 = True
Measure.ViewP17 = True
Measure.ViewP18 = True
Measure.ViewP19 = True
Measure.ViewP20 = True
Measure.ViewP21 = True
Measure.ViewP22 = True
Measure.ViewP23 = True
Measure.ViewP24 = True
Set P1 = Measure.P1
' P1 ...
P1.View = True
P1.Present = False
P1.Used = False
P1.CurrentNew = 0
P1.Source1 =“C1”
Set P1Operator = P1.Operator
' Operator ...
P1Operator.Enable = True
P1Operator.Origin =“”
P1Operator.Visible = True
P1Operator.XPos = 0
P1Operator.YPos = 0
P1Operator.UsageCount = 0
Set P2 = Measure.P2
' P2 ...
P2.View = True
P2.Present = False
P2.Used = False
P2.CurrentNew = 0
P2.Source1 =“C1”
Set P2Operator = P2.Operator
' Operator ...
P2Operator.Enable = True
P2Operator.Origin =“”
P2Operator.Visible = True
P2Operator.XPos = 0
P2Operator.YPos = 0
P2Operator.UsageCount = 0
Set P3 = Measure.P3
' P3 ...
P3.View = True
P3.Present = False
P3.Used = False
P3.CurrentNew = 0
P3.Source1 =“C1”
Set P3Operator = P3.Operator
' Operator ...
P3Operator.Enable = True
P3Operator.Origin =“”
P3Operator.Visible = True
P3Operator.XPos = 0
P3Operator.YPos = 0
P3Operator.UsageCount = 0
Set P4 = Measure.P4
' P4 ...
P4.View = True
P4.Present = False
P4.Used = False
P4.CurrentNew = 0
P4.Source1 =“C1”
Set P4Operator = P4.Operator
' Operator ...
P4Operator.Enable = True
P4Operator.Origin =“”
P4Operator.Visible = True
P4Operator.XPos = 0
P4Operator.YPos = 0
P4Operator.UsageCount = 0
Set P5 = Measure.P5
' P5 ...
P5.View = True
P5.Present = False
P5.Used = False
P5.CurrentNew = 0
P5.Source1 =“C1”
Set P5Operator = P5.Operator
' Operator ...
P5Operator.Enable = True
P5Operator.Origin =“”
P5Operator.Visible = True
P5Operator.XPos = 0
P5Operator.YPos = 0
P5Operator.UsageCount = 0
P5Operator.LevelsAre =“Percent”
P5Operator.LowPct = 10
P5Operator.HighPct = 90
P5Operator.LowAbs = 0
P5Operator.HighAbs = 0
Set P6 = Measure.P6
' P6 ...
P6.View = True
P6.Present = False
P6.Used = False
P6.CurrentNew = 0
P6.Source1 =“C1”
Set P6Operator = P6.Operator
' Operator ...
P6Operator.Enable = True
P6Operator.Origin =“”
P6Operator.Visible = True
P6Operator.XPos = 0
P6Operator.YPos = 0
P6Operator.UsageCount = 0
P6Operator.LevelsAre =“Percent”
P6Operator.LowPct = 10
P6Operator.HighPct = 90
P6Operator.LowAbs = 0
P6Operator.HighAbs = 0
Set P7 = Measure.P7
' P7 ...
P7.View = True
P7.Present = False
P7.Used = False
P7.CurrentNew = 0
P7.Source1 =“C1”
Set P7Operator = P7.Operator
' Operator ...
P7Operator.Enable = True
P7Operator.Origin =“”
P7Operator.Visible = True
P7Operator.XPos = 0
P7Operator.YPos = 0
P7Operator.UsageCount = 0
P7Operator.Cyclic = False
P7Operator.CursorDisplay =“Simple”
Set P8 = Measure.P8
' P8 ...
P8.View = True
P8.Present = False
P8.Used = False
P8.CurrentNew = 0
P8.Source1 =“C1”
Set P8Operator = P8.Operator
' Operator ...
P8Operator.Enable = True
P8Operator.Origin =“”
P8Operator.Visible = True
P8Operator.XPos = 0
P8Operator.YPos = 0
P8Operator.UsageCount = 0
Set Memory = WaveMaster.Memory
' Memory ...
Memory.ViewM1 = False
Memory.ViewM2 = False
Memory.ViewM3 = False
Memory.ViewM4 = False
Memory.AutoScrollOn = False
Memory.MultiZoomOn = False
Set M1 = Memory.M1
' M1 ...
M1.View = False
M1.UseGrid =“YT1”
M1.UseDotJoin = True
M1.Persisted = False
M1.PersistenceSaturation = 50
M1.PersistenceMonoChrome = False
M1.Source1 =“C1”
Set M1Memory = M1.Memory
' Memory ...
M1Memory.Enable = True
M1Memory.Origin =“”
M1Memory.Visible = True
M1Memory.XPos = 0
M1Memory.YPos = 0
M1Memory.UsageCount = 0
Set M1Zoom = M1.Zoom
' Zoom ...
M1Zoom.Enable = True
M1Zoom.Origin =“”
M1Zoom.Visible = True
M1Zoom.XPos = 0
M1Zoom.YPos = 0
M1Zoom.UsageCount = 0
M1Zoom.VerPos = 0.5
M1Zoom.VerZoom = 1
M1Zoom.HorPos = 0.5
M1Zoom.HorZoom = 1
M1Zoom.MinVisiblePoints = 5
M1Zoom.VerStart = 0
M1Zoom.VerStop = 0
M1Zoom.HorStart = 0
M1Zoom.HorStop = 0
M1Zoom.VariableVerZoom = False
M1Zoom.VariableHorZoom = False
Set M2 = Memory.M2
' M2 ...
M2.View = False
M2.UseGrid =“YT1”
M2.UseDotJoin = True
M2.Persisted = False
M2.PersistenceSaturation = 50
M2.PersistenceMonoChrome = False
M2.Source1 =“C1”
Set M2Memory = M2.Memory
' Memory ...
M2Memory.Enable = True
M2Memory.Origin =“”
M2Memory.Visible = True
M2Memory.XPos = 0
M2Memory.YPos = 0
M2Memory.UsageCount = 0
Set M2Zoom = M2.Zoom
' Zoom ...
M2Zoom.Enable = True
M2Zoom.Origin =“”
M2Zoom.Visible = True
M2Zoom.XPos = 0
M2Zoom.YPos = 0
M2Zoom.UsageCount = 0
M2Zoom.VerPos = 0.5
M2Zoom.VerZoom = 1
M2Zoom.HorPos = 0.5
M2Zoom.HorZoom = 1
M2Zoom.MinVisiblePoints = 5
M2Zoom.VerStart = 0
M2Zoom.VerStop = 0
M2Zoom.HorStart = 0
M2Zoom.HorStop = 0
M2Zoom.VariableVerZoom = False
M2Zoom.VariableHorZoom = False
Set M3 = Memory.M3
' M3 ...
M3.View = False
M3.UseGrid =“YT1”
M3.UseDotJoin = True
M3.Persisted = False
M3.PersistenceSaturation = 50
M3.PersistenceMonoChrome = False
M3.Source1 =“C1”
Set M3Memory = M3.Memory
' Memory ...
M3Memory.Enable = True
M3Memory.Origin =“”
M3Memory.Visible = True
M3Memory.XPos = 0
M3Memory.YPos = 0
M3Memory.UsageCount = 0
Set M3Zoom = M3.Zoom
' Zoom ...
M3Zoom.Enable = True
M3Zoom.Origin =“”
M3Zoom.Visible = True
M3Zoom.XPos = 0
M3Zoom.YPos = 0
M3Zoom.UsageCount = 0
M3Zoom.VerPos = 0.5
M3Zoom.VerZoom = 1
M3Zoom.HorPos = 0.5
M3Zoom.HorZoom = 1
M3Zoom.MinVisiblePoints = 5
M3Zoom.VerStart = 0
M3Zoom.VerStop = 0
M3Zoom.HorStart = 0
M3Zoom.HorStop = 0
M3Zoom.VariableVerZoom = False
M3Zoom.VariableHorZoom = False
Set M4 = Memory.M4
' M4 ...
M4.View = False
M4.UseGrid =“YT1”
M4.UseDotJoin = True
M4.Persisted = False
M4.PersistenceSaturation = 50
M4.PersistenceMonoChrome = False
M4.Source1 =“C1”
Set M4Memory = M4.Memory
' Memory ...
M4Memory.Enable = True
M4Memory.Origin =“”
M4Memory.Visible = True
M4Memory.XPos = 0
M4Memory.YPos = 0
M4Memory.UsageCount = 0
Set M4Zoom = M4.Zoom
' Zoom ...
M4Zoom.Enable = True
M4Zoom.Origin =“”
M4Zoom.Visible = True
M4Zoom.XPos = 0
M4Zoom.YPos = 0
M4Zoom.UsageCount = 0
M4Zoom.VerPos = 0.5
M4Zoom.VerZoom = 1
M4Zoom.HorPos = 0.5
M4Zoom.HorZoom = 1
M4Zoom.MinVisiblePoints = 5
M4Zoom.VerStart = 0
M4Zoom.VerStop = 0
M4Zoom.HorStart = 0
M4Zoom.HorStop = 0
M4Zoom.VariableVerZoom = False
M4Zoom.VariableHorZoom = False
Set Cursors = WaveMaster.Cursors
' Cursors ...
Cursors.View = False
Cursors.Mode =“RelHor”
Cursors.Readout =“AbsValues”
Cursors.Pos1 = 0.000000125
Cursors.Pos2 = 0.000000275
Cursors.Track = False
Cursors.DisplayedDimension =“ALL”
Cursors.XPos1 = 0.000000125
Cursors.XPos2 = 0.000000275
Cursors.YPos1 = -1
Cursors.YPos2 = 1
Cursors.XPos1Nb1 = 0
Cursors.XPos2Nb1 = 0
Cursors.YPos1Nb1 = 0
Cursors.YPos2Nb1 = 0
Cursors.XMinNb1 = 0
Cursors.XMaxNb1 = 0
Cursors.ExcutiveViewC1 = False
Cursors.ExcutiveGridC1 =“<no grid>”
Cursors.XPos1Nb2 = 0
Cursors.XPos2Nb2 = 0
Cursors.YPos1Nb2 = 0
Cursors.YPos2Nb2 = 0
Cursors.XMinNb2 = 0
Cursors.XMaxNb2 = 0
Cursors.ExcutiveViewC2 = False
Cursors.ExcutiveGridC2 =“<no grid>”
Cursors.XPos1Nb3 = 0
Cursors.XPos2Nb3 = 0
Cursors.YPos1Nb3 = 0
Cursors.YPos2Nb3 = 0
Cursors.XMinNb3 = 0
Cursors.XMaxNb3 = 0
Cursors.ExcutiveViewC3 = False
Cursors.ExcutiveGridC3 =“<no grid>”
Cursors.XPos1Nb4 = 0
Cursors.XPos2Nb4 = 0
Cursors.YPos1Nb4 = 0
Cursors.YPos2Nb4 = 0
Cursors.XMinNb4 = 0
Cursors.XMaxNb4 = 0
Cursors.ExcutiveViewC4 = False
Cursors.ExcutiveGridC4 =“<no grid>”
Cursors.XPos1Nb5 = 0
Cursors.XPos2Nb5 = 0
Cursors.YPos1Nb5 = 0
Cursors.YPos2Nb5 = 0
Cursors.XMinNb5 = 0
Cursors.XMaxNb5 = 0
Cursors.ExcutiveViewF1 = False
Cursors.ExcutiveGridF1 =“<no grid>”
Cursors.XPos1Nb6 = 0
Cursors.XPos2Nb6 = 0
Cursors.YPos1Nb6 = 0
Cursors.YPos2Nb6 = 0
Cursors.XMinNb6 = 0
Cursors.XMaxNb6 = 0
Cursors.ExcutiveViewF2 = False
Cursors.ExcutiveGridF2 =“<no grid>”
Cursors.XPos1Nb7 = 0
Cursors.XPos2Nb7 = 0
Cursors.YPos1Nb7 = 0
Cursors.YPos2Nb7 = 0
Cursors.XMinNb7 = 0
Cursors.XMaxNb7 = 0
Cursors.ExcutiveViewF3 = False
Cursors.ExcutiveGridF3 =“<no grid>”
Cursors.XPos1Nb8 = 0
Cursors.XPos2Nb8 = 0
Cursors.YPos1Nb8 = 0
Cursors.YPos2Nb8 = 0
Cursors.XMinNb8 = 0
Cursors.XMaxNb8 = 0
Cursors.ExcutiveViewF4 = False
Cursors.ExcutiveGridF4 =“<no grid>”
Set Display = WaveMaster.Display
' Display ...
Display.UseGrid =“Single”
Display.TraceStyle =“Line”
Display.GridIntensity = 40
Display.ScreenSaveEnable = True
Display.ScreenSaveTimeout = 60
Display.PersistenceEnable =“Off”
Display.Persisted = False
Display.PersistenceSaturation = 50
Display.PersistenceStyle =“Color”
Display.PersistenceMonoChrome = False
Display.PersistenceApplyToAll = True
Display.PersistenceSelectedTrace =“C1”
Set Help = WaveMaster.Help
' Help ...
Set SaveRecall = WaveMaster.SaveRecall
' SaveRecall ...
SaveRecall.SaveSource =“C1”
SaveRecall.SaveDestination =“M2”
SaveRecall.RecallSource =“M1”
SaveRecall.RecallDestination =“M1”
SaveRecall.DiskFunction =“Delete”
Set SaveRecallRemote = SaveRecall.Remote
' Remote ...
SaveRecallRemote.ImportDestination =“M1”
SaveRecallRemote.ExpotrSource =“C1”
SaveRecallRemote.ExportBlock =“ALL”
SaveRecallRemote.ExportSparsing = 0
SaveRecallRemote.ExportNumberOfPoints = 0
SaveRecallRemote.ExportFirstPoint = 0
SaveRecallRemote.ExportSegmentNumber = 0
SaveRecallRemote.ExportCommOrder =“HI”
SaveRecallRemote.ExportBlockFormat =“DEF9”
SaveRecallRemote.ExportDataType =“BYTE”
SaveRecallRemote.ExportEncoding =“BIN”
Set Utility = WaveMaster.Utility
' Utility ...
Utility.Details = False
Set UtilityService = Utility.Service
‘ Service ...
Set HardCopy = WaveMaster.HardCopy
‘ HardCopy ...
WaveMaster.Enable = true
【００５７】
図１０は本発明を使用するための画面を示す。ディスプレイ画面1000が示されている。ディスプレイ画面は、今日のオペレーティングシステムのいずれか、例えばマイクロソフトウインドウズにより制御できる。ディスプレイは波形1010を示している。ディスプレイ1000の下部には、保存／再現(SAVE RECALL)、波形保存(SAVE WAVEFORM)、波形再現(RECALL WAVEFORM)、設定保存(SAVE SETUP)、設定再現(RECALL SETUP)及びディスクユーティリティ(DISK UTILITIES)のユーザによる利用を可能にするタブ1020がある。ここでは設定保存タブ1022が選択されている。設定は、内ボックス1030に名前をタイプし、保存(SAVE)ボタン1040を押すことにより保存することができる。計測器の設定は、計測器設定ボックス1050にビジュアルベイシックファイル名をタイプし、即保存(SAVE NOW)ボタン1060を押すことにより保存することができる。設定及び計測器設定は、設定再現タブ1070を選択することにより同様の仕方で再現することができる。
【００５８】
図１１は、Cvarの図式表現を示す。Cvar 1110が示されている。Cvar 1110はインクリメント／デクリメント1120すなわち状態変更を含む。インクリメント／デクリメントアルゴリズムは、リクエスト値、したがって適合値をレンジの限界内に確実にとどまらせる。Cvarは、リクエスト値1140、適合値1130並びにレンジ限界及び粒度1170のためのメモリも含む。適合アルゴリズム1150が、レンジ限界及び粒度1170並びにリクエスト値1140を用いて、適合値1130を算出する。適合アルゴリズムは、リクエスト値を確実に記憶させ、得られる適合値をレンジ限界内に確実にとどまらせる。リクエスト値1140はリクエスト値1140を変更できる。Cvarはパーシステンス測定のためのシリアル化1160も含む。シリアル化アルゴリズムすなわちプロセスは、Cvar値のパネルファイルへの保存及び保存したCvar値のパネルファイルからの復元を担当する。Cvar 1110は入力及び出力を有する。図１１は、Cvar 1110とその環境(他のどこかで論じた別のソフトウエアオブジェクト−Bag, ウィジェット, 及びエンジン)との間の最も重要な相互作用も示す。操作手段からの入力またはコマンドは、(現在の適合値に対する)リクエスト値1172のインクリメント／デクリメント、リクエスト値の提示された新しい値1174への設定、及びCvarのリクエスト値の(内部的に知られる)デフォールト値1176への設定を要求できる。イベントシンクからくる出力またはクエリーは、リクエスト値1182、適合値1184及びレンジ情報1178の取得を要求する。このことは詳細には示されていないが、いずれのタイプのCvarからもテキストストリングの形態及び特定のCvarタイプのそれぞれに適切な数値またはテキストストリング形態で取得することができる。
【００５９】
すなわち、前述の説明から明らかにされた目的の中でも、上に提示した目的が有効に達成されることがわかるであろうし、本発明の精神及び範囲を逸脱することなく上記の方法の実施及び提示された構成にある種の変更がなされ得るから、上記説明に含まれ、添付図面に示される、全ての事柄が説明として解されるべきであり、限定する意味で解されるべきではないと目される。
【００６０】
特許請求の範囲が本明細書に説明された本発明の総括的及び特定的特徴の全てを包含し、言葉の問題として、前記総括的及び特定的特徴の間に落ちると言える本発明の範囲に関する全ての言明を包含することを目的としていることは当然である。
【図面の簡単な説明】
【図１】  本発明にしたがって構成されたオシロスコープの動作を概念化した図式表示である
【図２】  Cvarを図表で示す
【図３】  CvarBagを図表で示す
【図４】  ウィジェット概念の図式表示である
【図５】  Cvarとその他のコンポーネントとの関係を示す
【図６】  オペレータが計測器の設定を変更するときにおこるイベントのシーケンスを示す
【図７】  Cvarの内部動作をより詳細に示す
【図８】  Cvarの初期化、パネルキャプチャ及び検索を示す
【図９】  Cvarの初期化を示すフローチャートである
【図１０】  本発明を用いるための画面を示す
【図１１】  Cvarの図式表現を示す
【符号の説明】
１１０    アクイジションハードウエア
１１２    アクイジション制御モジュール
１１５    ユーザインターフェース
１２０    制御変数
１２５    前処理システム
１３０    後処理機能
１３５    処理済データ
１４５    システム
１５５    ディスプレイ装置
【図１】
0004209674.tif 000005
【図２】
0004209674.tif 000006
【図３】
0004209674.tif 000007
【図４】
0004209674.tif 000008
【図５】
0004209674.tif 000009
【図６】
0004209674.tif 000010
【図７】
0004209674.tif 000011
【図８】
0004209674.tif 000012
【図９】
0004209674.tif 000013
【図１０】
0004209674.tif 000014
【図１１】
0004209674.tif 000015