简体中文

初始化接口

iOS APIs - 初始化接口 | Kalay SDK 开发指南

初始化模块介绍

初始化接口是Kalay SDK针对iOS平台提供的基础能力接口集,主要用于SDK的初始化与反初始化、分区分流配置、局域网设备搜索、版本信息获取及日志管理等核心基础场景,为后续P2P连接等业务功能提供必要的环境准备。

KY_InitIOTC

功能描述:用于P2P SDK和Kalay SDK的 IOTC初始化,完成SDK运行所需的基础环境配置和授权验证。

接口定义

+ (void)KY_InitIOTCWithLicenseKey:(NSString * _Nonnull)licenseKey                     privateKey:(NSString * _Nonnull)privateKey                        success:(DictionaryBlock)success                        failure:(void (^ _Nonnull)(NSError * _Nullable))failure;

参数说明

参数类型说明
privateKeyNSString *初始化Kalay SDK所需的授权码(什么是授权码?
licenseKeyNSString *初始化P2P SDK所需的授权码(什么是授权码?

回调说明

回调类型说明
successDictionaryBlock初始化成功的回调,返回一个包含相关信息的字典。
failurevoid (^)(NSError *)初始化失败的回调。NSError中的code返回码,详细定义参考:返回码

返回码

返回码说明
10001privateKey 永久有效
10002privateKey 在有效期内
-10000privateKey 无效
-10003privateKey 已过期
-1004sdk licenseKey 无效
-1005sdk licenseKey 无效
-3sdk licenseKey 重复初始化
-20031sdk licenseKey 重复初始化
-40032sdk licenseKey 重复初始化

代码示例

[Camera KY_InitIOTCWithLicenseKey:LICENSEKEY                     privateKey:PRIVATEKEY                        success:^(NSDictionary * _Nonnull dic) {                            NSLog(@"KY_InitIOTC:success ip: %@ msg: %@", [dic objectForKey:@"ip"], [dic objectForKey:@"msg"]);                        }                        failure:^(NSError *error) {                            if (error.code == KYPrivateKeyErrorNoValid) {                                NSLog(@"KY_InitIOTC:false(KYPrivateKeyErrorNoValid) ip: %@ msg: %@ ", [error.userInfo objectForKey:@"ip"], error.userInfo.description);                            }                            else if (error.code == KYPrivateKeyErrorExpire) {                                NSLog(@"KY_InitIOTC:false(KYPrivateKeyErrorExpire) ip: %@ msg: %@ ",[error.userInfo objectForKey:@"ip"], error.userInfo.description);                            }                            else {                                NSLog(@"KY_InitIOTC:false() ip: %@ msg: %@ ", [error.userInfo objectForKey:@"ip"], error.userInfo.description);                            }                        }];

KY_UninitIOTC

功能描述:用于P2P SDK和Kalay SDK的 IOTC反初始化,释放SDK占用的资源并清理运行环境。

接口定义

+ (void)KY_UninitIOTC;

参数说明

参数类型说明
-该接口无需传入参数

回调说明

该接口无回调函数,调用后直接完成反初始化操作。

返回码

该接口无返回值,操作结果可通过后续SDK调用状态判断。

代码示例

[KYCamera KY_UninitIOTC];

KY_SetMasterRegion

功能描述:设置分区分流方案的地区,指定P2P服务挂载的区域,优化设备连接的网络路径。

接口定义

+ (enum KYError)KY_SetMasterRegion:(TUTKRegion)region;

参数说明

参数类型说明
regionTUTKRegionP2P服务挂载的区域。详细区域设定参考:REGION_ENUM
REGION_ENUM:
ENUM说明
REGION_ALL所有区域
REGION_CN中国大陆地区
REGION_EU欧洲地区
REGION_US美洲地区
REGION_ASIA亚洲地区
REGION_COUNT枚举值数量,无实际意义

回调说明

该接口无回调函数,通过返回值直接返回设置操作的结果状态码。

返回码

返回码说明
0设置成功
-3IOTC模块 重复初始化
-46该区域无效

代码示例

// 设置区域为中国大陆 enum KYError error = [KYCamera KY_SetMasterRegion:REGION_CN]; if (error == 0) {    NSLog(@"区域设置成功"); } else {    NSLog(@"区域设置失败,错误码:%d", error); }

KY_LanSearch

功能描述:搜索本地局域网内的Kalay/P2P设备,获取设备的UID、IP、端口等基础信息。

接口定义

+ (void)KY_LanSearch:(NSInteger)timeout               block:(void (^ _Nonnull)(NSInteger, NSData * _Nullable))block;
设备信息结构体:
struct st_LanSearchInfo {    char UID[21]; //!< The UID of discovered device    char IP[16]; //!< The IP address of discovered device    uint16_t port; //!< The port number of discovered device used for IOTC session connection    char Reserved; //!< Reserved, no use };

参数说明

参数类型说明
timeoutNSInteger超时时间,单位:ms
blockvoid (^)(NSInteger, NSData *)1. 搜索到的设备数量;
                               2. 包含搜索到的设备信息结构体数组的 NSData 对象,需自行解析。详细参考 st_LanSearchInfo
st_LanSearchInfo 结构体说明:
字段类型说明
UIDchar[21]发现设备的 UID
IPchar[16]发现设备的 IP 地址
portuint16_t设备用于 IOTC 会话连接的端口号
Reservedchar保留位,无实际用途

回调说明

搜索结果通过 block 参数异步返回,包含设备数量和设备信息数据,需自行解析结构体获取具体设备信息。

返回码

该接口无直接返回值,搜索结果通过block回调中的设备数量参数判断(数量>0表示搜索到设备,数量=0表示未搜索到设备)。

代码示例

[KYCamera KY_LanSearch:5000 block:^(NSInteger count, NSData * _Nullable data) {    if (count > 0 && data) {        NSLog(@"Found %ld devices.", (long)count);        // 解析 data 中的 st_LanSearchInfo 结构体数组        const struct st_LanSearchInfo *devices = (const struct st_LanSearchInfo *)data.bytes;        for (NSInteger i = 0; i < count; i++) {            NSString *uid = [NSString stringWithCString:devices[i].UID encoding:NSUTF8StringEncoding];            NSString *ip = [NSString stringWithCString:devices[i].IP encoding:NSUTF8StringEncoding];            uint16_t port = devices[i].port;            NSLog(@"Device %ld: UID=%@, IP=%@, Port=%d", (long)i, uid, ip, port);        }    } else {        NSLog(@"No devices found or search failed.");    } }];

KY_GetSDKVersion

功能描述:获取Kalay/P2P SDK的版本号信息,用于版本校验和问题排查。

接口定义

+ (NSString * _Nullable)KY_GetSDKVersion;

参数说明

参数类型说明
-该接口无需传入参数

回调说明

该接口无回调函数,版本号信息通过返回值直接返回。

返回码

返回一个 NSString 对象,包含SDK的版本号(如 "3.3.0");如果获取失败,返回 nil

代码示例

NSString *version = [KYCamera KY_GetSDKVersion]; if (version) {    NSLog(@"SDK Version: %@", version); } else {    NSLog(@"Failed to get SDK version."); }

KY_setLogEnable

功能描述:设置SDK日志的记录开关、日志级别及存储路径,用于调试和问题排查。

接口定义

+ (void) KY_setLogEnable:(BOOL)enable                   Level:(logLevel_t)level; + (void) KY_setLogEnable:(BOOL)enable                   Level:(logLevel_t)level                    path:(NSString *)path;

参数说明

参数类型说明
enableBOOL是否开启log记录
pathNSString *日志文件存储的路径。设置后,log将按以下结构存储在沙盒中:
                               <path>/yyyy-MM-dd/HH:mm:ss/Console.txt
                               <path>/yyyy-MM-dd/HH:mm:ss/IOTC.txt
                               <path>/yyyy-MM-dd/HH:mm:ss/AVAPI.txt
                               <path>/yyyy-MM-dd/HH:mm:ss/RDT.txt
                               <path>/yyyy-MM-dd/HH:mm:ss/Global.txt
levellogLevel_tlog等级。详细定义参考:LOGLEVEL_ENUM
LOGLEVEL_ENUM:
枚举说明
0LEVEL_VERBOSE最详细的日志级别,包含所有信息
1LEVEL_DEBUG调试级别日志
2LEVEL_INFO信息级别日志
3LEVEL_WARNING警告级别日志
4LEVEL_ERROR错误级别日志
5LEVEL_SILENCE关闭所有日志

回调说明

该接口无回调函数,调用后直接生效,日志会按照指定的级别和路径进行记录。

返回码

该接口无返回值,日志设置的有效性可通过查看指定路径下的日志文件是否生成来验证。

代码示例

// 开启日志,级别为 DEBUG [KYCamera KY_setLogEnable:YES Level:1]; // 开启日志,级别为 INFO,并指定存储路径 NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; NSString *logPath = [documentsPath stringByAppendingPathComponent:@"KalayLogs"]; [KYCamera KY_setLogEnable:YES Level:2 path:logPath];

即刻开启您的物联网之旅

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

+86 755 27702549

7×24小时服务热线

法律声明 隐私权条款

关注“TUTK”

TUTK服务尽在掌握

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

TUTK服务尽在掌握

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

返回顶部