简体中文

Nebula接口

Kalay SDK 开发指南 | iOS APIs - Nebula 接口

Nebula接口模块介绍

Nebula接口是Kalay SDK针对iOS平台提供的核心设备交互接口集,主要用于设备绑定、Nebula协议连接、局域网设备搜索、Wi-Fi配置、区域设置等关键场景,为APP与Nebula协议设备的全生命周期交互提供标准化调用方式。

KY_nebulaStartBind

功能描述:启动 Nebula 设备绑定流程,将设备与用户账号关联起来。

接口定义

- (void)KY_nebulaStartBind:(NSString *)udid                  bindType:(BINDTYPE)bindtype                   bindKey:(NSString *)bindKey;

参数说明

参数类型说明
udidstring设备的唯一标识符(40位字符串)。
bindtypeBINDTYPE绑定类型枚举。详细定义参考:BINDTYPE 枚举
bindKeystring绑定密钥,其内容取决于 `bindtype`:
  • 对于 PinCode 绑定,`bindKey` 是设备的 PIN 码。
  • 对于 Credential 绑定,`bindKey` 是设备的凭证。
  • 对于 Local 绑定,`bindKey` 可能是设备的本地密码。

BINDTYPE 枚举

枚举值枚举常量说明
0ALREADY_BIND表示设备已被绑定。
1SERVER_BIND通过服务器进行远程绑定(例如使用 PinCode)。
2AP_BIND在设备的 AP 模式下进行局域网绑定。

回调说明

暂无额外回调,绑定结果需通过SDK全局回调或代理方法获取

返回码

暂无固定返回码,绑定结果通过SDK全局错误回调返回

代码示例

NSString *udid = @"..."; // 设备的UDID NSString *pinCode = @"123456"; // 设备的PIN码 [self.camera KY_nebulaStartBind:udid bindType:SERVER_BIND bindKey:pinCode];

KY_nebulaConnect

功能描述:通过 Nebula 协议与已绑定的设备建立连接。

接口定义

- (void)KY_nebulaConnect:(NSString *)udid              credential:(NSString *)credential                identity:(NSString *)identity             deviceToken:(NSString *)deviceToken                  realm:(NSString *)realm                isWakeup:(BOOL)isWakeup             isNebulaOnly:(BOOL)isNebulaOnly                 channel:(NSInteger)channel                password:(NSString *)password                 isDecode:(BOOL)isDecode                    isYUV:(BOOL)isYUV;

参数说明

参数类型说明
udidstring设备的唯一标识符(40位字符串)。
credentialstring设备的认证凭证,在绑定成功后获得。
identitystring用户身份标识。
deviceTokenstring设备的推送令牌,用于唤醒。
realmstring认证领域。
isWakeupBoolean是否在连接前尝试唤醒设备。
isNebulaOnlyBoolean是否仅使用 Nebula 协议进行连接。
channelint要建立的 AV 通道号,通常为 0。
passwordstring设备的访问密码或令牌。
isDecodeBoolean是否自动解码视频流并显示,默认为 `true`。
isYUVBoolean是否希望接收 YUV 格式的原始视频数据,用于自定义渲染。

回调说明

连接结果通过SDK的连接状态回调方法返回,包含连接成功/失败状态及错误信息

返回码

失败信息可通过SDK全局错误回调的错误码判断具体连接失败原因

代码示例

NSString *udid = @"..."; NSString *credential = @"..."; // 从绑定信息中获取 NSString *password = @"..."; // 设备密码 [self.camera KY_nebulaConnect:udid                  credential:credential                    identity:nil                 deviceToken:nil                      realm:nil                    isWakeup:YES                 isNebulaOnly:YES                     channel:0                    password:password                     isDecode:YES                        isYUV:NO];

KY_nebulaConnect (简化版)

功能描述:`KY_nebulaConnect` 的简化版本,减少了部分不常用的参数,便于快速集成。

接口定义

