| OrbbecSDK 1.5.7 OrbbecSDK: Software-Development-Kit for Orbbec 3D-Sensor devices

- 首页
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

Public 成员函数 | 友元 | 所有成员列表
ob::Device类 参考

`#include <Device.hpp>`

## Public 成员函数
| Device (std::unique_ptr< DeviceImpl > impl)
| 描述RGBD相机的实体，代表一个具体型号的RGBD相机 更多...
virtual | ~Device () noexcept
std::shared_ptr< DeviceInfo > | getDeviceInfo ()
| 获取设备信息 更多...
std::shared_ptr< SensorList > | getSensorList ()
| 获取设备传感器列表 更多...
std::shared_ptr< Sensor > | getSensor (OBSensorType type)
| 获取指定类型传感器 如果设备没有打开传感器，在SDK内部会自动打开设备并返回实例 更多...
void | setIntProperty (OBPropertyID propertyId, int32_t property)
| 设置int类型的设备属性 更多...
void | setFloatProperty (OBPropertyID propertyId, float property)
| 设置float类型的设备属性 更多...
void | setBoolProperty (OBPropertyID propertyId, bool property)
| 设置bool类型的设备属性 更多...
int32_t | getIntProperty (OBPropertyID propertyId)
| 获取int类型的设备属性 更多...
float | getFloatProperty (OBPropertyID propertyId)
| 获取float类型的设备属性 更多...
bool | getBoolProperty (OBPropertyID propertyId)
| 获取bool类型的设备属性 更多...
OBIntPropertyRange | getIntPropertyRange (OBPropertyID propertyId)
| 获取int类型的设备属性的范围(包括当前值和默认值) 更多...
OBFloatPropertyRange | getFloatPropertyRange (OBPropertyID propertyId)
| 获取float类型的设备属性的范围(包括当前值和默认值) 更多...
OBBoolPropertyRange | getBoolPropertyRange (OBPropertyID propertyId)
| 获取bool类型的设备属性的范围(包括当前值和默认值) 更多...
void | writeAHB (uint32_t reg, uint32_t mask, uint32_t value)
| AHB写寄存器 更多...
void | readAHB (uint32_t reg, uint32_t mask, uint32_t *value)
| AHB读寄存器 更多...
void | writeI2C (uint32_t moduleId, uint32_t reg, uint32_t mask, uint32_t value)
| I2C写寄存器 更多...
void | readI2C (uint32_t moduleId, uint32_t reg, uint32_t mask, uint32_t *value)
| I2C读寄存器 更多...
void | writeFlash (uint32_t offset, const void *data, uint32_t dataSize, SetDataCallback callback, bool async=false)
| 设置写入Flash的属性 更多...
void | readFlash (uint32_t offset, uint32_t dataSize, GetDataCallback callback, bool async=false)
| 读取Flash的属性 更多...
void | setRawData (OBPropertyID propertyId, const void *data, uint32_t dataSize, SetDataCallback callback, bool async=false)
| 设置raw data类型的设备属性数据[异步回调] 更多...
void | getRawData (OBPropertyID propertyId, GetDataCallback callback, bool async=false)
| 获取raw data类型的设备属性数据[异步回调] 更多...
void | setStructuredData (OBPropertyID propertyId, const void *data, uint32_t dataSize)
| 设置structured data类型的设备属性 更多...
void | getStructuredData (OBPropertyID propertyId, void *data, uint32_t *dataSize)
| 获取structured data类型的设备属性 更多...
void | setStructuredDataExt (OBPropertyID propertyId, std::shared_ptr< OBDataBundle > dataBundle, SetDataCallback callback)
| Set the Structured Data Ext object. 更多...
std::shared_ptr< OBDataBundle > | getStructuredDataExt (OBPropertyID propertyId)
| 获取structured data类型的数据 更多...
OBProtocolVersion | getProtocolVersion ()
| 获取设备的控制命令协议版本 更多...
OBCmdVersion | getCmdVersion (OBPropertyID propertyId)
| 获取控制命令的版本号 更多...
uint32_t | getSupportedPropertyCount ()
| 获取设备支持的属性的数量 更多...
OBPropertyItem | getSupportedProperty (uint32_t index)
| 获取设备支持的属性 更多...
bool | isPropertySupported (OBPropertyID propertyId, OBPermissionType permission)
| 判断属性权限支持情况 更多...
uint64_t | syncDeviceTime ()
| 同步设备时间（向设备授时，同步本地系统时间到设备） 更多...
void | deviceUpgrade (const char *filePath, DeviceUpgradeCallback callback, bool async=true)
| 升级设备固件 更多...
void | sendFile (const char *filePath, const char *dstPath, SendFileCallback callback, bool async=true)
| 发送文件到设备端指定路径[异步回调] 更多...
OBDeviceState | getDeviceState ()
| 获取当前设备状态 更多...
void | setDeviceStateChangedCallback (DeviceStateChangedCallback callback)
| 设置设备状态改变回调函数 更多...
bool | activateAuthorization (const char *authCode)
| 验证设备授权码 更多...
void | writeAuthorizationCode (const char *authCodeStr)
| 写入设备授权码 更多...
std::shared_ptr< CameraParamList > | getCalibrationCameraParamList ()
| 获取设备内保存的相机标定的原始参数列表，列表内参数不与当前开流配置相对应， 需要自行根据实际情况选用参数并可能需要做缩放、镜像等处理。非专业用户建议使用Pipeline::getCameraParam()接口。 更多...
OBDepthWorkMode | getCurrentDepthWorkMode ()
| 查询当前的相机深度模式 更多...
OBStatus | switchDepthWorkMode (const OBDepthWorkMode &workMode)
| 切换相机深度模式（根据深度工作模式对象），如果知道设备支持的深度工作模式名称，那么推荐用switchDepthWorkMode(const char *modeName) 更多...
OBStatus | switchDepthWorkMode (const char *modeName)
| 切换相机深度模式（根据深度工作模式名称） 更多...
std::shared_ptr< OBDepthWorkModeList > | getDepthWorkModeList ()
| 查询相机深度模式列表 更多...
void | reboot ()
| 设备重启 更多...
OBDeviceSyncConfig | getSyncConfig ()
| 获取当前设备同步配置 更多...
void | setSyncConfig (const OBDeviceSyncConfig &deviceSyncConfig)
| 设置设备同步配置 更多...

