更新时间:2024-06-17 09:30:47下载pdf
通过家庭查询到设备列表后,可以根据设备模型,判断是否具有 IPC 业务能力。如果具有 IPC 业务能力,则可以根据 ThingSmartDeviceModel
中的信息来创建摄像机对象。
接口说明
通过 ThingSmartDeviceModel+IPCSDK
分类中的接口,可以判断设备是否具有 IPC 业务能力。
不可用作设备品类判断。对于一些融合品类,除了自身功能外还附带 IPC 高级能力,例如可视门锁和宠物喂食器等。
- (BOOL)isIPCDevice;
示例代码
Objective-C:
[[ThingSmartHomeManager new] getHomeListWithSuccess:^(NSArray<ThingSmartHomeModel *> *homes) {
[homes enumerateObjectsUsingBlock:^(ThingSmartHomeModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
ThingSmartHome *home = [ThingSmartHome homeWithHomeId:obj.homeId];
[home getHomeDetailWithSuccess:^(ThingSmartHomeModel *homeModel) {
[home.deviceList enumerateObjectsUsingBlock:^(ThingSmartDeviceModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isIPCDevice]) {
NSLog(@"%@ 是一个智能摄像机设备", obj.name);
}
}];
} failure:^(NSError *error) {
}];
}];
} failure:^(NSError *error) {
}];
Swift:
let homeManager = ThingSmartHomeManager()
homeManager.getHomeList(success: { homeList in
homeList?.forEach({ homeModel in
let home = ThingSmartHome(homeId: homeModel.homeId)
home?.getDetailWithSuccess({ _ in
home?.deviceList.forEach({ deviceModel in
if deviceModel.isIPCDevice() {
print(deviceModel.name!, "是一个智能摄像机设备")
}
})
}, failure: { error in
})
})
}) { error in
}
示例代码只是展示具有 IPC 高级能力设备的最简单流程,实际开发中,您需要根据 UI 交互的逻辑来展示和管理设备。
IPC SDK 根据 P2P 类型,来初始化不同摄像机具体实现的对象,通过 ThingSmartDeviceModel+IPCSDK
中的 - (NSInteger)p2pType
查询设备的 P2P 类型。
接口说明
查询 P2P 类型。
- (NSInteger)p2pType;
返回值
类型 | 说明 |
---|---|
NSInteger | P2P 类型 |
类(协议)说明
类名(协议名) | 说明 |
---|---|
ThingSmartCameraFactory | 创建摄像机配置和摄像机对象的工具类 |
ThingSmartCameraConfig | 摄像机配置类,您无需关心它的属性 |
ThingSmartCameraType | 摄像机接口协议,根据摄像机固件类型不同,有不同的具体实现 |
ThingSmartCameraDelegate | 摄像机代理,摄像机功能方法的结果反馈都将通过代理方法回调 |
ThingSmartCameraFactory
提供创建摄像机控制对象的工厂方法。
接口说明
创建摄像机实例对象。
+ (id<ThingSmartCameraType>)cameraWithP2PType:(id)type deviceId:(NSString *)devId delegate:(id<ThingSmartCameraDelegate>)delegate;
参数说明
参数 | 说明 |
---|---|
type | P2P 类型,参数使用 Number 类型 |
devId | 设备 ID |
delegate | 代理对象 |
返回值
类型 | 说明 |
---|---|
id | 摄像机接口的具体实现对象 |
示例代码
Objective-C:
// deviceModel 为设备列表中的摄像机设备的数据模型
NSInteger p2pType = [deviceModel p2pType];
id<ThingSmartCameraType> camera = [ThingSmartCameraFactory cameraWithP2PType:@(p2pType) deviceId:deviceModel.devId delegate:self];
Swift:
let p2pType: NSNumber = NSNumber(value: deviceModel.p2pType())
let camera = ThingSmartCameraFactory.camera(withP2PType: p2pType, deviceId: deviceModel.devId, delegate: self)
示例代码中,delegate
参数传入的 self
需要实现 ThingSmartCameraDelegate
协议。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