<< 前へ        次へ >>

ID : 5491

TrackBufferIndexes

機能

トラッキングバッファに保存されているデータのインデックス番号だけを抽出し、配列にして返します。

このコマンドはVer.1.6.*から有効です。

構文

TrackBufferIndexes (コンベア番号 [, 対象データ[, ユーザデータ]])

指定項目

コンベア番号

使用するコンベア番号(1~16)を整数型データで指定します。
(Ver.1.11.*以前はコンベア1、コンベア2のみ指定可能です。)

対象データ

取得するデータを整数型データで指定します。省略可能です。省略すると"-1"を指定したことになります。

設定値 内容
-1 すべてのデータが対象。
1 TrackTargetPos」でトラッキング対象ワークに設定したデータが対象。
TrackTargetPos」の第4引数のモード1を有効にして、トラッキング対象ワークのデータを
トラッキングバッファに残した状態で実行する必要があります。
2 設定値"1"で対象となるデータを除いた、すべてのデータが対象。
この項目はVer.2.0.*から使用可能です。
3 ワークの現在位置がトラッキング範囲上流限界よりも上流にあるデータが対象。
この項目はVer.2.0.*から使用可能です。
4 ワークの現在位置がトラッキング範囲上流限界よりも下流にあるデータが対象。
この項目はVer.2.0.*から使用可能です。
5 ワークの現在位置がトラッキング範囲下流限界よりも上流にあるデータが対象。
この項目はVer.2.0.*から使用可能です。
6 ワークの現在位置がトラッキング範囲下流限界よりも下流にあるデータが対象。
この項目はVer.2.0.*から使用可能です。
7 ワークの現在位置がトラッキング範囲内にあるデータが対象。
この項目はVer.2.0.*から使用可能です。
ユーザデータ
整数型データで指定します。負の値を指定した場合は、ユーザデータの判定をしません。
省略可能です。省略した場合は"-1"を指定したことになります。この項目はVer.2.0.*から使用可能です。

戻り値

指定した対象データ、およびユーザデータに該当するデータのインデックス番号を返します。
バリアント(Variant)型データの1次配列で返します。各インデックス番号は整数型データです。
トラッキングバッファが空の場合は、「VarType」コマンドの値が"VT_NULL(0)"になるバリアント(Variant)型データを返します。

対象データ ユーザデータ 戻り値
指定 省略または負の値 ユーザデータを問わず、指定した対象データのインデックス番号を返す。
指定 指定 指定したユーザデータに属する、指定した対象データのインデックス番号を返す。
省略(-1) 省略または負の値 トラッキングバッファ内の全てのデータのインデックス番号を返す。
省略(-1) 指定 指定したユーザデータに属するトラッキングバッファ内の全てのデータのインデックス番号を返す。

解説

トラッキングバッファに保存されているデータの中から、指定した対象データ、およびユーザデータに該当するデータのインデックス番号だけを抽出し、配列にして返します。
取得したインデックス番号を用いて、トラッキングバッファデータを指定し、TrackBufferReadによりデータの参照を行います。

注意事項

コンベアおよび円形トラッキング専用のコマンドです。

用例

Sub Main  

  ' 全てのデータのインデックス番号を抽出
  Dim vIndex as Variant    
  vIndex = TrackBufferIndexes(1, -1) 
 
  Dim idx as long    
  For idx = LBound(vIndex) To UBound(vIndex)
    
    ' インデックス番号を用いて、トラッキングバッファより指定されたデータを取得
    Dim vVal as Variant
    vVal = TrackBufferRead(1, vIndex(idx), -1)                            

    ' データ出力  
    PrintDbg "enc=" & vVal(0), _
             "x=" & vVal(1), _
             "y=" & vVal(2), _
             "z=" & vVal(3), _
             "rx=" & vVal(4), _
             "ry=" & vVal(5), _
             "rz=" & vVal(6)
    
  Next
      
End sub

 

下に要素が空かどうかで処理を分ける例を示します。

#include "variant.h"

Sub Main

  ' 全てのデータのインデックス番号を抽出
 Dim vIndex as Variant
 vIndex = TrackBufferIndexes(1, -1)

  If VarType(vIndex) = VT_EMPTY then
    ' 要素が空の場合の処理

'・・・
  ElseIf VarType(vIndex) And VT_ARRAY then
    ' 要素が空でない(要素が配列になっている)場合の処理
    If ( UBound( vIndex ) <> -1 ) then
      ' 要素の数がゼロでないことを確認してデータ読み出し
      ' インデックス番号を用いて、トラッキングバッファより指定されたデータを取得
      Dim vVal as Variant
      vVal = TrackBufferRead(1, UBound( vIndex ), -1)
'・・・
    End If
'・・・
  End If

End Sub

ID : 5491

<< 前へ        次へ >>