更新时间:2024-06-25 10:10:09下载pdf
ShortcutParser 是涂鸦 Smart App SDK 的功能拓展包。提供了对设备数据模型(DeviceBean
)和群组数据模型(GroupBean
)快捷功能相关能力的解析功能。使业务层对设备或群组快捷功能的相关研发更加便捷。
在涂鸦的 IoT 体系中,设备侧的功能点使用 DP 来描述。设备的状态和控制,可以通过对 DP 数据在客户端进行解析、渲染和操作。通常设备的 DP 由设备面板部分来实现设备的所有功能,这部分一般是通过 RN 面板来实现的。
所谓快捷功能,即涂鸦提供了一种标记能力,可以把若干 DP 描述为可以在除设备面板之外的部分去展示、控制。一般情况下,会标记用户最感兴趣的设备功能 DP,用在 App 的设备列表页面,免去用户进入控制面板的步骤,更快捷地获取设备的状态或者控制设备。
本工具包依赖于 TuyaHomeKitSDK 3.11.0 以上版本。请在模块 build.gradle
文件下添加依赖:
implementation 'com.tuya.smart:tuyasmart-shortcutparser:0.0.1'
在根目录的 build.gradle
文件下 repositories
内添加 maven 源:
maven {
url "https://maven-other.tuya.com/repository/maven-releases/"
}
本工具包核心是提供对设备或群组的快捷 DP 信息的解析能力,各接口定义说明如下:
类 | 说明 |
---|---|
IShortcutParserManager | 入口工具接口 |
IClientParser | 设备解析工具接口 |
IDpControl | 快捷控制基础接口 |
IBoolDpControl | 布尔型快捷控制接口 |
IEnumDpControl | 枚举型快捷控制接口 |
INumDpControl | 数值型快捷控制接口 |
IDpStatus | 快捷状态接口 |
各 API 关系如下:
接口说明
public interface IShortcutParserManager {
/**
* 获取设备解析信息
*
* @param deviceBean
* @return
*/
IClientParser getDeviceParseData(DeviceBean deviceBean);
/**
* 获取群组解析信息
*
* @param groupBean
* @return
*/
IClientParser getGroupParseData(GroupBean groupBean, ProductBean productBean);
}
示例代码
//工具初始化
IShortcutParserManager mIShortcutParserManager = new ShortcutParserManager();
根据设备的功能特点,一般指可读写的 DP 功能。在涂鸦开发者平台可以进行配置,详情请参考 设置快捷开关。
配置成功后,从 SDK 拉取到的 DeviceBean
或 GroupBean
数据中就会携带对应的快捷控制 DP 信息。随后,您才可以使用本拓展包,进行快捷控制相关的功能研发。
快捷控制类的 DP 可以分为设备的开关 DP 和普通快捷 DP 两种。
快捷开关即设备的开关 DP。一般标记为设备的快捷开关的 DP 对应的设备功能是该设备的电源开关。
在通过入口工具类获取的设备解析接口 IClientParserBean
中,有三部分跟快捷开关有关:
快捷开关状态
enum SHORTCUT_SWITCH_STATUS{
//未配置快捷开关
SWITCH_NONE(0),
//快捷开关打开状态
SWITCH_ON(1),
//快捷开关关闭状态
SWITCH_OFF(2);
private int status;
SHORTCUT_SWITCH_STATUS(int status) {
this.status = status;
}
public int getStatus() {
return status;
}
}
获取快捷开关状态
接口说明
/**
* 获取快捷开关的状态
* @return 状态枚举
*/
SHORTCUT_SWITCH_STATUS getSwitchStatus();
示例代码
IClientParser mClientParser = mShortcutParserManager.updateDeviceParseData(mDev);
Log.d(TAG,mClientParser.getSwitchStatus());
获取快捷开关的操作
/**
* 获取快捷开关的DP解析数据
* @return 解析接口
*/
IBoolDpControl getSwitchDpParseBean();
您可以通过设备解析工具接口获取快捷 DP 列表。
/**
* 获取快捷控制的DP解析列表
* @return
*/
List<IDpControl> getDpShortcutControlList();
其中,可能获取到的 DP 目前支持有枚举、数值、布尔三种。各自接口提供对应的可解析出的数据,具体信息可以参考接口类注释。
一般情况下,设备进行控制后,dps
信息会发生改变。此时,您可以通过设备解析工具调用数据更新接口,用于获取最新的状态。
接口说明
/**
* 设备或群组的状态更新 数据跟进解析
* @param dps 设备/群组的 dps 值
* @param dpName 设备/群组的 DP name 值
*/
void update(Map<String, Object> dps, Map<String, String> dpName);
示例代码
//从 SDK 中获取最新的数据缓存
mDev = TuyaHomeSdk.getDataInstance().getDeviceBean(devId);
//更新 dp s和 dpName 信息
mClientParserBean.update(mDev.getDps(),mDev.getDpName());
带有快捷状态标记的 DP,一般是用于类似传感器类型的设备,标记一些只读的设备状态信息。对于产品配置,目前这部分功能还没有开放到开发者平台,您可以 提交工单 联系涂鸦进行配置。
设备解析工具提供了获取当前设备或群组快捷状态列表的接口。
接口说明
/**
* 获取快捷状态 DP 解析列表
* @return
*/
List<IDpStatus> getDpShortcutStatusList();
具体快捷状态提供的数据解析能力,请参考接口类注释。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