更新时间:2023-05-25 06:23:53
涂鸦智能设备通过设备功能(DP,Data Point)来控制设备,并且通过标准化的 DP 实现设备与 App 之间的交互。
智能生活 App SDK 以 DP Code 为唯一标识,而设备以 DP ID 为唯一标识。所以,请在涂鸦 IoT 开发平台上创建自定义 DP 时,确保 DP ID 和 DP Code 的唯一性。创建 DP 的步骤,请参考 产品功能。
IThingIPCDpHelper
提供与设备信息通信的能力,提供了下发控制指令、查询当前功能点数据的能力。
接口说明
根据设备 ID 初始化设备控制类。
IThingIPCDpHelper createIPCDpHelper(@NonNull String devId)
示例代码
IThingIPCDpHelper ipcDpHelper = ThingIPCSdk.createIPCDpHelper(devId);
接口说明
该方法可以查询到 DP ID 对应的 DP Code。
String getDPCodeById(String dpId);
示例代码
String dpCode = dpHelper.getDPCodeById(dpId);
接口说明
该方法可以查询到 DP Code 对应的 DP ID。
String getDPIdByCode(String dpCode);
示例代码
String dpId = dpHelper.getDPCodeById(dpCode);
接口说明
通过缓存查询对应设备功能的数据,传入 DP Code 和 指定的 DP 数据类型返回查询结果。
<T> T getCurrentValue(String dpCode, @NonNull Class<T> tClass);
示例代码
String currentValue = ipcDpHelper.getCurrentValue(dpCode, String.class);
接口说明
通过发送指令给设备查询对应功能的数据,传入 DP Code,指定的 DP 数据类型及返回的 IQueryDpsCallback
。
<T> void queryDpValueFromRemote(String dpCode, IQueryDpsCallback<T> callback, Class<T> tClass);
示例代码
ipcDpHelper.queryValueByDPCodeRemote(dpCode, new IQueryDpsCallback<Object>() {
@Override
public void onQueryDpsSuccess(String dpCode, Object value) {
// 查询到设备实时返回值
}
@Override
public void onQueryDpsFail(String dpCode, String errorCode, String errorMsg) {
L.i(TAG, "onQueryDpsFail ");
}
}, Object.class);
接口说明
通过该方法可以判断设备是否支持指定的 DP。如果设备不支持某 DP,调用 数据下发 和 数据查询 的方法会失败。入参为设备功能的 DP Code。
boolean querySupportByDPCode(String dpCode);
示例代码
boolean support = dpHelper.querySupportByDPCode(WAKEUP_CODE);
接口说明
您可以通过局域网或者云端两种方式发送控制指令,即数据下发。
void publishDps(String dpCode, Object value, IResultCallback callback);
示例代码
IResultCallback iResultCallback = new IResultCallback() {
@Override
public void onError(String code, String error) {
}
@Override
public void onSuccess() {
}
};
dpHelper.publishDps(dpCode, true, iResultCallback);
接口说明
您可以通过该接口来注册监听设备状态的上报信息,数据下发 或 查询 DP 若不设置回调可通过此监听来查询设备的上报信息。
void addDevListener(OnDeviceChangedListener listener);
示例代码
OnDeviceChangedListener onDeviceChangedListener = new OnDeviceChangedListener() {
@Override
public void onDeviceDpUpdate(String dpCode) {
// 设备信息 DP 更新
}
@Override
public void onDeviceRemoved() {
// 设备移除
}
@Override
public void onDeviceStatusChanged(boolean online) {
// 设备状态是否在线变更
}
@Override
public void onDeviceNetworkStatusChanged(boolean status) {
// 设备网络状态变更
}
@Override
public void onDeviceInfoUpdate() {
// 设备信息变更
}
};
mDPHelper.addDevListener(onDeviceChangedListener);
接口说明
如果您注册了上述监听,退出时请进行反注册。否则有内存泄漏的风险。
void removeDevListener(OnDeviceChangedListener listener);
示例代码
mDPHelper.removeDevListener(onDeviceChangedListener);
接口说明
您需要在对象使用完成,通常是退出时销毁资源。否则有内存泄漏风险。
void onDestroy();
您可以在 涂鸦 IoT 开发平台 上,查看摄像机类产品的标准 DP 功能定义。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