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