情報詳細Q:カメラを4台接続して、PylonAPIで接続する際にオープンに失敗する場合があります。エラーの内容はThe deviceis controlled by another applicationと表示されます。A:プログラムの書き方が間違っている可能性があります。以下の内容ですと、EnumerateDevicesをfor文のループで毎回実行してしまうと取得するたびにデバイスリストの順番が変わってしまうことがあります。--------------------------------------------------------------------DeviceInfoList_t devices;for (int i = 0; i < CTlFactory::GetInstance().EnumerateDevices(devices); ++i){CInstantCamera* pCam = NULL;try{if (!pCam){pCam = new CInstantCamera( CTlFactory::GetInstance().CreateDevice(devices[i]));pCam->MaxNumBuffer = 5;for(int j = 0; j {try {pCam->Open();break;}catch (GenICam::GenericException e){const char* p = e.GetDescription();Sleep(1000);}}省略}--------------------------------------------------------------------そのため、1回目でオープンしたデバイスが2回目のループではデバイスリストの2番目として取得され、再びオープンしようとしてエラーが起きています。解決策は、EnumerateDevicesをfor文の前で実行することです。一度しかデバイスリストを取得しないため、ループの中でデバイスの順番が入れ替わることがなくなります。カメラを1台接続するときは、オープンに失敗しないが複数台接続するとオープンに失敗するといった場合に要注意です。プログラム画面のキャプチャを添付致します。添付ファイルSS.pngタイトルpylon:pylonAPIでカメラ複数台接続時オープンに失敗するURL 名000004791公開状況公開済み検証状況公開済み