# data-receiver-c **Repository Path**: socbis/data-receiver-c ## Basic Information - **Project Name**: data-receiver-c - **Description**: 纯C编写的数据接收器,用于流式数据的接收,校验等。 需要数据协议具有包头H,且包长有限可求,如JSON或其它自定义的二进制数据协议。 本文件在linux环境下测试,为嵌入式应用方向。 程序中使用了动态内存,因此在裸单片机上运行时要确认内存管理是否合理。 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-12-31 - **Last Updated**: 2022-05-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DataReceiver #### 介绍 - 纯C编写的数据接收器,用于流式数据的接收,校验等。 - 需要数据协议具有包头H,且包长有限可求,如JSON或其它自定义的二进制数据协议。 - 本文件在linux环境下测试,为嵌入式应用方向。 - 程序中使用了动态内存,因此在裸单片机上运行时要确认内存管理是否合理。 #### 软件架构 /code/ - datarcver.h - datarcver.c - jsonrcver.c #### 安装教程 1. 复制上述3个文件到目标项目 #### 使用说明 1. 用户编写必须参数中相关函数 2. 创建&初始化,使用 DataReveiver_Init(),并配置必须参数 3. 从数据源获取数据,根据是否使用多缓存模式,选择不同的方式: > 单缓存模式: 配置完必须参数后,使用以下语句即可: ```DataMan_t* dataman = this->select;``` > 多缓存模式: 每次接受到新的数据,要根据数据id选择数据管理器 ```DataMan_t* dataman = this->SelectBuf(this, id);``` 该函数能根据id返回不同的管理器,若未搜索到,则需要使用为该id 新建一个管理器: ```dataman = this->CreateBuf(this, newid);``` 4. 调用PackParser分析数据,并注意,在使用多缓存模式时,需要在自定义的 PackProcessor()函数中释放 this->select,使用以下语句 this->SelectBufFree(this); #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request