RM新时代网站

C++ 設備控制示例代碼-Device Control

# 傳感器控制示例-SensorControl

 

功能描述:本示例演示了對device控制命令的操作、對Sensor控制命令的操作、對Sensor進(jìn)行流操作。

> 本示例基于C++ Low Level API進(jìn)行演示

 

首先需要創(chuàng )建一個(gè)Context,用于獲取設備信息列表和創(chuàng )建設備

ob::Context ctx;

 

查詢(xún)設備信息列表

auto devList = ctx.queryDeviceList();

 

選擇一個(gè)設備進(jìn)行操作,如果插入單個(gè)設備默認選擇并打開(kāi),如果存在多個(gè)設備提供選擇

//選擇一個(gè)設備進(jìn)行操作
std::shared_ptr<ob::Device> device = nullptr;
if(deviceList->deviceCount() > 0) {
    if(deviceList->deviceCount() <= 1) {
    //如果插入單個(gè)設備,默認選擇第一個(gè)
        device = deviceList->getDevice(0);
    }
    else {
        device = selectDevice(deviceList);
    }

 

控制命令控制,獲取Property的范圍,設置屬性,獲取屬性

//獲取Property的范圍
OBBoolPropertyRange  bool_range = device->getBoolPropertyRange(property_item.id)
OBIntPropertyRange   int_range = device->getIntPropertyRange(property_item.id)
OBFloatPropertyRange float_range = device->getFloatPropertyRange(property_item.id)

//設置屬性
device->setBoolProperty(propertyItem.id, bool_value);
device->setIntProperty(propertyItem.id, int_value);
device->setFloatProperty(propertyItem.id, float_value);

//獲取屬性
bool bool_ret = device->getBoolProperty(propertyItem.id);
int int_ret = device->getIntProperty(propertyItem.id);
float float_ret = device->getFloatProperty(propertyItem.id);

程序正常退出之后資源將會(huì )自動(dòng)釋放

預期輸出:

 5b888ebe0f14d131a1a76519c1e15ded.png


RM新时代网站