缓冲池循环存储读写方法技术

技术编号:16379290 阅读:367 留言:0更新日期:2017-10-15 12:42
本发明专利技术提供一种缓冲池循环存储读写方法,包括循环存储数据写入方法和循环存储数据读取方法;循环存储数据写入方法包括如下步骤:创建缓冲池,并准备写入数据;检测写入数据的长度,若所述写入数据的长度小于剩余空间则结束本次数据写入,若所述写入数据的长度大于剩余空间则进行数据写入;检测是否到缓存末尾,若是则将写指针移动到缓存起始处再向后移动并结束本次数据写入,若否将写指针向后移动并结束本次数据写入;循环存储数据读取方法包括如下步骤:获取读取数据的长度;进行数据读取;检测是否到缓存末尾,若是则将将读指针移动到缓存起始处再向后移动并结束本次数据读取,若否则将读指针向后移动并结束本次数据读取。

Buffer pool read and write method with cyclic storage

The invention provides a circular buffer pool memory read and write methods, including cyclic memory data writing method and cycle storage data reading method; cycle memory data writing method comprises the following steps: creating a buffer pool, and ready to write data; detecting write data length, if the write data is less than the length of the remaining space is the end of the time if the data is written, the write data is larger than the length of the remaining space to write data to the cache; detecting whether the end, if the write pointer to the buffer at the start to move backwards and the end of the number according to the written, if not the write pointer moves backward and the end of the write data storage data reading method includes circulation; the following steps: acquiring data length; data read; detecting whether to cache the end, if it will move the pointer to read The cache starts to move backwards and ends the data read, otherwise the read pointer moves backwards and ends the data read.

