Linux SDK 文档
1. 离线唤醒能力简介(能力id:e867a88f2)
#2. 授权说明
#3. 兼容性说明
类别 | 兼容范围 |
---|---|
gcc/g++ | v4.8.5+ |
接口 | Linux C++ 接口 |
网络 | 对网络无要求,设备具备联网条件,可使用在线激活方式,首次使用需要连接网络。若设备不能联网,需要使用离线激活方式 |
开发环境 | 建议使用 VS Studio 进行开发 |
#4. SDK包组成
#5. 接口调用流程

#6. 快速集成指南
#6.1 导入SDK库
#include "./include/aikit_biz_api.h"
#include "./include/aikit_constant.h"
#6.2 配置权限
#6.3 资源导入
#6.4 SDK初始化
AIKIT_Configurator::builder()
.app()
.appID("")
.apiKey("")
.apiSecret("")
.workDir("./") //示例为当前路径
.auth()
.ability("e867a88f2")
.log()
.logLevel(LOG_LVL_INFO)
.logPath("./");
int ret = AIKIT_Init();
if(ret != 0){
printf("AIKIT_Init failed:%d\n",ret);
goto exit;
}
模块 | 配置选项 | 类型 | 必填 | 说明 |
---|---|---|---|---|
app | appID | string | 是 | 应用ID |
app | apiKey | string | 是 | 离线引擎托管平台创建应用后,生成的唯一应用标识 |
app | apiSecret | string | 是 | 离线引擎托管平台创建应用后,生成的唯一应用秘钥 |
app | workDir | string | 是 | SDK工作目录,默认授权缓存、读取能力资源、写SDK日志在此路径下 |
app | resDir | string | 否 | 指定资源读取路径,不设置默认从workDir读取 |
auth | authType | string | 否 | 离线授权类型(0或1),0-->(默认)设备级授权(DEVICE)和 1-->应用级授权(APP) |
auth | licenseFile | string | 否 | (购买装机量达到10000台后,可以通过工单申请离线激活license文件)离线授权license文件绝对路径,SDK离线激活方式,需要从离线引擎托管平台申请的离线授权license文件,放入设备指定路径中(可放入至SDK工作路径下),即licenseFile参数即为离线激活文件的绝对工作路径。 |
auth | channelID | string | 否 | 渠道ID,存在多个能力集可指定使用的能力集 |
auth | UDID | string | 否 | 用户自定义设备标识,需要服务端配置开启支持后才支持使用,建议设置长度低于256 |
auth | ability | string | 是 | 竞争授权注册的能力id组合,格式如"xxxxx1;xxxxx2",多个能力通过英文分号隔开,如果进行设置,则按照注册的能力进行授权,如果设置为空或者没有设置,则按照旧版sdkid的方式进行授权 |
log | logLevel | int | 否 | 日志的输出等级:LOG_LVL_VERBOSE: verbose日志,日志最全LOG_LVL_DEBUG: debug级别LOG_LVL_WARN:警告级别信息LOG_LVL_INFO: 重要信息LOG_LVL_ERROR:错误级别日志LOG_LVL_FATAL:错误级别日志LOG_LVL_OFF:错误级别日志 |
log | logMode | int | 否 | 模式: LOG_STDOUT:linux 控制台 LOG_FILE:文件形式 |
log | logPath | string | 否 | 输出模式为文件时的文件名称(带有文件名称的路径) |
#6.5 注册回调监听
void OnOutput(AIKIT_HANDLE* handle, const AIKIT_OutputData* output){
printf("OnOutput abilityID :%s\n",handle->abilityID);
printf("OnOutput key:%s\n",output->node->key);
if((output->node->value) && (fin != nullptr))
{
//output->node->value 即为能力计算结果
}
}
void OnEvent(AIKIT_HANDLE* handle, AIKIT_EVENT eventType, const AIKIT_OutputEvent* eventValue){
printf("OnEvent:%d\n",eventType);
if(eventType == AIKIT_Event_End){
//计算结束
}
}
void OnError(AIKIT_HANDLE* handle, int32_t err, const char* desc){
printf("OnError:%d\n",err);
}
AIKIT_Callbacks cbs = {OnOutput,OnEvent,OnError};
AIKIT_RegisterAbilityCallback("e867a88f2",cbs);
参数 | 类型 | 说明 |
---|---|---|
handle | AIKIT_HANDLE* | 会话handle |
output | AIKIT_OutputData* | 输出数据 |
参数 | 类型 | 说明 |
---|---|---|
handle | AIKIT_HANDLE* | 会话handle |
eventType | AIKIT_EVENT | 事件类型 |
eventValue | AIKIT_OutputEvent* | 事件数据 |
参数 | 类型 | 说明 |
---|---|---|
handle | AIKIT_HANDLE* | 会话handle |
err | int32_t | 错误码 |
desc | char* | 错误码描述 |
#6.6 个性化数据
AIKIT_CustomBuilder *customData = AIKIT_CustomBuilder::create();
customData->text("key_word", "./keyword.txt",strlen("./keyword.txt"),0);//传入唤醒词名称
int ret = AIKIT_LoadData("e867a88f2",AIKIT_Builder::build(customData));
int indexs[]={0};
AIKIT_SpecifyDataSet("e867a88f2","key_word",indexs,1);
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
abilityId | char* | 是 | 能力标识ID |
data | AIKIT_CustomData* | 是 | 个性化数据构造器 |
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
abilityId | char* | 是 | 能力标识ID |
key | char* | 是 | 个性化资源key |
indexs | int[] | 是 | 个性化资源索引数组 |
count | int | 是 | 个性化数据索引数组成员个数 |
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
abilityId | char* | 是 | 能力标识ID |
srcData | AIKIT_CustomData* | 是 | 原始数据输入 |
data | AIKIT_CustomData** | 是 | 结果数据输出 |