- (void)KY_nebulaConnect:(NSString *)udid              credential:(NSString *)credential             deviceToken:(NSString *)deviceToken                  realm:(NSString *)realm                 channel:(NSInteger)channel                password:(NSString *)password                 isDecode:(BOOL)isDecode                    isYUV:(BOOL)isYUV;

参数说明

此接口的参数与完整版 KY_nebulaConnect 中的同名参数含义完全相同。它省略了 `identity`, `isWakeup`, `isNebulaOnly` 这三个参数。

回调说明

与完整版 KY_nebulaConnect 回调逻辑一致

返回码

与完整版 KY_nebulaConnect 返回码逻辑一致

代码示例

NSString *udid = @"..."; NSString *credential = @"..."; NSString *password = @"..."; [self.camera KY_nebulaConnect:udid                  credential:credential                 deviceToken:nil                      realm:nil                     channel:0                    password:password                     isDecode:YES                        isYUV:NO];

KY_nebulaSendData

功能描述:通过 Nebula 通道向设备发送 JSON 格式的指令数据,并等待响应。

接口定义

- (void)KY_nebulaSendData:(NSString *)jsonData                     udid:(NSString *)udid             responseBlock:(DataBlock)responseBlock                   timeout:(NSInteger)timeout;

参数说明

参数类型说明
jsonDatastring要发送的指令数据,格式为 JSON 字符串。
udidstring目标设备的 UDID。
responseBlockDataBlock接收设备响应的回调 block。
  • `data`: 设备返回的原始数据。
  • `index`: 响应数据的索引或状态码。
timeoutint等待响应的超时时间,单位为秒。

回调说明

设备响应结果通过 `responseBlock` 返回,超时或发送失败时 `data` 为 nil,`index` 为错误码

返回码

`responseBlock` 中的 `index` 字段包含操作结果码,0 表示成功,非0为错误码

代码示例

NSString *udid = @"..."; NSDictionary *cmdDict = @{@"action": @"get_status"}; NSString *jsonString = [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:cmdDict options:0 error:nil] encoding:NSUTF8StringEncoding]; [self.camera KY_nebulaSendData:jsonString                         udid:udid                 responseBlock:^(NSData * _Nonnull data, NSInteger index) {                     if (data) {                         NSDictionary *responseDict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];                         NSLog(@"收到响应: %@", responseDict);                     } else {                         NSLog(@"请求超时或失败, index: %ld", (long)index);                     }                 } timeout:3.0];

KY_nebulaLanSearchTimeout

功能描述:在局域网内搜索 Nebula 设备。

接口定义

- (void)KY_nebulaLanSearchTimeout:(NSInteger)timeout                    responseBlock:(nonnull UDIDInfoBlock)responseBlock;

参数说明

参数类型说明
timeoutint搜索的超时时间,单位为秒。
responseBlockUDIDInfoBlock搜索结果回调 block。
  • `uuidInfo`: 指向包含搜索到设备信息的结构体指针。
  • `num`: 搜索到的设备数量。

回调说明

搜索完成后通过 `responseBlock` 返回结果,无论是否搜索到设备都会触发

返回码

无固定返回码,通过 `responseBlock` 中的 `num` 字段判断搜索结果(0表示无设备)

代码示例

