开源鸿蒙 SDK开发过程

  • 2022-08-09
  • 浏览 (1089)

SDK开发过程

SDK头文件的功能实现是基于对SDK的调用映射到对客户端的调用。Client端提供的接口如下表所示。

表1 Client端提供的接口

接口名 接口说明 参数要求
int AieClientInit(const ConfigInfo &configInfo,
 ClientInfo &clientInfo, const AlgorithmInfo
 &algorithmInfo, IServiceDeadCb *cb)
作用:链接并初始化引擎服务,激活跨进程调用。
返回值:0为成功,其他返回值失败。
configInfo(不能为NULL):引擎相关初始化配置数据
clientInfo(不能为NULL):引擎客户端信息
algorithmInfo(不能为NULL):调用算法信息
cb(可为NULL):死亡回调对象
int AieClientPrepare(const ClientInfo &clientInfo
, const AlgorithmInfo &algorithmInfo, const DataInfo
 &inputInfo, DataInfo &outputInfo, IClientCb *cb)
作用:加载算法插件。
返回值: 0为成功,其他返回值失败。
clientInfo(不能为NULL):引擎客户端信息
algorithmInfo(不能为NULL):调用算法信息
inputInfo(可为NULL):加载算法插件时输入所需信息
outputInfo(可为NULL):加载算法插件之后如需返回信息则通过此出参返回
cb:异步算法通过此回调返回运算结果,因此异步算法此结构体不能为空 若为同步算法,传入空值即可
int AieClientAsyncProcess(const ClientInfo &clientInfo,
 const AlgorithmInfo &algorithmInfo, const DataInfo
 &inputInfo)
作用:执行异步算法。
返回值:0为成功,其他返回值失败。
clientInfo(不能为NULL):引擎客户端信息
algorithmInfo(不能为NULL):调用算法信息
inputInfo(可为NULL):算法运算入参
int AieClientSyncProcess(const ClientInfo &clientInfo,
 const AlgorithmInfo &algorithmInfo, const
 DataInfo &inputInfo, DataInfo &outputInfo)
作用:执行同步算法。
返回值:0为成功,其他返回值失败。
clientInfo(不能为NULL):引擎客户端信息
algorithmInfo(不能为NULL):调用算法信息
inputInfo(可为NULL):算法运算入参
outputInfo(可为NULL):同步算法运算结果出参
int AieClientRelease(const ClientInfo &clientInfo,
 const AlgorithmInfo &algorithmInfo, const
 DataInfo &inputInfo)
作用:卸载算法插件。
返回值:0为成功,其他返回值失败。
clientInfo(不能为NULL):引擎客户端信息
algorithmInfo(不能为NULL):卸载算法插件的相关信息
inputInfo(可为NULL):调用卸载接口时的输入信息
int AieClientDestroy(ClientInfo &clientInfo) 作用:断开与服务端的链接,释放相关缓存。
返回值:0为成功,其他返回值失败。
clientInfo(不能为NULL):所要销毁的引擎客户端信息
int AieClientSetOption(const ClientInfo &clientInfo,
 int optionType, const DataInfo &inputInfo)
作用:设置配置项,可将一些算法的拓展信息通过此接口传入插件。
返回值:0为成功,其他返回值失败。
clientInfo(不能为NULL):引擎客户端信息
optionType (不能为NULL):算法配置项,算法插件可根据需要利用此状态位
inputInfo(可为NULL):插件可根据需要通过此入参设置算法参数信息
int AieClientGetOption(const ClientInfo &clientInfo,
 int optionType, const DataInfo &inputInfo,
 DataInfo &outputInfo)
作用:给定特定的optionType和inputInfo,获取其对应的配置项信息。
返回值:0为成功,其他返回值失败。
clientInfo(不能为NULL):引擎客户端信息
optionType(不能为NULL):所获取配置项信息的对应算法状态位
inputInfo(可为NULL):所获取配置项信息的对应算法参数信息
outputInfo(可为NULL):所要获取的配置项信息返回结果

其中,ConfigInfo,ClientInfo,AlgorithmInfo,DataInfo的数据结构如下表所示。

表2 ConfigInfo,ClientInfo,AlgorithmInfo,DataInfo的数据结构

结构体名称 说明 属性
ConfigInfo 算法配置项信息。 const char *description:配置项信息主体
ClientInfo 客户端信息。 long long clientVersion:客户端设备版本号(当前还未启用)
int clientId:客户端ID
int sessionId:会话ID
uid_t serverUid:server端UID
uid_t clientUid:client端UID
int extendLen:拓展信息(extendMsg)长度
unsigned char *extendMsg:拓展信息主体
AlgorithmInfo 算法信息。 long long clientVersion:客户端设备版本号(当前还未启用)
bool isAsync:是否为异步执行
int algorithmType:引擎框架根据插件加载顺序分配的算法类型ID
long long algorithmVersion:算法版本号
bool isCloud:是否上云(当前还未启用)
int operateId:执行ID(当前还未启用)
int requestId:请求ID,标识每次request,以对应执行结果
int extendLen:拓展信息(extendMsg)长度
unsigned char *extendMsg:拓展信息主体
DataInfo 算法数据入参(inputInfo)、
接口调用结果出参(outputInfo)。
unsigned char *data:数据主体
int length:数据(data)长度

具体开发过程可参考唤醒词识别SDK开发示例

你可能感兴趣的文章

开源鸿蒙 subsystems

开源鸿蒙 唤醒词识别配置文件的开发示例

开源鸿蒙 唤醒词识别插件的开发示例

开源鸿蒙 唤醒词识别SDK的开发示例

开源鸿蒙 开发示例

开源鸿蒙 配置文件的开发过程

开源鸿蒙 插件的开发过程

开源鸿蒙 开发指导

开源鸿蒙 搭建环境

开源鸿蒙 概述

0  赞