## 友元
class | Pipeline
class | Recorder

## 详细描述

在文件 Device.hpp 第 33 行定义.

## 构造及析构函数说明

ob::Device::Device | ( | std::unique_ptr< DeviceImpl > | impl | ) |

描述RGBD相机的实体，代表一个具体型号的RGBD相机

virtual ob::Device::~Device | ( |  | ) |
| virtual noexcept

## 成员函数说明

std::shared_ptr<DeviceInfo> ob::Device::getDeviceInfo | ( |  | ) |

获取设备信息

返回
  std::shared_ptr<DeviceInfo> 返回设备的信息

std::shared_ptr<SensorList> ob::Device::getSensorList | ( |  | ) |

获取设备传感器列表

返回
  std::shared_ptr<SensorList> 返回传感器列表

std::shared_ptr<Sensor> ob::Device::getSensor | ( | OBSensorType | type | ) |

获取指定类型传感器 如果设备没有打开传感器，在SDK内部会自动打开设备并返回实例

返回
  std::shared_ptr<Sensor> 返回传感器示例，如果设备没有该设备，返回nullptr

void ob::Device::setIntProperty | ( | OBPropertyID | propertyId,
|  | int32_t | property
| ) |  |

设置int类型的设备属性

参数

  propertyId | 属性id
  property | 要设置的属性

void ob::Device::setFloatProperty | ( | OBPropertyID | propertyId,
|  | float | property
| ) |  |

设置float类型的设备属性

参数

  propertyId | 属性id
  property | 要设置的属性

void ob::Device::setBoolProperty | ( | OBPropertyID | propertyId,
|  | bool | property
| ) |  |

设置bool类型的设备属性

参数

  propertyId | 属性id
  property | 要设置的属性

int32_t ob::Device::getIntProperty | ( | OBPropertyID | propertyId | ) |

获取int类型的设备属性

参数

  propertyId | 属性id

返回
  int32_t 获取的属性数据

float ob::Device::getFloatProperty | ( | OBPropertyID | propertyId | ) |

获取float类型的设备属性

参数

  propertyId | 属性id

返回
  float 获取的属性数据

bool ob::Device::getBoolProperty | ( | OBPropertyID | propertyId | ) |

获取bool类型的设备属性

参数

  propertyId | 属性id

返回
  bool 获取的属性数据

OBIntPropertyRange ob::Device::getIntPropertyRange | ( | OBPropertyID | propertyId | ) |

获取int类型的设备属性的范围(包括当前值和默认值)

参数

  propertyId | 属性id

返回
  OBIntPropertyRange 属性的范围

OBFloatPropertyRange ob::Device::getFloatPropertyRange | ( | OBPropertyID | propertyId | ) |

获取float类型的设备属性的范围(包括当前值和默认值)

参数

  propertyId | 属性id

返回
  OBFloatPropertyRange 属性的范围

OBBoolPropertyRange ob::Device::getBoolPropertyRange | ( | OBPropertyID | propertyId | ) |

