如何从rs2 :: pipeline对象获取设备信息?

时间:2019-05-28 19:36:02

标签: realsense

我有一个将rs2 :: pipeline作为参数的函数,并且我有多个D435和T265试图访问该函数。我想根据调用该函数的相机显示不同的信息,以便如何通过rs2 :: pipeline对象获取有关相机的信息。

rs2 :: device的get_info方法提供了有关相机的信息,但是我不确定如何从rs2 :: pipeline引用rs2 :: device。

void RenderCamera(rs2::pipeline pipe,int id){
    //Display the camera information here from the rs2::pipeline object
    ...
    ...
    ...
    imshow("Rendered_Window",frame_mat);

} 

我想在这里看到的结果是一个简单的调试语句,它为我提供了设备的信息。

1 个答案:

答案 0 :(得分:0)

rs::device是获取设备信息所必需的,以下是获取摄像机信息的一种方法。对于此设备,需要启动和停止捕获,这是开销,如果已经开始捕获该设备,则可能导致一些副作用。始终牢记调用RenderCamera函数的上下文。

    void RenderCamera(rs2::pipeline pipe,int id){    
         rs2::config config;             
         rs2::pipeline_profile pipeline_profile = pipeline.start(config); // camera starts capturing
         pipeline_profile = pipeline.start(config);
         rs2::device rs_dev = pipeline_profile.get_device();
         std::cout <<"Device Name"<<": "<< rs_dev.get_info(RS2_CAMERA_INFO_NAME)<<std::endl;
         std::cout <<"Firmware Version"<<": "<<rs_dev.get_info(RS2_CAMERA_INFO_FIRMWARE_VERSION)<<std::endl;
         std::cout <<"Serial Number"<<": "<<rs_dev.get_info(RS2_CAMERA_INFO_SERIAL_NUMBER)<<std::endl;
         std::cout <<"Product Id"<<": "<<rs_dev.get_info(RS2_CAMERA_INFO_PRODUCT_ID)<<std::endl;
         pipeline.stop(); // camera stops capturing     
         ----   
         ----    
    }