SDK相同Did设备多次添加修改

1. 概述

由于要支持设备分享功能,即相同did的设备都能够添加到SDK中,所以需要对SDK进行调整。

SDK 原有方案: 设备添加到SDK之后,以设备的 did 作为主 key 存储在SDK中

SDK 修改方案: 设备信息 BLDNADevice 中,增加字段 String ownerId, SDK 不关心 ownerId 具体含义,由 APP 自行拼接传入,SDK 拿到之后,则使用 did + pdid + ownerId 作为主 key 存储在SDK中。 增加只读字段 String deviceId , 即为存储在SDK中的主的 key

兼容性要求: 如果 APP 传入的设备信息中 ownerId 为 null 或者为空字符串,则按照原有SDK方案进行存储, 即:deviceId = did

2. 接口修改

SDK 原有接口只需要传入 did 的设备,都需要变更为传入 deviceId 。初步统计如下:

2.1 设备添加

- (void)addDeviceArray:(NSArray<BLDNADevice *> *_Nonnull)deviceArray;

- (void)addDevice:(BLDNADevice *_Nonnull)device;

设备添加方案如概述所说,如果新添加的设备主 key 相同,则覆盖SDK缓存信息,

2.2 设备删除

- (void)removeDeviceArray:(NSArray<BLDNADevice *> *_Nonnull)deviceArray;

- (void)removeDevice:(BLDNADevice *_Nonnull)device;

删除主 key 相同的设备。

2.3 已添加设备列表获取 — 新增

- (NSArray<BLDNADevice *> *_Nonnull)queryDeviceAddedList;

返回已经添加的所有设备的详细信息列表,如果未添加过,返回空数组。

2.4 设备是否存在,单个设备信息获取,设备局域网IP地址

- (BLDNADevice *_Nullable)getDevice:(NSString *_Nonnull)did;

- (NSString *_Nonnull)queryDeviceIp:(NSString *_Nonnull)did;

修改为:

- (BLDNADevice *_Nullable)getDevice:(NSString *_Nonnull)deviceId;

- (NSString *_Nonnull)queryDeviceIp:(NSString *_Nonnull)deviceId;

2.5 设备在线离线状态查询

- (BLDeviceStatusEnum)queryDeviceState:(NSString *_Nonnull)did;

- (BLDeviceStatusEnum)queryDeviceRemoteState:(NSString *_Nonnull)did;

修改为:

- (BLDeviceStatusEnum)queryDeviceState:(BLDNADevice *_Nonnull)deviceId;

- (BLDeviceStatusEnum)queryDeviceRemoteState:(BLDNADevice *_Nonnull)deviceId;

2.6 设备Pair接口

- (BLPairResult *_Nonnull)pair:(NSString *_Nonnull)did;

修改为:

- (BLPairResult *_Nonnull)pairWithDevice:(BLDNADevice *_Nonnull)device;

2.7 根据 did 查询 Profie 接口

- (BLProfileStringResult *_Nonnull)queryProfile:(NSString *_Nonnull)did;

- (BLProfileStringResult *_Nonnull)queryProfile:(NSString *_Nonnull)did
                                  profilePath:(NSString *_Nullable)profilePath;

修改为:

- (BLProfileStringResult *_Nonnull)queryProfileByPid:(NSString *_Nonnull)pid;

- (BLProfileStringResult *_Nonnull)queryProfileByPid:(NSString *_Nonnull)pid
                                         profilePath:(NSString *_Nullable)profilePath;

2.8 设备信息修改

- (BLUpdateDeviceResult *_Nonnull)updateDeviceInfo:(NSString *_Nonnull)did
                                            name:(NSString *_Nonnull)name
                                            lock:(Boolean)locked;

修改为:

- (BLUpdateDeviceResult *_Nonnull)updateDeviceInfo:(NSString *_Nonnull)deviceId
                                            name:(NSString *_Nonnull)name
                                            lock:(Boolean)locked;

2.9 设备固件版本查询,升级

- (BLFirmwareVersionResult *_Nonnull)queryFirmwareVersion:(NSString *_Nonnull)did;

- (BLFirmwareVersionResult *_Nonnull)querySubDeviceFirmwareVersion:(NSString *_Nonnull)did sdid:(NSString *_Nonnull)sdid;

- (BLBaseResult *_Nonnull)upgradeFirmware:(NSString *_Nonnull)did
                                    url:(NSString *_Nonnull)url;

修改为:

- (BLFirmwareVersionResult *_Nonnull)queryFirmwareVersion:(NSString *_Nonnull)deviceId;

- (BLFirmwareVersionResult *_Nonnull)querySubDeviceFirmwareVersion:(NSString *_Nonnull)deviceId sdid:(NSString *_Nonnull)subDeviceId;

- (BLBaseResult *_Nonnull)upgradeFirmware:(NSString *_Nonnull)deviceId
                                    url:(NSString *_Nonnull)url;

2.10 设备时间查询

- (BLDeviceTimeResult *_Nonnull)queryDeviceTime:(NSString *_Nonnull)did;

修改为:

- (BLDeviceTimeResult *_Nonnull)queryDeviceTime:(NSString *_Nonnull)deviceId;

2.10 设备连接服务器信息查询

- (BLQueryDeviceConnectServerResult *_Nonnull)queryDeviceConnectServerInfo:(NSString *_Nonnull)did;

修改为:

- (BLQueryDeviceConnectServerResult *_Nonnull)queryDeviceConnectServerInfo:(NSString *_Nonnull)deviceId;

2.11 设备定时接口

相关接口中所有 did 改为网关设备的 deviceId, 所有 sdid 改为子设备的 subDeviceId

2.12 网关接口

相关接口中所有 did 改为网关设备的 deviceId, 所有 sdid 改为子设备的 subDeviceId

2.13 设备定时接口

相关接口中所有 did 改为网关设备的 deviceId, 所有 sdid 改为子设备的 subDeviceId

2.14 设备控制接口

相关接口中所有 did 改为网关设备的 deviceId, 所有 sdid 改为子设备的 subDeviceId