获取bool类型的设备属性的范围(包括当前值和默认值)

参数

  propertyId | 属性id

返回
  OBBoolPropertyRange 属性的范围

void ob::Device::writeAHB | ( | uint32_t | reg,
|  | uint32_t | mask,
|  | uint32_t | value
| ) |  |

AHB写寄存器

参数

  reg | 要写入的寄存器
  mask | 要写入的掩码
  value | 要写入的值

void ob::Device::readAHB | ( | uint32_t | reg,
|  | uint32_t | mask,
|  | uint32_t * | value
| ) |  |

AHB读寄存器

参数

  reg | 要读取的寄存器
  mask | 要读取的掩码
  value | 读取的值返回

void ob::Device::writeI2C | ( | uint32_t | moduleId,
|  | uint32_t | reg,
|  | uint32_t | mask,
|  | uint32_t | value
| ) |  |

I2C写寄存器

参数

  reg | 要写入的I2C模块ID
  reg | 要写入的寄存器
  mask | 要写入的掩码
  value | 要写入的值

void ob::Device::readI2C | ( | uint32_t | moduleId,
|  | uint32_t | reg,
|  | uint32_t | mask,
|  | uint32_t * | value
| ) |  |

I2C读寄存器

参数

  reg | 要读取的I2C模块ID
  reg | 要读取的寄存器
  mask | 要读取的掩码
  value | 读取的值返回

void ob::Device::writeFlash | ( | uint32_t | offset,
|  | const void * | data,
|  | uint32_t | dataSize,
|  | SetDataCallback | callback,
|  | bool | async = `false`
| ) |  |

设置写入Flash的属性

参数

  offset | flash 偏移地址
  data | 要写入的属性数据
  dataSize | 要写入的属性大小
  callback | 写flash进度回调
  async | 是否异步执行

void ob::Device::readFlash | ( | uint32_t | offset,
|  | uint32_t | dataSize,
|  | GetDataCallback | callback,
|  | bool | async = `false`
| ) |  |

读取Flash的属性

参数

  offset | flash 偏移地址
  data | 读取的属性数据
  dataSize | 获取的属性大小
  callback | 读flash返回的数据及进度回调
  async | 是否异步执行

void ob::Device::setRawData | ( | OBPropertyID | propertyId,
|  | const void * | data,
|  | uint32_t | dataSize,
|  | SetDataCallback | callback,
|  | bool | async = `false`
| ) |  |

设置raw data类型的设备属性数据[异步回调]

参数

  propertyId | 属性id
  data | 要设置的属性数据
  dataSize | 要设置的属性数据大小
  callback | rawdata设置进度回调
  async | 是否异步执行

void ob::Device::getRawData | ( | OBPropertyID | propertyId,
|  | GetDataCallback | callback,
|  | bool | async = `false`
| ) |  |

获取raw data类型的设备属性数据[异步回调]

参数

  propertyId | 属性id
  data | 获取的属性数据
  dataSize | 获取的属性大小
  callback | 获取返回的数据及进度回调
  async | 是否异步执行

void ob::Device::setStructuredData | ( | OBPropertyID | propertyId,
|  | const void * | data,
|  | uint32_t | dataSize
| ) |  |

设置structured data类型的设备属性

参数

  propertyId | 属性id
  data | 要设置的属性数据
  dataSize | 要设置的属性大小

void ob::Device::getStructuredData | ( | OBPropertyID | propertyId,
|  | void * | data,
|  | uint32_t * | dataSize
| ) |  |

获取structured data类型的设备属性

参数

  propertyId | 属性id
  data | 获取的属性数据
  dataSize | 获取的属性大小

void ob::Device::setStructuredDataExt | ( | OBPropertyID | propertyId,
|  | std::shared_ptr< OBDataBundle > | dataBundle,
|  | SetDataCallback | callback
| ) |  |

Set the Structured Data Ext object.

参数

  propertyId | 属性id
  dataBundle | 设置的目标数据
  callback | 设置数据回调

std::shared_ptr<OBDataBundle> ob::Device::getStructuredDataExt | ( | OBPropertyID | propertyId | ) |

获取structured data类型的数据

参数

  propertyId | 属性id

返回
  std::shared_ptr<OBDataBundle> 数据集

OBProtocolVersion ob::Device::getProtocolVersion | ( |  | ) |

获取设备的控制命令协议版本

返回
  OBProtocolVersion

OBCmdVersion ob::Device::getCmdVersion | ( | OBPropertyID | propertyId | ) |

获取控制命令的版本号

参数

  propertyId | 属性id

返回
  OBCmdVersion

uint32_t ob::Device::getSupportedPropertyCount | ( |  | ) |

获取设备支持的属性的数量

返回
  uint32_t 返回支持的属性的数量

