多控关联 UI 业务包

更新时间:2023-07-11 07:49:49LLM 副本以 Markdown 格式查看下载 PDF

多控关联 UI 业务包的业务功能包括涂鸦多控关联模块的 关联多控设备 的业务逻辑及 UI 界面。

功能说明

设备多控关联是指设备的某个 DP 与另一个设备的某个 DP 之间建立关联,生成一个多控组。当控制多控组内某个建立 DP 关联的设备,组内其他设备关联的 DP 状态同步。

例如,三个二路 Zigbee 子设备开关,每个开关的第一个 DP 与另外两个开关的第一个 DP 建立多控组,当控制其中一个开关的第一个 DP 状态为关闭状态,另外两个开关的第一个 DP 同步关闭。

目前支持多控关联的设备有:

  • Zigbee 子设备的开关
  • Wi-Fi 设备的开关

接入组件

在工程的 Podfile 文件中添加多控关联业务包组件,并执行 pod update 命令:

source 'https://github.com/tuya/tuya-pod-specs.git'
source 'https://cdn.cocoapods.org/'
platform :ios, '11.0'

target 'your_target_name' do
  # 添加多控关联业务包
  pod 'ThingSmartDeviceSyncBizBundle'
end

服务协议

调用业务包前,您需要先查询对应的执行设备 ID。

多控关联业务包实现 ThingDeviceSyncProtocol.h 协议以提供对外服务。您可以在 ThingModuleServices 组件中查看 ThingDeviceSyncProtocol.h,协议文件内容为:

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@protocol ThingDeviceSyncProtocol <NSObject>

/**
 跳转到多控关联设备中心
 @param devId 设备的 devId
 */
- (void)gotoDeviceBindViewControllerWithDevId:(NSString *)devId;

/**
 判断当前主设备是否支持多控关联
 @param devId 主设备的设备ID
 @result BOOL 主设备是否支持多控关联
 */
- (BOOL)isSupportMultiControl:(NSString *)devId;

@end

NS_ASSUME_NONNULL_END

判断设备是否支持多控关联

Objective-C 示例

#import <ThingSmartBizCore/ThingSmartBizCore.h>
#import <ThingModuleServices/ThingDeviceSyncProtocol.h>

// 实现对应的协议方法
- (void)isSupportMultiControl {
  NSString *deviceId = @"deviceId";

  id<ThingDeviceSyncProtocol> impl = [[ThingSmartBizCore sharedInstance] serviceOfProtocol:@protocol(ThingDeviceSyncProtocol)];
  BOOL isSupport = [impl isSupportMultiControl:deviceId];
}

Swift 示例

let impl = ThingSmartBizCore.sharedInstance().service(of:ThingDeviceSyncProtocol.self) as?ThingDeviceSyncProtocol
impl?.isSupportMultiControl(devId: @"deviceId")

进入多控关联页面

Objective-C 示例

#import <ThingSmartBizCore/ThingSmartBizCore.h>
#import <ThingModuleServices/ThingDeviceSyncProtocol.h>

// 实现对应的协议方法
- (void)gotoMultiControl {
  NSString *deviceId = @"deviceId";

  id<ThingDeviceSyncProtocol> impl = [[ThingSmartBizCore sharedInstance] serviceOfProtocol:@protocol(ThingDeviceSyncProtocol)];
  [impl gotoDeviceBindViewControllerWithDevId:deviceId];
}

Swift 示例

let impl = ThingSmartBizCore.sharedInstance().service(of:ThingDeviceSyncProtocol.self) as?ThingDeviceSyncProtocol
impl?.gotoDeviceBindViewControllerWithDevId(devId: @"deviceId")