vector<CameraInfo> CameraPointGrey::getCameraList(){ FlyCapture2::Error error; FlyCapture2::BusManager busManager; unsigned int numCameras; error = busManager.GetNumOfCameras(&numCameras); vector<CameraInfo> ret; if (error != FlyCapture2::PGRERROR_OK){ PrintError(error); return ret; } for (unsigned int i=0; i < numCameras; i++){ FlyCapture2::PGRGuid guid; error = busManager.GetCameraFromIndex(i, &guid); if (error != FlyCapture2::PGRERROR_OK) PrintError(error); // Connect to camera FlyCapture2::Camera cam; error = cam.Connect(&guid); if (error != FlyCapture2::PGRERROR_OK) PrintError( error ); // Get the camera information FlyCapture2::CameraInfo camInfo; error = cam.GetCameraInfo(&camInfo); if (error != FlyCapture2::PGRERROR_OK) PrintError( error ); CameraInfo camera; camera.busID = camInfo.nodeNumber; camera.model = camInfo.modelName; camera.vendor = "Point Grey Research"; ret.push_back(camera); } return ret; }
void BACKEND_METHOD(cam_iface_get_camera_info)(int device_number, Camwire_id *out_camid) { CAM_IFACE_CHECK_DEVICE_NUMBER(device_number); if (out_camid==NULL) { CAM_IFACE_THROW_ERROR("return structure NULL"); } FlyCapture2::PGRGuid guid; CIPGRCHK( BACKEND_GLOBAL(busMgr_ptr)->GetCameraFromIndex(device_number, &guid)); FlyCapture2::CameraInfo camInfo; FlyCapture2::Camera *cam = new FlyCapture2::Camera; CIPGRCHK(cam->Connect(&guid)); CIPGRCHK(cam->GetCameraInfo(&camInfo)); CIPGRCHK(cam->Disconnect()); cam_iface_snprintf(out_camid->vendor, CAMWIRE_ID_MAX_CHARS, camInfo.vendorName); cam_iface_snprintf(out_camid->model, CAMWIRE_ID_MAX_CHARS, camInfo.modelName); cam_iface_snprintf(out_camid->chip, CAMWIRE_ID_MAX_CHARS, "GUID %x %x %x %x", guid.value[0], guid.value[1], guid.value[2], guid.value[3]); }
int init_cam_capture ( FlyCapture2::Camera &camera, PGRGuid guid) { CameraInfo camInfo; // Connect the camera err = camera.Connect( &guid ); if ( err != PGRERROR_OK ) { std::cout << "Failed to connect to camera" << std::endl; return false; } // Get the camera info and print it out err = camera.GetCameraInfo( &camInfo ); if ( err != PGRERROR_OK ) { std::cout << "Failed to get camera info from camera" << std::endl; return false; } std::cout << camInfo.vendorName << " " << camInfo.modelName << " " << camInfo.serialNumber << std::endl; err = camera.StartCapture(); if ( err == PGRERROR_ISOCH_BANDWIDTH_EXCEEDED ) { std::cout << "Bandwidth exceeded" << std::endl; return false; } else if ( err != PGRERROR_OK ) { std::cout << "Failed to start image capture" << std::endl; return false; } }