设备控制

更新时间:2023-05-22 06:38:31下载pdf

涂鸦智能设备通过设备功能(DP,Data Point)来控制设备,并且通过标准化的 DP 实现设备与 App 之间的交互。

引入模块

com.tuya.smart:tuyasmart-ipc-devicecontrol 组件已废弃,您可以参考 设备控制 自行实现,以及使用 设备管理 提供的接口自行实现设备信息的获取和管理等能力。

implementation 'com.tuya.smart:tuyasmart-ipc-devicecontrol:3.17.0r139'

获取对象

ITuyaCameraDevice 提供与设备信息通信的能力,提供了控制指令下发、获取当前设备功能的数据。

接口说明

根据设备 ID 初始化设备控制类。

ITuyaCameraDevice getCameraDeviceInstance(String devId)

示例代码

ITuyaCameraDevice tuyaCameraDevice = TuyaCameraDeviceControlSDK.getCameraDeviceInstance(devId);

查询设备支持的功能

接口说明

通过该方法可以判断设备是否支持指定的 DP。如果设备不支持某 DP,调用 数据下发数据查询 的方法会失败。入参为设备功能的 DP ID

boolean isSupportCameraDps(String dpCodeID);

示例代码

boolean isSupportDpBasicFlip = mTuyaCameraDevice.isSupportCameraDps(DpBasicFlip.ID);

Value 类型数据查询

接口说明

通过缓存获取对应设备功能的数据,根据 Value 的数据类型可以分别用以下方法查询。

int queryIntegerCurrentCameraDps(String dpCodeID);

示例代码

int dpvalue = mTuyaCameraDevice.queryIntegerCurrentCameraDps(DpSDStatus.ID);

Object 类型数据查询

接口说明

通过缓存获取对应设备功能的数据,支持 Enum、Value、Boolean、String 所有的设备功能查询。

Object queryObjectCameraDps(String dpCodeID);

示例代码

Object dpValue = mTuyaCameraDevice.queryObjectCameraDps(DpBasicFlip.ID);

如果使用 queryObjectCameraDps 进行查询,需要您对数据类型进行单独区分。

String 和 Enum 类型数据查询

接口说明

通过缓存获取对应设备功能的数据,根据 String 和 Enum 的数据类型可以分别用以下方法查询。

 String queryStringCurrentCameraDps(String dpCodeID);

示例代码

String mode = mTuyaCameraDevice.queryStringCurrentCameraDps(DpMotionSensitivity.ID);

Boolean 类型数据查询

接口说明

通过缓存获取对应设备功能的数据,根据 Boolean 的数据类型可以分别用以下方法查询。

boolean queryBooleanCameraDps(String dpCodeID);

示例代码

boolean dpValue = mTuyaCameraDevice.queryBooleanCameraDps(DpBasicFlip.ID);

数据下发

接口说明

您可以通过局域网或者云端两种方式发送控制指令,即数据下发。

void publishCameraDps(String dpCode, Object value);

示例代码

//如果设备功能的返回值是 Boolean,回调可以设置 Boolean;如果是 enum/String,回调设置 String;如果是 value,回调设置 Integer
mTuyaCameraDevice.registorTuyaCameraDeviceControlCallback(DpBasicFlip.ID, new ITuyaCameraDeviceControlCallback<Boolean>() {
  @Override
  public void onSuccess(String s, DpNotifyModel.ACTION action, DpNotifyModel.SUB_ACTION sub_action, Boolean o) {
    showPublishTxt.setText("LAN/Cloud query result: " + o);
  }

  @Override
  public void onFailure(String s, DpNotifyModel.ACTION action, DpNotifyModel.SUB_ACTION sub_action, String s1, String s2) {

  }
});
mTuyaCameraDevice.publishCameraDps(DpBasicFlip.ID, true);

数据回调

ITuyaCameraDeviceControlCallback 类提供监听设备信息数据接收,以及 App 端数据下发后,收到设备回传来的回调。

  • 如果设备功能的数据类型是 Boolean,回调设置 Boolean。
  • 如果设备功能的数据类型是 Enum,回调设置 String。
  • 如果设备功能的数据类型是 Value,回调设置 Integer。
public interface ITuyaCameraDeviceControlCallback<E> {
    //成功回调
    void onSuccess(String devId, ACTION action, SUB_ACTION subAction, E o);

    //失败回调
    void onFailure(String devId, ACTION action, SUB_ACTION subAction, String errorCode, String errorString);
}

支持的数据类型

数据类型 说明
Boolean 布尔型
String 字符型、枚举型
Value 数值型

设备功能常量

基础功能

设备功能 DP ID 数据类型 value 说明 功能定义
DpBasicIndicator.ID 101 Boolean
  • true:正常状态下开启指示灯
  • false:正常状态下关闭指示灯
状态指示灯 开启或关闭设备正常状态下的指示灯,在晚间避免光污染。配网阶段、设备故障等情况下指示灯仍需要正常显示以提示用户
DpBasicFlip.ID 103 Boolean
  • true:翻转
  • false:正常
