AFSDKにてGUIのあるアプリケーションを開発する(基礎)

バージョン 1

    PI AF SDKはクライアントサイドで共通に使用できるインターフェイスが用意されています。開発を始める段階では非常に優位なものです。

    以下の手順でシンプルなクライアントアプリケーションを開発してみましょう。AF Serverに接続し、エレメントの階層を表示するアプリケーションです。

    1. Visual Studioを開きます
    2. 新規でプロジェクトを作成します。Visual C# > Windowsフォームアプリケーション  プロジェクト名は“PIAFApplet”とします
    3. PI AF SDKの参照をプロジェクトに追加します。
      • プロジェクト参照の追加...
      • アセンブリ拡張
      • OSIsoft.AFSDKOSIsoft.AF.UIにチェックを付けます。バージョン4.0AFSDKにチェックをつけるようにしてください
      • OKをクリックします
    4. PI AF SDKのオブジェクトをプロジェクトに追加します
      • “Form1.cs”のデザインペーンで左にあるツールボックスを開きます。
      • 「ツールボックス」内にある「すべてのWindowsフォーム」を右クリックし、「アイテムの選択」をクリックします。アイテムがロードされるのを待ちます。
      • 以下のアイテムにチェックします。フィルターを使用すると早く見つけることができます。
        • PISystemPicker
        • AFDatabasePicker
        • AFTreeView
        • インポートが完了したら、それらをツールボックスに追加されます。
    5. フォームにこれらをドラッグアンドドロップします。以下のようなGUIにします。
    6.   
    7. それぞれのツールを使いやすくするため、以下を設定します。
      • PISystemPicker」を選択し、右下に現れる「プロパティ」ペーンを確認します。
      • Scroll down to the properties starting with ShowBegin」で始まるプロパティまでスクロールダウンし、 True, Falseを以下のように設定します。

      

    • Connect Automatically」プロパティまでスクロールアップし、Trueに変更します。この設定により、PI System Pickerは自動でPI AF Serverに接続します。
    • AFDatabasePicker」を選択します。 Showから始まるプロパティのうち「ShowComboBoxShowNoEntriesShowImages」のみがTrueになるようにします[AD2]

    フォームにはこれらのツールが追加されました。しかし、これらのツールはそれぞれ連携していません。これらのツールを連携させるため、コードを書く必要があります。フォーム自体をダブルクリックし、以下のコードをpublic Form1()に追加します。

    InitializeComponent();
    afDatabasePicker1.SystemPicker = piSystemPicker1;
    

    コードの上部には以下usingを追加する必要があります。

    using OSIsoft.AF;
    using OSIsoft.AF.Asset;
    using OSIsoft.AF.Time;
    using OSIsoft.AF.UnitsOfMeasure;
    

    8. Form1.cs の「デザイン」タブに戻ります。「AFDatabasePicker」を選択し、プロパティペーンの雷マークの「イベント」をクリックします。

    9. SelectionChange」までスクロールダウンしてその隣にある空白スペースをダブルクリックします。デフォルトイベントハンドラーにコードを追加することができるようになります。

    10. SelectionChange event handlerメソッドに以下を追加します。

    AFDatabase db = afDatabasePicker1.AFDatabase;
    
    //Clear the treeview
    afTreeView1.AFRoot = null;
    
    if (db != null)
    {
    //Set the root of the Treeview
    afTreeView1.AFRoot = db.Elements;
    }
    

    11. デバッグを開始します。PI AF serverに接続し、データベースを選択し、エレメント階層を操作してみます。

     

    12. デバッグを停止し、プロジェクトを保存します。

    このようにフォームアプリケーションでツリーを表示することができます。このツリーを使用してGUIを含むアプリケーションを簡単に開発することができます。