多控关联 UI 业务包

更新时间:2023-07-13 07:14:38下载pdf

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

功能说明

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

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

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

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

接入组件

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

source 'https://github.com/tuya/tuya-private-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")