更新时间:2024-11-18 11:32:38
多控关联 UI 业务包的业务功能包括涂鸦多控关联模块的 关联多控设备 的业务逻辑及 UI 界面。
设备多控关联是指设备的某个 DP 与另一个设备的某个 DP 之间建立关联,生成一个多控组。当控制多控组内某个建立 DP 关联的设备,组内其他设备关联的 DP 状态同步。
例如,三个二路 Zigbee 子设备开关,每个开关的第一个 DP 与另外两个开关的第一个 DP 建立多控组,当控制其中一个开关的第一个 DP 状态为关闭状态,另外两个开关的第一个 DP 同步关闭。
目前支持多控关联的设备有:
在工程的 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 'TuyaSmartDeviceSyncBizBundle'
end
调用业务包前,您需要先查询对应的执行设备 ID。
多控关联业务包实现 TYDeviceSyncProtocol.h
协议以提供对外服务。您可以在 TYModuleServices
组件中查看 TYDeviceSyncProtocol.h
,协议文件内容为:
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@protocol TYDeviceSyncProtocol <NSObject>
typedef NS_ENUM(NSInteger, TYDeviceSyncControlState) {
TYDeviceSyncControlStateNone = 0, // 设备Bean不存在
TYDeviceSyncControlStateSupport, // 支持多控关联
TYDeviceSyncControlStateNotSupport, // 不支持多控关联
};
/**
跳转到多控关联设备关联页面
@param devId 主设备的设备ID
@result TYDeviceSyncControlState 主设备的多控关联状态
*/
- (TYDeviceSyncControlState)gotoMultiControl:(NSString *)devId;
/**
判断当前主设备是否支持多控关联
@param devId 主设备的设备ID
@result BOOL 主设备是否支持多控关联
*/
- (BOOL)isSupportMultiControl:(NSString *)devId;
@end
NS_ASSUME_NONNULL_END
Objective-C 示例
#import <TuyaSmartBizCore/TuyaSmartBizCore.h>
#import <TYModuleServices/TYDeviceSyncProtocol.h>
// 实现对应的协议方法
- (void)isSupportMultiControl {
NSString *deviceId = @"deviceId";
id<TYDeviceSyncProtocol> impl = [[TuyaSmartBizCore sharedInstance] serviceOfProtocol:@protocol(TYDeviceSyncProtocol)];
BOOL isSupport = [impl isSupportMultiControl:deviceId];
}
Swift 示例
let impl = TuyaSmartBizCore.sharedInstance().service(of:TYDeviceSyncProtocol.self) as?TYDeviceSyncProtocol
impl?.isSupportMultiControl(devId: @"deviceId")
Objective-C 示例
#import <TuyaSmartBizCore/TuyaSmartBizCore.h>
#import <TYModuleServices/TYDeviceSyncProtocol.h>
// 实现对应的协议方法
- (void)gotoMultiControl {
NSString *deviceId = @"deviceId";
id<TYDeviceSyncProtocol> impl = [[TuyaSmartBizCore sharedInstance] serviceOfProtocol:@protocol(TYDeviceSyncProtocol)];
TYDeviceSyncControlState state = [impl gotoMultiControl:deviceId];
}
Swift 示例
let impl = TuyaSmartBizCore.sharedInstance().service(of:TYDeviceSyncProtocol.self) as?TYDeviceSyncProtocol
impl?.gotoMultiControl(devId: @"deviceId")
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