简体中文

Nebula接口

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

iOS APIs - 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 模式下进行局域网绑定。

代码示例

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 格式的原始视频数据,用于自定义渲染。

代码示例

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` 这三个参数。

代码示例

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等待响应的超时时间,单位为秒。

代码示例

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`: 搜索到的设备数量。

代码示例

[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`。

代码示例

[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` 中包含配置是否成功的信息。

代码示例

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。

代码示例

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

返回顶部