UC-1.1(USBモデル)向け初期化コード変更ガイド
This content is not available in your language yet.
本ドキュメント集に掲載しているサンプルプログラムはすべて GbE-2(Ethernetモデル) を前提に記述されていますが、カメラの初期化およびオープン処理の数行を書き換えるだけで、UC-1.1(USBモデル) でも全く同じ画像取得・デコード処理を動作させることができます。
接続処理の変更点
Section titled “接続処理の変更点”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) |
コードの書き換え比較
Section titled “コードの書き換え比較”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 向けに記述した最小構成のコードです。
-
ソースコードの記述
#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;} -
実行時の注意点
- USB 3.1 Gen1 (USB 3.0) ポートへの接続: 十分なデータ転送帯域を確保するため、PC の USB 3.0 以上の Type-C ポートに直接接続してください(USB 2.0 ポートでは正常に動作しません)。
- 64bit (x64) ビルドの指定: Visual Studio のビルド構成が
x64に設定されていることを確認してください。