【技术实现步骤摘要】
缓冲池循环存储读写方法
本专利技术具体涉及一种缓冲池循环存储读写方法。
技术介绍
循环缓冲区用于表示一个固定尺寸、头尾相连的缓冲区,适合缓存数据流的一种数据结构,现有循环缓冲区读写方法并不能满足日常工作需要,因此急需一种缓冲池循环存储读写方法以解决这一问题。
技术实现思路
本专利技术的目的在于针对现有技术的不足,提供一种缓冲池循环存储读写方法,该缓冲池循环存储读写方法可以很好地解决上述问题。为达到上述要求,本专利技术采取的技术方案是:提供一种缓冲池循环存储读写方法,该缓冲池循环存储读写方法包括循环存储数据写入方法和循环存储数据读取方法;循环存储数据写入方法包括如下步骤:S1:创建缓冲池,并准备写入数据;S2:检测写入数据的长度,若写入数据的长度小于剩余空间则结束本次数据写入,若所述写入数据的长度大于剩余空间则进行数据写入;S3:检测是否到缓存末尾,若是则将写指针移动到缓存起始处再向后移动并结束本次数据写入,若否将写指针向后移动并结束本次数据写入;循环存储数据读取方法包括如下步骤:S1:获取读取数据的长度;S2:进行数据读取;S3:检测是否到缓存末尾,若是则将将读指针移动到缓存起始处再向后移动并结束本次数据读取,若否则将读指针向后移动并结束本次数据读取。该缓冲池循环存储读写方法具有的优点如下:该缓冲池循环存储读写方法开辟一块连续的存储区,可以不断地读、写数据,当写入到存储区的末尾的时候,再从存储区的首部再开始写入数据,由此不断地重复下去构成了循环缓冲池,缓冲池可以存储多次的接收数据,待需要时按循序取出。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,在这些附图中使用相同的参考标号来表示相同或相似的部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1示意性地示出了根据本申请一个实施例的缓冲池循环存储读写方法的数据写入流程图。图2示意性地示出了根据本申请一个实施例的缓冲池循环存储读写方法的数据读取流程图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本申请作进一步地详细说明。在以下描述中,对“一个实施例”、“实施例”、“一个示例”、“示例”等等的引用表明如此描述的实施例或示例可以包括特定特征、结构、特性、性质、元素或限度,但并非每个实施例或示例都必然包括特定特征、结构、特性、性质、元素或限度。另外,重复使用短语“根据本申请的一个实施例”虽然有可能是指代相同实施例,但并非必然指代相同的实施例。为简单起见,以下描述中省略了本领域技术人员公知的某些技术特征。根据本申请的一个实施例,提供一种缓冲池循环存储读写方法,如图1-2所示,包括循环存储数据写入方法和循环存储数据读取方法;所述循环存储数据写入方法包括如下步骤:S1:创建缓冲池,并准备写入数据;S2:检测写入数据的长度,若所述写入数据的长度小于剩余空间则结束本次数据写入,若所述写入数据的长度大于剩余空间则进行数据写入;S3:检测是否到缓存末尾,若是则将写指针移动到缓存起始处再向后移动并结束本次数据写入,若否将写指针向后移动并结束本次数据写入;所述循环存储数据读取方法包括如下步骤:S1:获取读取数据的长度;S2:进行数据读取;S3:检测是否到缓存末尾,若是则将将读指针移动到缓存起始处再向后移动并结束本次数据读取,若否则将读指针向后移动并结束本次数据读取。根据本申请的一个实施例,该缓冲池循环存储读写方法的串口将接收的数据放入缓存池中,同时记录指针位置。根据本申请的一个实施例,该缓冲池循环存储读写方法的缓存初始化后,读、写指针都位于缓存池起始位置。根据本申请的一个实施例,该缓冲池循环存储读写方法的基于串口循环读写缓存池说明:首先建立一个结构体,结构体中定义了一个数组、读、写指针,数组用作循环缓存池,指针判断缓存池使用状态。串口将接收的数据放入缓存池中,同时记录指针位置。缓存初始化后,读、写指针都位于缓存池起始位置,此时可对缓冲池进行读、写操作。写数据:收到长度小于缓存池的剩余容量的数据后将数据写入缓冲池,每写入一个字节,写指针向后移动一个字节。当写指针位于缓存池末尾时,下一次移动到缓存的起始位置;初始化时读写指针位于缓存开始处,读指针等于写指针,表示缓存为空,当有数据写入时,写入一个字节数据,写指针向后移动一位,写指针到达缓存末尾,写入下一个字节时写指针移动到缓存开始处,并覆盖之前写入的数据。写数据:读数据时,从读指针开始读,每读一个字节向后移动一个字节,直到读满数据长度,此时读指针等于写指针。读取数据之前需要先获取数据长度,计算数据长度的方式根据读、写指针的位置不同,可分两种情况,第一种为初始化后,写指针等于读指针,此时缓冲池中无数据,第二种为缓冲池中有数据,但是已经将数据读取。这两种情况都不应该再次读取数据。避免缓冲池越界的处理:写数据之前判断写入数据的长度,若长度大于缓存池的剩余容量表示缓冲池已满,数据应不存入,以保证之前写入的数据不会被覆盖。缓存池的容量需要事先预估最大值,每次写入的数据长度不得大于缓存池容量的最大值。以上所述实施例仅表示本专利技术的几种实施方式,其描述较为具体和详细,但并不能理解为对本专利技术范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变形和改进,这些都属于本专利技术保护范围。因此本专利技术的保护范围应该以所述权利要求为准。本文档来自技高网...
缓冲池循环存储读写方法

【技术保护点】
一种缓冲池循环存储读写方法,其特征在于:包括循环存储数据写入方法和循环存储数据读取方法;所述循环存储数据写入方法包括如下步骤:S1:创建缓冲池,并准备写入数据;S2:检测写入数据的长度,若所述写入数据的长度小于剩余空间则结束本次数据写入,若所述写入数据的长度大于剩余空间则进行数据写入;S3:检测是否到缓存末尾,若是则将写指针移动到缓存起始处再向后移动并结束本次数据写入,若否将写指针向后移动并结束本次数据写入;所述循环存储数据读取方法包括如下步骤:S1:获取读取数据的长度;S2:进行数据读取;S3:检测是否到缓存末尾,若是则将将读指针移动到缓存起始处再向后移动并结束本次数据读取,若否则将读指针向后移动并结束本次数据读取 。

【技术特征摘要】
1.一种缓冲池循环存储读写方法,其特征在于:包括循环存储数据写入方法和循环存储数据读取方法;所述循环存储数据写入方法包括如下步骤:S1:创建缓冲池,并准备写入数据;S2:检测写入数据的长度,若所述写入数据的长度小于剩余空间则结束本次数据写入,若所述写入数据的长度大于剩余空间则进行数据写入;S3:检测是否到缓存末尾,若是则将写指针移动到缓存起始处再向后移动并结束本次数据写入,若否将写指针向后移动并结束本次数据写入;所述循...

【专利技术属性】
技术研发人员:付晓杨俊樊银兵张乾
申请(专利权)人:成都华立达电力信息系统有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1