VOIX外部接口模块
Go to file
ovizro f46f39b2b2 feat(event): implement event handling mechanism
- Add event registration and triggering functionality
- Implement event callback mechanism
- Update exint_send to support event type
- Modify alarm and command handlers to use event mechanism
- Update test cases for event handling
2024-12-24 22:50:03 +08:00
config feat(exint): support UDP and Unix socket transport for telemetry 2024-12-19 18:00:09 +08:00
docs refactor(communication): remove unused extern interface module 2024-12-02 23:16:25 +08:00
include feat(event): implement event handling mechanism 2024-12-24 22:50:03 +08:00
scripts feat(event): implement event handling mechanism 2024-12-24 22:50:03 +08:00
src feat(event): implement event handling mechanism 2024-12-24 22:50:03 +08:00
tests feat(event): implement event handling mechanism 2024-12-24 22:50:03 +08:00
toolchains feat(core): rename and restructure event handling and initialization 2024-12-14 14:39:28 +08:00
.gitignore refactor(project): remove unused DataQueue implementation and CCfgFileParser 2024-12-06 22:08:52 +08:00
CMakeLists.txt feat(external_interface): implement transport layer and refactor handlers 2024-12-18 23:08:16 +08:00
README.md feat(core): rename and restructure event handling and initialization 2024-12-14 14:39:28 +08:00
mak refactor(project): remove unused DataQueue implementation and CCfgFileParser 2024-12-06 22:08:52 +08:00

README.md

外部接口模块文档

本文档主要描述Voix中的用于与遥测机及上位机进行通讯及相关附加功能的模块。 这些模块拆分自原host_com.cpp文件。

1. 构建及测试

使用cmake进行构建

cmake . -B build
cmake --build build -j6

使用cmake调用测试脚本进行测试

cmake . -B build
cmake --build build -j6 --target test

或在构建完成后使用测试脚本:

./scripts/unittest.py bin/test_*

2. 模块公开接口

以下接口由通讯模块公开可以在VOIX主程序中使用。

  1. void exint_initialize(const char* config_path, et_callback_t cb):模块初始化函数,此函数会读取配置文件,开启串口并启动模块所需的线程
    • config_path:配置文件路径
    • cb:回调函数,用于进行指令响应和遥测数据请求
  2. void (*et_callback_t)(uint32_t type, size_t len, void* data):回调函数类型,内部数据为指针类型的数据包仅保证在回调函数中有效。
    • type:数据包类型
    • len:数据包长度,对于字符串类型数据应包含后缀\0的长度。
    • data:数据包数据
  3. 数据包类型(宏定义):
    • ET_TYPE_TEXT:文本,对应const char*类型的数据
    • ET_TYPE_AUDIO:音频,对应short*类型的数据
    • ET_TYPE_COMMAND:指令码,对应uint8_t[6]类型的数据
    • ET_TYPE_ALARM:告警码,对应AlarmData*类型的数据
    • ET_TYPE_TELEMETRY_REQUEST:遥测请求,对应TelemetryRequestData*类型的数据,需要主程序在数据包内的指针中写入对应的变量数据
  4. void exint_send(uint32_t type, size_t len, void* data):发送数据包,此函数是非阻塞的
    • type:数据包类型
    • len:数据包长度,对于字符串类型数据应包含后缀\0的长度。
    • data:数据包数据
  5. void exint_finialize():模块销毁函数,调用后模块会终止所有内部线程,释放所有资源。