VeriStandカスタムデバイスに無効機能を実装する

更新しました May 30, 2025

環境

ソフトウェア

  • VeriStand
  • VeriStand Custom Devices

LabVIEWでカスタムデバイスを開発することで、VeriStandの機能を拡張することができます。

カスタムデバイスをVeriStandのプロジェクトに組み込んでからデプロイ、実行するなかで問題が発生した場合、カスタムデバイスを一時的に無効にすることでデバッグに役立つ場合がありますが、無効にする機能は最初から備わっているわけではなく、LabVIEWによる開発時に追加する必要があります。

ここでは、カスタムデバイスの一時的な無効化機能の実装方法を紹介します。

カスタムデバイスに一時的な無効化機能を実装するためには、次の手順を実行してください。
また、ページ下部からプロジェクトファイルをダウンロードできます。LabVIEW 2024で保存されていますが、xmlの書き方例を確認するときにはLabVIEWを使用する必要はなく、テキストエディタで開いて中身を確認してください。

  1. カスタムデバイスのメインページ用と、無効化したときのメインページ用の二つのGUIDを用意します。通常、GUIDはグローバル変数としてカスタムデバイステンプレートウィザードで作成したプログラムテンプレートに用意される<カスタムデバイス名> shared.lvlib中のConstants.viとしてまとまっています。以下の図のように、元々あったメインページ用のGUIDにはEnabled、無効化したときのメインページ用のGUIDにはDisabledとラベルをつけると後で使用するときに区別がつきやすくなります。

     

  2. 無効化を実行するためのプログラム、EnableDisable Main Page.viを作成します。このviは、<カスタムデバイス名> System Explorer.lvlibの下に作成していきます。以下の図では、RTMという仮想フォルダを作成し、この中にEnableDisable Main Page.viを作成しています。

     

    このviの中身は以下のように構成します。二つのグローバル変数は、先ほど編集したConstatns.viを使用しています。



    なお、Get Item GUID.viへの入力は、関数を右クリックして制御器を作成するとラベル名がItem Ref inとなりますが、Node Ptrに名前を変更します。また、このviのコネクタペーンには、このNode Ptrを設定しておきます。
  3. カスタムデバイスのxmlファイルを編集します。編集の対象になるのは、カスタムデバイスのメインページに対しての設定を定義した<Page>と</Page>の間の内容です。もし、メインページに対してなにかランタイムメニュー(RTM)を設定する場合には、まずこのRTMを設定します。
    以下のスクリプトは、メインページに対して構成をエクスポートする機能をRTMとして実装した場合の表記例です。ただし、各GUIDおよびPathの内容は実際のカスタムデバイスの内容に合わせてください。
    注意:ここで指定するGUIDは、Constants.viで指定した、Disabled用のGUIDとは異なる値です。

    <RunTimeMenu>
            <MenuItem>
              <GUID>781DB2B2-9018-4704-A40D-3FC0CEE746FF</GUID>
              <Type>Action</Type>
              <Execution>silent</Execution>
              <Name>
                <eng>Export Confiugration</eng>
                <loc>Export Configuraiton</loc>
              </Name>
              <Item2Launch>
                <Type>To Common Doc Dir</Type>
                <Path>Custom Devices\MyDemoCustomDevice\Windows\MyDemoCustomDevice Configuration.llb\Export Configuration RTM.vi</Path>
              </Item2Launch>
            </MenuItem>        
    </RunTimeMenu>

     

    このRunTimeMenuの中に、追加でMenuItemを加えて、そのメニューの内容として先ほど作成したEnableDisable Main Page.viを追加します。
    したがって、全体の構成例は以下のようになります。

    <RunTimeMenu>
            <MenuItem>
              <GUID>781DB2B2-9018-4704-A40D-3FC0CEE746FF</GUID>
              <Type>Action</Type>
              <Execution>silent</Execution>
              <Name>
                <eng>Export Confiugration</eng>
                <loc>Export Configuraiton</loc>
              </Name>
              <Item2Launch>
                <Type>To Common Doc Dir</Type>
                <Path>Custom Devices\MyDemoCustomDevice\Windows\MyDemoCustomDevice Configuration.llb\Export Configuration RTM.vi</Path>
              </Item2Launch>
            </MenuItem>
            <MenuItem>
              <GUID>3ABDE213-0100-48AF-943E-DC6BC91B7105</GUID>
              <Type>Separator</Type>
              <Name>
                <eng>.</eng>
                <loc>.</loc>
              </Name>
              <Item2Launch>
                <Type>Absolute</Type>
                <Path>.</Path>
              </Item2Launch>
            </MenuItem>
            <MenuItem>
              <GUID>8CB32603-DEFF-4D13-AC29-0B37A7489FC0</GUID>
              <Type>Action</Type>
              <Name>
                <eng>Disable</eng>
                <loc>Disable</loc>
              </Name>
              <Item2Launch>
                <Type>To Common Doc Dir</Type>
                <Path>Custom Devices\MyDemoCustomDevice\Windows\MyDemoCustomDevice Configuration.llb\EnableDisable Main Page.vi</Path>
              </Item2Launch>
            </MenuItem>
    </RunTimeMenu>

     

    上記の内容を、メインページに対する<Page>と</Page>内に追加します。

     

  4. 上記で追加した内容含め、メインページに対する<Page>と</Page>の内容(<Page>や</Page>タグを含む)を全てコピーし、メインページの</Page>の後に貼りつけます。その後、Main Page.viに対するGUIDをConstants.vi内でDisabled用に用意した内容に変えて、Menu Itemの表記をDisableからEnableに変更します。
    実装例は以下の通りです。

    <Page>
          <Name>
            <eng>MyDemoCustomDevice</eng>
            <loc>MyDemoCustomDevice</loc>
          </Name>
          <GUID>EDB123ED-3402-491F-B0A0-FDD011A782D5</GUID>
          <Glyph>
            <Type>To Application Data Dir</Type>
            <Path>System Explorer\Glyphs\EditDelete.png</Path>
          </Glyph>
          <Item2Launch>
            <Type>To Common Doc Dir</Type>
            <Path>Custom Devices\MyDemoCustomDevice\Windows\MyDemoCustomDevice Configuration.llb\Main Page.vi</Path>
          </Item2Launch>
          <RunTimeMenu>
            <MenuItem>
              <GUID>781DB2B2-9018-4704-A40D-3FC0CEE746FF</GUID>
              <Type>Action</Type>
              <Execution>silent</Execution>
              <Name>
                <eng>Export Confiugration</eng>
                <loc>Export Configuraiton</loc>
              </Name>
              <Item2Launch>
                <Type>To Common Doc Dir</Type>
                <Path>Custom Devices\MyDemoCustomDevice\Windows\MyDemoCustomDevice Configuration.llb\Export Configuration RTM.vi</Path>
              </Item2Launch>
            </MenuItem>
            <MenuItem>
              <GUID>3ABDE213-0100-48AF-943E-DC6BC91B7105</GUID>
              <Type>Separator</Type>
              <Name>
                <eng>.</eng>
                <loc>.</loc>
              </Name>
              <Item2Launch>
                <Type>Absolute</Type>
                <Path>.</Path>
              </Item2Launch>
            </MenuItem>
            <MenuItem>
              <GUID>8CB32603-DEFF-4D13-AC29-0B37A7489FC0</GUID>
              <Type>Action</Type>
              <Name>
                <eng>Enable</eng>
                <loc>Enable</loc>
              </Name>
              <Item2Launch>
                <Type>To Common Doc Dir</Type>
                <Path>Custom Devices\MyDemoCustomDevice\Windows\MyDemoCustomDevice Configuration.llb\EnableDisable Main Page.vi</Path>
              </Item2Launch>
            </MenuItem>
          </RunTimeMenu>
    </Page>

     

  5. xml編集後、カスタムデバイスをビルドし、VeriStandプロジェクトに追加します。

上記の内容で構成したxmlファイルに対して、カスタムデバイスを右クリックすると以下のようにランタイムメニューが表示されます。