[self.camera KY_nebulaLanSearchTimeout:3.0 responseBlock:^(st_UDIDInfo * _Nonnull uuidInfo, int num) {    if (num > 0) {        NSLog(@"搜索到 %d 个设备:", num);        for (int i = 0; i < num; i++) {            st_UDIDInfo info = uuidInfo[i];            NSLog(@"  设备 UDID: %s", info.udid);            // ... 可以访问 info 结构体中的其他字段,如 IP 地址等        }    } else {        NSLog(@"未在局域网内搜索到任何设备。");    } }];

KY_nebulaSsidListReq

功能描述:向处于 AP 模式的设备发送请求,获取其周围可用的 Wi-Fi 网络列表(SSID 列表)。

接口定义

- (void)KY_nebulaSsidListReq:(int)max_ap_count                responseBlock:(ArrayBlock)responseBlock;

参数说明

参数类型说明
max_ap_countint请求设备返回的最大 AP 数量。
responseBlockArrayBlock接收 SSID 列表的回调 block,`arr` 是一个包含多个 SSID 字符串的 `NSArray`。

回调说明

Wi-Fi列表获取结果通过 `responseBlock` 返回,空数组表示获取失败

返回码

无固定返回码,通过 `responseBlock` 中的数组长度判断结果

代码示例

[self.camera KY_nebulaSsidListReq:10 responseBlock:^(NSArray * _Nonnull arr) {    if (arr.count > 0) {        NSLog(@"可用的 Wi-Fi 列表:");        for (NSString *ssid in arr) {            NSLog(@"  - %@", ssid);        }    } else {        NSLog(@"未能获取到 Wi-Fi 列表。");    } }];

KY_nebulaSetWifiReq

功能描述:配置处于 AP 模式的设备,使其连接到指定的 Wi-Fi 网络。

接口定义

- (void)KY_nebulaSetWifiReq:(NSString *)ssid                   password:(NSString *)password                    enctype:(int)enctype               responseBlock:(DictionaryBlock)responseBlock;

参数说明

参数类型说明
ssidstring目标 Wi-Fi 网络的名称。
passwordstring目标 Wi-Fi 网络的密码。
enctypeintWi-Fi 加密类型。
  • `0`: 无加密
  • `1`: WEP
  • `2`: WPA
  • `3`: WPA2
  • `4`: WPA/WPA2
responseBlockDictionaryBlock配置结果回调 block,`dic` 中包含配置是否成功的信息。

回调说明

Wi-Fi配置结果通过 `responseBlock` 返回,字典中包含结果状态标识

返回码

配置结果通过 `responseBlock` 字典中的 `result` 字段判断,0 表示成功,非0为错误码

代码示例

NSString *wifiSSID = @"MyHomeWiFi"; NSString *wifiPassword = @"MySecurePassword123"; [self.camera KY_nebulaSetWifiReq:wifiSSID                       password:wifiPassword                        enctype:4 // WPA/WPA2                   responseBlock:^(NSDictionary * _Nonnull dic) {                       NSLog(@"设置 Wi-Fi 结果: %@", dic);                       // 通常可以通过检查字典中的某个键(如 @"result")来判断是否成功                   }];

KY_nebulaSetRegionReq

功能描述:设置设备的区域信息。

接口定义

- (void)KY_nebulaSetRegionReq:(int)region                responseBlock:(DictionaryBlock)responseBlock;

参数说明

参数类型说明
regionint区域代码。具体的区域代码映射需要参考 SDK 内部定义或相关文档。
responseBlockDictionaryBlock设置结果回调 block。

回调说明

区域设置结果通过 `responseBlock` 返回,字典中包含设置是否成功的信息

返回码

设置结果通过 `responseBlock` 字典中的状态码字段判断,0 表示成功

代码示例

int targetRegion = 86; // 例如,中国的区域代码为 86 [self.camera KY_nebulaSetRegionReq:targetRegion responseBlock:^(NSDictionary * _Nonnull dic) {    NSLog(@"设置区域结果: %@", dic); }];

即刻开启您的物联网之旅

联系解决方案专家
Kalay App
资讯安全白皮书
全球专利布局
解决方案
新闻动态
公司动态
行业资讯
媒体报道
永续发展
经营者的话
社会参与
环境永续
公司治理

+86 755 27702549

7×24小时服务热线

法律声明 隐私权条款

关注“TUTK”

TUTK服务尽在掌握

© 2022 物联智慧科技(深圳)有限公司版权所有粤ICP备14023641号
在线咨询
扫一扫

TUTK服务尽在掌握

全国免费服务热线
+86 755 27702549

返回顶部