Skip to content

AidConnect Android 接口文档

💡注意 使用 Aidconnect-SDK C++ 开发需要了解如下事项:

  • 编译时需要包含头文件,存放路径 /usr/local/include/aidlux/aidconnect/aidconnect.hpp
  • 链接时需要指定库文件,存放路径 /usr/local/lib/aidlux/aidconnect/libaidconnect.so

enum struct LogLevel

成员变量名类型默认值描述
DEBUGuint8_t0debug日志级别
INFOuint8_t1info日志级别
WARNINGuint8_t2warning日志级别
ERRORuint8_t3error日志级别

Class Aidkv

基于 CPP 实现的共享内存通信类。

get_library_version()

API get_library_version
描述 用于获取当前 Aidconnect 的版本相关信息。
参数 void
返回 返回值为当前 Aidconnect 的版本信息字符串

set_log_level()

API set_log_level
描述 设置当前的最低日志级别,输出大于等于该日志级别的日志数据。
默认打印输出 WARNING 及以上级别的日志
参数 log_level:枚举类型 LogLevel 的取值
返回 默认返回 0 值

init()

顾名思义,该函数实现的是相关的初始化工作。

API init
描述 完成相关的初始化工作
参数 void
返回 0 值则说明初始化操作执行成功,否则非 0 值就说明执行失败
cpp
int status = aidconnect.init();
if(EXIT_SUCCESS != status){
    printf("aidconnect.init failed !\n");
    return EXIT_FAILURE;
}

aidconnect_with_name()

函数用于指定我们需要使用哪个共享内存块。需要特别说明的是,此接口只检查某个共享内存块是否存在,不会新建共享内存(共享内存的创建由 Android 端的接口实现)。

API aidconnect_with_name
描述 指定使用某个特定的共享内存块
参数 block_id:具体某块共享内存的id字符串
返回 0 值则说明初始化操作执行成功,否则非 0 值就说明执行失败
cpp
status = aidconnect.aidconnect_with_name("we");
if(EXIT_SUCCESS != status){
    printf("aidconnect.aidkv_with_id failed !\n");
    return EXIT_FAILURE;
}

set_bytes()

函数实现的是往对应的共享内存中写入 bytes 数据。

API set_bytes
描述 往对应的共享内存中写入 bytes 数据
参数 buffer:存储着数据的内存地址
len:需要写入数据的字节长度
返回 返回值为 0 则说明写入成功,非 0 值就说明执行写入失败
cpp
status = aidconnect.set_bytes(buffer, sizeof(buffer));
if(EXIT_SUCCESS != status){
    printf("aidconnect.set_bytes failed !\n");
    return EXIT_FAILURE;
}

get_bytes()

函数实现的是从对应的共享内存中读取出所需的 bytes 数据。

API get_bytes
描述 从对应的共享内存中读取出所需的 bytes 数据
参数 buffer:该值是指针变量的地址,函数会将数据复制到对应的指针变量地址
len:想要获取的数据的 bytes 长度
返回 0 值则说明获读取成功,非 0 值就说明执行读取失败
说明 开发者在使用此接口之前,需要自行分配所需的内存,用于存储从共享内存中获取的数据
cpp
status = aidconnect.get_bytes(&result, &length);
if(EXIT_SUCCESS != status){
    printf("aidconnect.get_bytes failed !\n");
    return EXIT_FAILURE;
}

AidConnect C++ 示例程序

💡注意

AidConnect-SDK 示例程序随软件包安装:

  • cpp 示例程序路径:/usr/local/share/aidconnect/examples/cpp/

此处的 CPP 示例程序大致包含如下几个部分:

初始化

初始化操作是必须要用的步骤,其中会完成诸如配置解析等前置需要。

cpp
Aidlux::AidConnect aidconnect;
int status = aidconnect.init();
if(EXIT_SUCCESS != status){
    printf("aidconnect.init failed !\n");
    return EXIT_FAILURE;
}

关联特定共享内存

想要实现数据交互,那么需要交互数据的实体就需要关注相同的共享内存,对这一共享内存进行读写操作。

cpp
status = aidconnect.aidconnect_with_name("your_shm_name");
if(EXIT_SUCCESS != status){
    printf("aidconnect.aidconnect_with_name failed !\n");
    return EXIT_FAILURE;
}

读写数据

数据交互的本质就是对相同数据的读写操作,这里以写操作为例。

cpp
char buffer[] = "Hello Cpp";
status = aidconnect.set_bytes(buffer, sizeof(buffer));
if(EXIT_SUCCESS != status){
    printf("aidconnect.set_bytes failed !\n");
    return EXIT_FAILURE;
}

同理,读操作的实现也是如此步骤,先初始化再管理共享内存,最后调用读取数据的接口来获取数据。