AidConnect C++ 接口文档
💡注意 使用 Aidconnect-SDK C++ 开发需要了解如下事项:
- 编译时需要包含头文件,存放路径 /usr/local/include/aidlux/aidconnect/aidconnect.hpp
- 链接时需要指定库文件,存放路径 /usr/local/lib/aidlux/aidconnect/libaidconnect.so
enum struct LogLevel
| 成员变量名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| DEBUG | uint8_t | 0 | debug日志级别 |
| INFO | uint8_t | 1 | info日志级别 |
| WARNING | uint8_t | 2 | warning日志级别 |
| ERROR | uint8_t | 3 | error日志级别 |
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;
}同理,读操作的实现也是如此步骤,先初始化再管理共享内存,最后调用读取数据的接口来获取数据。