COM API

 

アナライザーはVisual Basic、C++ やExcelのような外部プログラムでコントロールし、データを処理することができます。


 

 

Initialization初期化)

 

Note: この機能にアクセスするには「Automation Tools」オプション(Opt/10)の搭載が必須です。「Accessed Denied」が表示される場合は当該オプションを追加ご購入下さい。

 



Visual Basic (Microsoft Visual Studio 2008)

 

1. プロジェクトへのオートメーションインターフェースに参照を加えます 

1)       プロジェクトを選択 | 参照を追加…

2)       参照ダイアログでCOMタブを選択

3)       SpectraPLUS-DT Automation Typelibを選択

4)       OKをクリック

 

2. クラスのインスタンスを作成します

Dim SP As SpectraPLUS_DTAutomationLib.ISpectraPLUS_DT

SP = New SpectraPLUS_DTAutomationLib.SpectraPLUS_DTClass

 

3. メソッドを呼び出します

SP.Run()

 

 

Return Values

メソッドがHRESULTsを返すので、もしエラーが発生すればVisual Basicは戻り値を例外にコンバートします。そのようにコードで例外を取り扱わなければなりません。

 

On Error GoTo Err_Trap

    

... call methods, etc.

 

Err_Trap:

     Dim sMsg As String

  sMsg = "The error returned: "

     sMsg = sMsg & Err.Description

  MsgBox sMsg, vbCritical, _

       "Error" & Str$(Err.Number)

  Err.Clear

  Resume Next

 

Accessing Arrays

GetSpectrum()でSAFEARRAYSをどう使用するかに関する例を以下に述べます。freqとdataの両方は単精度浮動小数点配列です。

 

Dim freq() As Single

Dim data() As Single

      

SP.GetSpectrum(0, freq, data)

    

Dim n As Variant

    

For Each n In freq

  Value = n

Next n

    

For Each q In data

  Value = q

Next q

 

   

    *) サンプルソース ZIP 




Visual C++ (Visual Studio 2008)

 

1.  Type Library (TLB)をインポートします。

2.  そのTypeのスマートポインタを作成します。

3.  メソッドを呼び出します。

 

#import "C:\SpectraPLUS_DT\bin\ SPDTAxnIface.tlb" no_namespace

 

CoInitialize(NULL);

 

ISpectraPLUS_DTPtr ISP(__uuidof(SpectraPLUS_DTClass));

 

if ( ISP )

{

  ISP->Run();

}

 

… execute remainder of program …

 

ISP = 0;

 

戻り値はHRESULTSです。スマートポインターのVisual C++実装は戻り値を妨害し、エラーを除外します。このようにすべてのコードはtry/catchブロックに注意しなければなりません。除外されるタイプは_com_errorです。 

 

try

{

  ISP->Run();

}

catch ( _com_error &error )

{

  MessageBox( error.ErrorMessage() );

}

 

 

    *) サンプルソース ZIP



Microsoft Excel

 

1. Excelのデベロッパータブを有効にします

 

Excel 2007:

1)       Officeボタンをクリック

2)       オプションをクリック

3)       Popularをクリック

4)       "Show Developer tab in the Ribbon" ボックスをチェック

 

Excel 2010:

1)       ファイルタブをクリック

2)       オプション・コマンドをクリック

3)       カスタマイズリボンカテゴリーをクリック

4)       メインタブリストの"Developer"ボックスをチェック

 

2. オートメーションインターフェースに参照を加えます

1)       デベロッパータブをクリック

2)       ビューコードをクリック

3)       ツール| 参照を選択

4)       スクロールダウンし"SpectraPLUS-DT Automation Typelib"をチェック

5)       OKをクリック

 

3. クラスのインスタンスを作成します

Dim SP As SpectraPLUS_DTClass

Set SP = CreateObject("SpectraPLUS_DT.Axn")

 

4. メソッドを呼び出します

SP.Run

 

 

以下はスペクトラルデータ列の取得方法とスプレッドシートでの利用例です。

 

Dim channel As Integer

Dim startHz As Single

Dim stopHz As Single

        

' 周波数範囲とチャンネルを指定

channel = 0

startHz = 500#

stopHz = 2000#

              

' スペクトラルデータ列変数の定義

Dim freq() As Single

Dim data() As Single

        

' アナライザーからデータの読み込み

SP.GetSpectrumInSpan channel, startHz, stopHz, freq, data

        

Dim n As Variant

Dim q As Variant

        

Dim col As Integer

Dim row As Integer

 

' セルにデータをロード        

col = 1

row = 1

For Each n In freq

  Sheet1.Cells(row, col).value = n

  row = row + 1

Next n

    

col = 2

row = 1

For Each q In data

  Sheet1.Cells(row, col).value = q

  row = row + 1

Next q


  

    *) サンプルソース ZIP