ovizro
9e4fdf3b13
- Add UDP and Unix socket transport options for telemetry data - Implement new handler functions for text and audio data - Update configuration file format to support new transport options - Refactor existing code to accommodate new functionality |
||
---|---|---|
config | ||
docs | ||
include | ||
scripts | ||
src | ||
tests | ||
toolchains | ||
.gitignore | ||
CMakeLists.txt | ||
README.md | ||
mak |
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主程序中使用。
void exint_initialize(const char* config_path, et_callback_t cb)
:模块初始化函数,此函数会读取配置文件,开启串口并启动模块所需的线程config_path
:配置文件路径cb
:回调函数,用于进行指令响应和遥测数据请求
void (*et_callback_t)(uint32_t type, size_t len, void* data)
:回调函数类型,内部数据为指针类型的数据包仅保证在回调函数中有效。type
:数据包类型len
:数据包长度,对于字符串类型数据应包含后缀\0
的长度。data
:数据包数据
- 数据包类型(宏定义):
ET_TYPE_TEXT
:文本,对应const char*
类型的数据ET_TYPE_AUDIO
:音频,对应short*
类型的数据ET_TYPE_COMMAND
:指令码,对应uint8_t[6]
类型的数据ET_TYPE_ALARM
:告警码,对应AlarmData*
类型的数据ET_TYPE_TELEMETRY_REQUEST
:遥测请求,对应TelemetryRequestData*
类型的数据,需要主程序在数据包内的指针中写入对应的变量数据
void exint_send(uint32_t type, size_t len, void* data)
:发送数据包,此函数是非阻塞的type
:数据包类型len
:数据包长度,对于字符串类型数据应包含后缀\0
的长度。data
:数据包数据
void exint_finialize()
:模块销毁函数,调用后模块会终止所有内部线程,释放所有资源。