画面翻转 开启或关闭画面垂直翻转,用于设备倒装时调整画面方向
DpBasicOSD.ID 104 Boolean
  • true:打开 OSD
  • false:关闭 OSD
时间水印 开启或关闭直播画面的时间水印
DpBasicPrivate.ID 105 Boolean
  • true:开启隐私模式
  • false:关闭隐私模式
隐私模式 开启或关闭隐私模式,休眠时设备的音视频采集不工作,即设备无法直播也无法保存录像
DpBasicNightvision.ID 108 Enum
  • 0:自动
  • 1:关
  • 2:开
红外夜视功能 调整红外夜视功能的开启、关闭、自动状态

移动侦测报警

设备功能 DP ID 数据类型 value 说明 功能定义
DpPIRSwitch.ID 152 Enum
  • 0:关闭
  • 1:低灵敏度
  • 2:中灵敏度
  • 3:高灵敏度
PIR 开关及灵敏度 调整 PIR 功能的关闭、低灵敏度、中灵敏度、高灵敏度
DpMotionSwitch.ID 134 Boolean
  • true:开启移动侦测报警
  • false:关闭移动侦测报警
移动侦测报警开关 开启或关闭移动侦测报警,开启后,设备需要在适当的条件下每次检测到移动均上报消息到服务器
DpMotionSensitivity.ID 106 Enum
  • 0:低
  • 1:中
  • 2:高
移动侦测报警灵敏度设置 设置移动侦测报警的灵敏度

声音侦测报警

设备功能 DP ID 数据类型 value 说明 功能定义
DpDecibelSwitch.ID 139 Boolean
  • true:打开声音侦测报警
  • false:关闭声音侦测报警
声音侦测报警开关 开启或关闭声音侦测报警,开启后,设备需要在适当的条件下每次检测到声音均上报消息到服务器
DpDecibelSensitivity.ID 140 Enum
  • 0:低灵敏度
  • 1:高灵敏度
声音侦测报警灵敏度设置 设置声音侦测报警的灵敏度

存储卡管理

设备功能 DP ID 数据类型 value 说明 功能定义
DpSDStatus.ID 110 Value
  • 1:正常
  • 2:异常,例如 SD 卡损坏或格式不对
  • 3:空间不足
  • 4:正在格式化
  • 5:无 SD 卡
存储卡状态 设备向云端上报当前 SD 卡的状态,包括 SD 卡正常、异常、空间不足等
DpSDStorage.ID 109 String String 存储卡容量信息查询 上报存储卡当前的容量状态,包括总容量、已使用容量、剩余容量
DpSDFormat.ID 111 Boolean Boolean 存储卡格式化 发起格式化存储卡的指令、上报当前存储卡格式化的进度等状态
DpSDFormatStatus.ID 117 Value 正数为格式化进度 0-100 当前存储卡格式化的进度等状态 正数为格式化进度,100 即格式化成功。错误码:
  • -2000:SD 卡已在格式化状态
  • -2001:SD 卡格式化异常
DpSDRecordSwitch.ID 150 Boolean
  • true:打开本地录像
  • false:关闭本地录像
本地录像开关 开启或关闭 SD 卡录像,关闭后设备不会将实时录像记录在 SD 卡
DpRecordMode.ID 151 Enum
  • 1:事件录像,即检测到移动再录像到 SD 卡
  • 2:连续录像
本地录像模式选择 在本地录像开启的状态下,选择录像的模式,支持 事件录像连续录像

云台控制

设备功能 DP ID 数据类型 value 说明 功能定义
DpPTZControl.ID 119 Enum
  • 0:上
  • 2:右
  • 4:下
  • 6:左
云台方向控制 用于控制云台开始转动以及转动的方向。
DpPTZStop.ID 116 Boolean Boolean,云台停止转动命令,无参数 控制云台停止转动 云台停止转动命令,无参数

低功耗

设备功能 DP ID 数据类型 value 说明 功能定义
DpWirelessElectricity.ID 145 Value 设备电量,上报 0-100 的整数 电池及设备状态信息 设备主动上报当前电量,电量发生变化时上报,同时设备及时通知云端当前休眠、唤醒状态
DpWirelessLowpower.ID 147 Value Value 低电量报警阈值 用户可以在 App 上设置阈值,报警规则为 dp145≤dp147 则报警
DpWirelessBatterylock.ID 153 Boolean
  • true:上锁
  • false:解锁
电池锁 控制打开、关闭电池锁
DpWirelessPowermode.ID 146 Enum
  • 0:电池供电
  • 1:插电供电
设备供电方式查看 设备主动上报当前供电状态,供电状态发生变化时上报

枚举型设备功能

字符串枚举类型设备功能的取值范围,在 IPC SDK 中有定义相应的字符串枚举常量,如下表所示。

设备功能 枚举
DpMotionSensitivity MotionSensitivityMode
DpBasicNightvision NightStatusMode
DpPIRSwitch PIRMode
DpRecordMode RecordMode
DpDecibelSensitivity SoundSensitivityMode