# itlv **Repository Path**: XiaoPb/itlv ## Basic Information - **Project Name**: itlv - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-07 - **Last Updated**: 2025-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ITLV 协议框架 [![Language](https://img.shields.io/badge/language-c-brightgreen.svg)]() [![ITLV](https://img.shields.io/badge/ITLV-protocol-blue.svg)]() ## 简介 ITLV 是一个简单的协议框架,用于解析、打包和发送数据。该框架支持事件处理和数据校验。 ## 特性 - 支持事件处理 - 支持数据校验 - 易于集成和使用 ## 目录结构 ``` itlv/ ├── example/ # 示例代码 │ └── example.c ├── tests/ # 测试代码 │ └── test_itlv.c ├── itlv.c # ITLV 协议实现 ├── itlv.h # ITLV 协议头文件 ├── CMakeLists.txt # CMake 构建文件 └── README.md # 项目说明文件 ``` ## ITLV 协议帧数据格式 | 字段名 | 类型 | 描述 | |--------------|----------|--------------------| | header_h | uint8_t | 协议帧头高8Bit | | header_l | uint8_t | 协议帧头低8Bit | | event_id | uint8_t | 协议ID | | event_tag | uint8_t | 协议TAG | | length_h | uint8_t | 数据长度高8Bit | | length_l | uint8_t | 数据长度低8Bit | | value[0..n] | uint8_t | 数据Buffer | | crc_value_h | uint8_t | 校验字节高8Bit | | crc_value_l | uint8_t | 校验字节低8Bit | ## 快速开始 ### 构建项目 1. 克隆项目到本地: ```sh git clone https://gitee.com/XiaoPb/itlv.git cd itlv ``` 2. 使用 CMake 构建项目: ```sh mkdir build cd build cmake -G Ninja .. ninja ``` 3. 运行示例代码: ```sh ./itlv_example.exe ``` 4. 运行测试代码: ```sh ctest ``` ```sh ./itlv_test.exe ``` ### 使用 ITLV 协议 在您的项目中包含 `itlv.h` 和 `itlv.c` 文件,并按照以下步骤使用 ITLV 协议: 1. 初始化 ITLV 协议结构体: ```c itlv_params_t itlv_params; uint8_t buffer[100]; itlvInit(&itlv_params, 0xAA55, buffer, sizeof(buffer), NULL); ``` 2. 初始化事件处理表: ```c itlv_event_t event_table[] = { {0x01, 0x01, event_handle_1}, {0x01, 0x02, event_handle_2} }; itlvInitEventTable(&itlv_params, event_table, sizeof(event_table) / sizeof(event_table[0])); ``` 3. 解析数据: ```c uint8_t data[] = { ... }; itlvParse(&itlv_params, data, sizeof(data)); ``` 4. 打包数据: ```c uint8_t output_buffer[120]; uint16_t length = itlvZipData(&itlv_params, 0x01, 0x01, input_data, input_length, output_buffer); ``` 5. 发送数据: ```c itlvSendData(&itlv_params, 0x01, 0x01, input_data, input_length); ``` ## 许可证 本项目基于 MIT 许可证,详情请参阅 [LICENSE](./LICENSE) 文件。