# CDTP **Repository Path**: songhui2004/cdtp ## Basic Information - **Project Name**: CDTP - **Description**: 数据传输层协议,只需要提供单字节的收发函数就可以移植这些协议。Data transport layer protocols can be transplanted by providing a single byte transceiver function. - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: https://github.com/ZhuYanzhen1/CDTP - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-12 - **Last Updated**: 2022-02-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数传协议 ![Version](https://img.shields.io/badge/Version-1.2.1-brightgreen.svg)  ![Build](https://img.shields.io/badge/Build-Passed-success.svg)  ![License](https://img.shields.io/badge/License-AGPL-blue.svg)        [English](https://github.com/ZhuYanzhen1/CDTP/blob/master/README.md) / 中文     这个项目是作者在高三参加[Robomaster高中生夏令营](https://www.robomaster.com/zh-CN/campus/highSchool?djiFrom=HEAD)时提出并制定的一个轻量的数传协议的衍生版本,主要目的是实现传输层的功能。这个协议可以被运用在各种物理层上,比如UART、SPI、IIC等,为顺序传输数据提供了保证。根据传输数据量大小的需求,作者将协议分为了以下三个不同的版本: - [大容量数据传输](https://github.com/ZhuYanzhen1/CDTP/blob/master/ldtp/README_CN.md):传输数据无上限,适用于高性能设备的数据传输 - [中等容量数据传输](https://github.com/ZhuYanzhen1/CDTP/blob/master/mdtp/README_CN.md):传输数据不大于128字节,适用于STM32等中高性能设备的数据传输 - [小容量数据传输](https://github.com/ZhuYanzhen1/CDTP/blob/master/sdtp/README_CN.md):传输数据不大于3字节,适用于51单片机等低性能设备的数据传输     注:请在满足传输容量的情况下尽量选择小的数据传输协议,因为越大容量的数据传输协议占用的堆栈越大、协议处理越复杂、出错概率越大,体现在单片机上就是中断占用时间更长(呈几何增长)、堆栈更容易溢出。 *** ### 源码移植: 1. 将"src"文件夹中的encrypt.c,encrypt.h,decrypt.c,decrypt.h,ioctrl.c,ioctrl.h文件均移植到项目中。 2. 在ioctrl.c文件中实现最基本的发送单个字节功能,即实现common_sendbyte函数,将data发送出去。 3. 在接收完成一个字节的数据后,调用decrypt.c文件的common_receivebyte函数,将接收的字节传到data中。 4. 完成上述步骤后,调用encrypt中的函数xdtp_data_transmit即可发送包;接收完成一个包后会触发ioctrl.c中的回调函数xdtp_callback_handler。 *** ### BUG报告 & 功能需求 请使用[Issue Tracker](https://github.com/ZhuYanzhen1/CDTP/issues)报告错误和需求功能,并遵循以下要求: 1. 在不同选项卡上突出显示选项卡。 2. 如果窗口未聚焦,不要让更新消失。 *** ### 许可证 源代码根据[AGPL-3.0许可证](https://github.com/ZhuYanzhen1/CDTP/blob/master/LICENSE)发布。 **组织:AcmeTech
作者:朱彦臻
维护人:朱彦臻, 2208213223@qq.com** 该产品已经在Windows 10、Ubuntu 18.04和20.04下进行了测试。这是一个研究代码,希望它经常更改,并且不承认任何特定用途的适用性。