グラフをタイリングする ― 2010/09/22 15:00
LabVIEWで複数のグラフをタイリングして表示するサブViを作成しました。
たくさんの波形を一つの画面で見たい場合、グラフをたくさん表示します。
状況に応じて表示するグラフの数を変更できると便利です。
画面の上下左右の余白や、グラフ同士の上下、左右の隙間を設定できるようにしました。
グラフのリファレンスを配列にしてサブVIに入力するので、グラフの個数には制限はありません。
テストでは、3x3のタイリングを行っていますが、2x3や、5x2といった並べ方も自由にできます。
準備したグラフが、タイリングの数より多い場合に、残ったグラフは非表示になります。
逆に、タイリングに必要な個数が足りない場合には、足りなかった場所は余白になります。
サンプルは会社のサイトに掲載しましたので下記をご覧ください。
画像を拡大縮小する ― 2010/09/24 15:00
LabVIEWで画像を拡大縮小するサブVIを作りました。
入力した画像を、縦横に指定した倍率で拡大縮小させます。
このVIでは、単純に、拡大縮小した後の画像の各画素に対応する、元画像の画素を探して、色を割り当てます。
補間処理や、平均化処理は行っていませんのでご注意ください。
サンプルは会社のサイトに掲載しましたので下記をご覧ください。
自動リンク切れチェック ― 2010/09/29 15:00
LabVIEWでWebサイトの指定したURLに含まれるリンクを自動的に調査して、HTTPの返信のステータス情報からサイトの状態を判断します。
調べたいURLを入力して実行すると、結果のリストを出力します。
"ResultList"は全てのリンク先の調査結果、
"ErrorList"はエラーになったリンク先のリスト、
"ErrorCount"はエラーになったリンク先の数です。
結果のリストは、クラスタの配列です。クラスタには下記の要素が含まれます。
"URL":リンク先のアドレスを表示します。
"Status":ステータス情報を表示します。
"StatusClass":ステータスの分類を表示します。
サンプルは会社のサイトに掲載しましたので下記をご覧ください。
3ループフレームワーク ― 2010/09/30 15:00
プログラムを作る時に、「デザインパターン」を利用する場合があります。
今回は、良くできたデザインパターンのテンプレートがあったので紹介します。
デザインパターンとは、プログラムの構造として良く利用されている定石です。
これは、LabVIEWに限ったものではなく、他の言語、CやJavaでも良く用いられています。
LabVIEWでも、デザインパターンは重要で、NIの講習会でも代表的なパターンが紹介されます。
良く耳にするパターンは、「ステートマシン」や「生産者消費者」でしょう。
この2つを押さえておけば、8割くらいのアプリケーションに対応できるでしょう。
さらに複雑なパターンもあり、その一つがここで紹介されている3ループのパターンです。
メリットとしては、処理タイミングの分離ができる、メンテナンスの容易さ、拡張の容易さなどがあります。
このパターンを利用すれば、速度の速い処理を実行中でもユーザの操作に対応できます。
機能を追加する場合にも、システマティックに対応できるのでグループでの開発に適しています。
このテンプレートでは、イベント処理のループ、メインステートマシンループ、データ収録ループの3つのループから構成されていいます。
イベント処理のループでは、ユーザの操作をイベントストラクチャで受け取り適切な処理を他のループに指示します。
指示を出すのに"キュー"が利用されています。
ほとんどの処理は、メインステートマシンループで実行されます。
ただし、データを収録する処理だけは、データ収録ループで行うので、タイミングが分離されます。
仮にメインループで重たい処理が動いても、データ収録のタイミングに悪影響を与えないための工夫です。
このサンプルでは、エラー処理や、コメントも丁寧に付けられているので利用しやすくなっています。
とは言っても、ほとんどのアプリケーションでは、ここまでの仕組みは必要ないでしょう。
私の会社でも、7種類のデザインパターンをテンプレートとして整備して使い分けていますが、
実際利用するのは、3種類程度で、中には一回も活用されていなものもあります。
といっても、テンプレートが無い状態からスタートするよりは格段に効率が良いのは確かです。
機会があれば、簡単なデザインパターン紹介もしたいと思います。
詳細は、下記をご覧ください。
システムの情報を収集 ― 2010/09/30 16:00
LabVIEWで様々なシステム情報を収集するサブVIを作りました。
参照できる項目は、下記の通りです。
ホスト名、OS 名、OS バージョン、OS 製造元、OS 構成、OS ビルドの種類、
登録されている所有者、登録されている組織、プロダクト ID、最初のインストール日付、
システム起動時間、システム製造元、システム モデル、システムの種類、プロセッサ、
BIOS バージョン、Windows ディレクトリ、システム ディレクトリ、起動デバイス、
システム ロケール、入力ロケール、タイム ゾーン、物理メモリの合計、利用できる物理メモリ、
ページ ファイル: 最大サイズ、ページ ファイル: 利用可能、ページ ファイル: 使用中、
ページ ファイルの場所、ドメイン、ログオン サーバー、ホットフィックス、ネットワーク カード
仕組みは、システム実行VIで、"systeminfo"コマンドを実行してシステム情報を取得しています。
そのままでは、全部の項目が一つのテキストファイルで戻されるだけで使いにくいので、
項目を指定すると、それに対応したデータを取り出す機能も追加しました。
サンプルは会社のサイトに掲載しましたので下記をご覧ください。





最近のコメント