OBPropertyItem ob::Device::getSupportedProperty | ( | uint32_t | index | ) |

获取设备支持的属性

参数

  uint32_t | 属性的index

返回
  OBPropertyItem 返回支持的属性的类型

bool ob::Device::isPropertySupported | ( | OBPropertyID | propertyId,
|  | OBPermissionType | permission
| ) |  |

判断属性权限支持情况

参数

  propertyId | 属性id
  permission | 需要判读的读写权限类型

返回
  bool 返回是否支持

uint64_t ob::Device::syncDeviceTime | ( |  | ) |

同步设备时间（向设备授时，同步本地系统时间到设备）

返回
  uint64_t 命令往返时间延时（round trip time， rtt）

void ob::Device::deviceUpgrade | ( | const char * | filePath,
|  | DeviceUpgradeCallback | callback,
|  | bool | async = `true`
| ) |  |

升级设备固件

参数

  filePath | 固件的路径
  callback | 固件升级进度及状态回调
  async | 是否异步执行

void ob::Device::sendFile | ( | const char * | filePath,
|  | const char * | dstPath,
|  | SendFileCallback | callback,
|  | bool | async = `true`
| ) |  |

发送文件到设备端指定路径[异步回调]

参数

  filePath | 原文件路径
  dstPath | 设备端接受保存路径
  callback | 文件传输回调
  async | 是否异步执行

OBDeviceState ob::Device::getDeviceState | ( |  | ) |

获取当前设备状态

返回
  OBDeviceState 设备状态信息

void ob::Device::setDeviceStateChangedCallback | ( | DeviceStateChangedCallback | callback | ) |

设置设备状态改变回调函数

参数

  callback | 设备状态改变（如，由于温度过高自动降低帧率或关流等）时触发的回调函数

bool ob::Device::activateAuthorization | ( | const char * | authCode | ) |

验证设备授权码

参数

  authCode | 授权码

返回
  bool 激活是否成功

void ob::Device::writeAuthorizationCode | ( | const char * | authCodeStr | ) |

写入设备授权码

参数

  authCode | 授权码

std::shared_ptr<CameraParamList> ob::Device::getCalibrationCameraParamList | ( |  | ) |

获取设备内保存的相机标定的原始参数列表，列表内参数不与当前开流配置相对应， 需要自行根据实际情况选用参数并可能需要做缩放、镜像等处理。非专业用户建议使用Pipeline::getCameraParam()接口。

返回
  std::shared_ptr<CameraParamList> 相机参数列表

OBDepthWorkMode ob::Device::getCurrentDepthWorkMode | ( |  | ) |

查询当前的相机深度模式

返回
  返回当前的相机深度模式

OBStatus ob::Device::switchDepthWorkMode | ( | const OBDepthWorkMode & | workMode | ) |

切换相机深度模式（根据深度工作模式对象），如果知道设备支持的深度工作模式名称，那么推荐用switchDepthWorkMode(const char *modeName)

参数

  workMode | 要切换的相机深度模式

返回
  返回指令是否切换成功

OBStatus ob::Device::switchDepthWorkMode | ( | const char * | modeName | ) |

切换相机深度模式（根据深度工作模式名称）

参数

  workMode |

返回
  ob_status 设置设置结果，OB_STATUS_OK成功，其他：设置失败

std::shared_ptr<OBDepthWorkModeList> ob::Device::getDepthWorkModeList | ( |  | ) |

查询相机深度模式列表

返回
  相机深度模式列表

void ob::Device::reboot | ( |  | ) |

设备重启

注意
  设备会掉线重连，设备掉线后对Device对象接口访问可能会发生异常，请直接删除该对象， 待设备重连后可重新获取。

OBDeviceSyncConfig ob::Device::getSyncConfig | ( |  | ) |

获取当前设备同步配置

设备同步：包括单机内的不同 Sensor 的曝光同步功能 和 多机同步功能

返回
  OBDeviceSyncConfig 返回设备同步配置

void ob::Device::setSyncConfig | ( | const OBDeviceSyncConfig & | deviceSyncConfig | ) |

设置设备同步配置

用于配置 单机内的不同 Sensor 的曝光同步功能 和 多机同步功能

注意
  调用本函数会直接将配置写入设备Flash，设备重启后依然会生效。为了避免影响Flash寿命，不要频繁更新配置。

参数

  [out] | deviceSyncConfig | 设备同步配置

## 友元及相关函数文档

friend class Pipeline
| friend

在文件 Device.hpp 第 714 行定义.

friend class Recorder
| friend

在文件 Device.hpp 第 715 行定义.

该类的文档由以下文件生成:

- /root/libobsensor/include/libobsensor/hpp/Device.hpp