コンテンツにスキップ

UC-1.1(USBモデル)向け初期化コード変更ガイド

本ドキュメント集に掲載しているサンプルプログラムはすべて GbE-2(Ethernetモデル) を前提に記述されていますが、カメラの初期化およびオープン処理の数行を書き換えるだけで、UC-1.1(USBモデル) でも全く同じ画像取得・デコード処理を動作させることができます。


GbE-2 と UC-1.1 では接続インターフェース(Ethernet / USB)が異なるため、デバイスの検索およびオープン関数で指定するパラメータが異なります。

項目 GbE-2 (Ethernetモデル) UC-1.1 (USBモデル)
検索フラグ PUC_DETECT_TARGET_HAWK PUC_DETECT_TARGET_UC1
検索API PUC_DetectDevice2 PUC_DetectDevice2(または PUC_DetectDevice)
オープンAPI PUC_OpenDevice2 PUC_OpenDevice2(または PUC_OpenDevice)

GbE-2 向け接続コード(修正前)

Section titled “GbE-2 向け接続コード(修正前)”
// 1. GbE-2 デバイスを対象に指定して検索
PUC_DETECT_FILTER filter = { 0 };
filter.nDeviceTypeFlags = PUC_DETECT_TARGET_HAWK; // GbE-2 を指定
PUC_DETECT_INFO detectInfo = { 0 };
PUCRESULT ret = PUC_DetectDevice2(&filter, &detectInfo);
if (ret != PUC_SUCCEEDED || detectInfo.nDeviceCount == 0) {
printf("エラー: GbE-2 カメラが見つかりませんでした。\n");
return EXIT_FAILURE;
}
// 2. 検出した最初のデバイスをオープン
PUC_HANDLE hDevice = NULL;
ret = PUC_OpenDevice2(0, &hDevice);

UC-1.1 向け接続コード(修正後)

Section titled “UC-1.1 向け接続コード(修正後)”
// 1. UC-1.1 デバイスを対象に指定して検索
PUC_DETECT_FILTER filter = { 0 };
filter.nDeviceTypeFlags = PUC_DETECT_TARGET_UC1; // UC-1.1 (USB) を指定
PUC_DETECT_INFO detectInfo = { 0 };
PUCRESULT ret = PUC_DetectDevice2(&filter, &detectInfo);
if (ret != PUC_SUCCEEDED || detectInfo.nDeviceCount == 0) {
printf("エラー: UC-1.1 カメラが見つかりませんでした。\n");
return EXIT_FAILURE;
}
// 2. 検出した最初のデバイスをオープン
PUC_HANDLE hDevice = NULL;
ret = PUC_OpenDevice2(0, &hDevice);

UC-1.1 向けサンプルプログラム(HelloWorld)

Section titled “UC-1.1 向けサンプルプログラム(HelloWorld)”

初期化から接続、情報取得、クローズまでの一連の流れを UC-1.1 向けに記述した最小構成のコードです。

  1. ソースコードの記述

    #include <stdio.h>
    #include <stdlib.h>
    #include <PUCLIB.h> // PUCLIB ヘッダーの読み込み
    int main() {
    printf("INFINICAM UC-1.1 初期化中...\n");
    // 1. SDKの初期化
    PUCRESULT ret = PUC_Initialize();
    if (ret != PUC_SUCCEEDED) {
    printf("エラー: SDKの初期化に失敗しました。ErrorCode: %d\n", ret);
    return EXIT_FAILURE;
    }
    // 2. USB接続されている UC-1.1 デバイスを検索
    PUC_DETECT_FILTER filter = { 0 };
    filter.nDeviceTypeFlags = PUC_DETECT_TARGET_UC1; // UC-1.1 を指定
    PUC_DETECT_INFO detectInfo = { 0 };
    ret = PUC_DetectDevice2(&filter, &detectInfo);
    if (ret != PUC_SUCCEEDED || detectInfo.nDeviceCount == 0) {
    printf("エラー: UC-1.1 カメラが見つかりませんでした。ErrorCode: %d\n", ret);
    return EXIT_FAILURE;
    }
    printf("UC-1.1 カメラを検出しました。(検出台数: %d)\n", detectInfo.nDeviceCount);
    // 3. 検出した最初のデバイスをオープン
    PUC_HANDLE hDevice = NULL;
    ret = PUC_OpenDevice2(0, &hDevice);
    if (ret != PUC_SUCCEEDED) {
    printf("エラー: デバイスのオープンに失敗しました。ErrorCode: %d\n", ret);
    return EXIT_FAILURE;
    }
    printf("SUCCESS: UC-1.1 が正常にオープンされました!\n");
    // 4. カメラ情報の取得例
    UINT64 serialNo = 0;
    if (PUC_GetSerialNo(hDevice, &serialNo) == PUC_SUCCEEDED) {
    printf("シリアルナンバー: %llu\n", serialNo);
    }
    UINT32 width = 0, height = 0;
    if (PUC_GetResolution(hDevice, &width, &height) == PUC_SUCCEEDED) {
    printf("解像度: %u x %u ピクセル\n", width, height);
    }
    // 5. デバイスのクローズ
    PUC_CloseDevice(hDevice);
    return EXIT_SUCCESS;
    }
  2. 実行時の注意点

    • USB 3.1 Gen1 (USB 3.0) ポートへの接続: 十分なデータ転送帯域を確保するため、PC の USB 3.0 以上の Type-C ポートに直接接続してください(USB 2.0 ポートでは正常に動作しません)。
    • 64bit (x64) ビルドの指定: Visual Studio のビルド構成が x64 に設定されていることを確認してください。