コンテンツにスキップ
ステージングサーバー
開発サーバー

User-Defined Data#

User-Defined Dataカメラ機能を使用すると、カメラにユーザー定義データを保存できます。

機能を使用する#

仕組み#

カメラにユーザー定義データを保存するには、次の3つのオプションがあります。

User-Defined Valuesの設定#

カメラには、最大5つのユーザー定義値を保存できます。これらの値は、自分の用途に必要な値(パノラマ画像の光学パラメーター値など)にすることができます。これらの値は32ビット符号付き整数値で、必要に応じて設定および取得できます。これらは保管場所として機能し、カメラの動作には影響しません。

値には次のような名前が付けられます Value1 ~ Value5.

ユーザー定義の値を設定するには、次の手順に従います。

  1. パラメーターを UserDefinedValueSelector パラメータを希望のユーザー定義値に設定します(例: Value1.
  2. 希望する値を入力します UserDefinedValue パラメータ。

デバイスユーザーIDの設定#

DeviceUserID パラメータを使用すると、カメラにユーザー定義の名前を割り当てることができます。

カメラにユーザー定義の名前を割り当てるには:

  1. 次の名前を入力します: DeviceUserID に切り替えます。これは Device Control カテゴリ。 DeviceUserID 数字、文字、スペースの任意の組み合わせで構成できます。

GigEカメラの場合、 DeviceUserID 鉄塔にもIP Configurator 。

USB 3.0カメラの場合、変更を有効にするには、 DeviceResetコマンドを使用してカメラをリセットする必要があります。

その他のデバイス情報パラメータに関する情報も参照してください。

バイナリファイルとしてのユーザーデータの保存#

カメラにはバイナリデータを保存できます(ace 2 カメラでは最大約 200 kB)。このデータはUser Dataという別のファイルとして保存され、カメラのファイル アクセス機能を使用して転送されます。 pylon Viewer 。

典型的なユーザーデータの例:

  • 校正データ
  • 陰影補正データ

ユーザーデータをカメラにアップロードする#

pylon Viewerを使用してユーザーデータファイルをアップロードするには:

  1. ではpylon Viewerユーザーデータファイルをアップロードしたいカメラを開きます。
  2. pylon Viewerの[カメラ]メニューで、[ファイルアクセス]をクリックします。
  3. カメラファイルのドロップダウンボックスで、 「ユーザーデータ」を選択します。
  4. 「アップロード」をクリックし、アップロードするファイルを選択してください。ファイルの拡張子は「*.dll」である必要があります。
  5. [開く]をクリックします。
  6. Camera File Accessダイアログを閉じます。

ファイルはカメラに保存されます。

カメラからのユーザーデータのダウンロード#

pylon Viewerを使用してユーザーデータファイルをダウンロードするには、次の手順に従います。

  1. pylon Viewerで、ユーザーデータファイルをダウンロードするカメラを開きます。
  2. pylon Viewerの[カメラ]メニューで、[ファイルアクセス]をクリックします。
  3. カメラファイルのドロップダウンボックスで、 「ユーザーデータ」を選択します。
  4. Downloadをクリックし、ファイルを保存するディレクトリに移動して、ファイル拡張子*.dllを含む希望のファイル名を入力します。
  5. Saveをクリックします。
  6. Camera File Accessダイアログを閉じます。

指定したディレクトリにファイルがダウンロードされます。

サンプルコード#

// Select user-defined value 1
camera.UserDefinedValueSelector.SetValue(UserDefinedValueSelector_Value1);
// Set the value for the UserDefinedValue parameter
camera.UserDefinedValue.SetValue(1000);
// Get the value of user-defined value 1
camera.UserDefinedValueSelector.SetValue(UserDefinedValueSelector_Value1);
int64_t UserValue1 = camera.UserDefinedValue.GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Select user-defined value 1
CEnumParameter(nodemap, "UserDefinedValueSelector").SetValue("Value1");
// Set the value for the UserDefinedValue parameter
CIntegerParameter(nodemap, "UserDefinedValue").SetValue(1000);
// Get the value of user-defined value 1
CEnumParameter(nodemap, "UserDefinedValueSelector").SetValue("Value1");
int64_t UserValue1 = CIntegerParameter(nodemap, "UserDefinedValue").GetValue();
// Select user-defined value 1
camera.Parameters[PLCamera.UserDefinedValueSelector].SetValue(PLCamera.UserDefinedValueSelector.Value1);
// Set the value for the UserDefinedValue parameter
camera.Parameters[PLCamera.UserDefinedValue].SetValue(1000);
// Get the value of user-defined value 1
camera.Parameters[PLCamera.UserDefinedValueSelector].SetValue(PLCamera.UserDefinedValueSelector.Value1);
Int64 UserValue1 = camera.Parameters[PLCamera.UserDefinedValue].GetValue();
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK;  /* Return value of pylon methods */
int64_t UserValue1 = 0;
/* Select user-defined value 1 */
errRes = PylonDeviceFeatureFromString(hdev, "UserDefinedValueSelector", "Value1");
CHECK(errRes);
/* Set the value for the UserDefinedValue parameter */
errRes = PylonDeviceSetIntegerFeature(hdev, "UserDefinedValue", 1000);
CHECK(errRes);
/* Get the value of user-defined value 1 */
errRes = PylonDeviceFeatureFromString(hdev, "UserDefinedValueSelector", "Value1");
CHECK(errRes);
errRes = PylonDeviceGetIntegerFeature(hdev, "UserDefinedValue", &UserValue1);
CHECK(errRes);
# Select user-defined value 1
camera.UserDefinedValueSelector.Value = "Value1"
# Set the value for the UserDefinedValue parameter
camera.UserDefinedValue.Value = 1000
# Get the value of user-defined value 1
camera.UserDefinedValueSelector.Value = "Value1"
UserValue1 = camera.UserDefinedValue.Value

pylon Viewerを使用して、パラメーターを簡単に設定することもできます。