Files
pwm32e_pro/doc/网页版文档/ringbuffer_8h.html
T
moyuhai 41a602f89c V1.0
2026-06-09 16:39:17 +08:00

503 lines
27 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.7"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BLE5.2: TEST2/api/ringbuffer.h 文件参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="xinchip.png"/></td>
<td id="projectalign">
<div id="projectname">BLE5.2<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">开发文档说明</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.7 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>首页</span></a></li>
<li><a href="pages.html"><span>相关页面</span></a></li>
<li><a href="annotated.html"><span></span></a></li>
<li class="current"><a href="files.html"><span>文件</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>文件列表</span></a></li>
<li><a href="globals.html"><span>文件成员</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_e551eb05443008c96ab2f08dbb3250a6.html">TEST2</a></li><li class="navelem"><a class="el" href="dir_a213a656435eb838f44f965c240ae24d.html">api</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes"></a> &#124;
<a href="#typedef-members">类型定义</a> &#124;
<a href="#func-members">函数</a> </div>
<div class="headertitle"><div class="title">ringbuffer.h 文件参考</div></div>
</div><!--header-->
<div class="contents">
<p><a href="ringbuffer_8h_source.html">浏览源代码.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structring__buffer.html">ring_buffer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
类型定义</h2></td></tr>
<tr class="memitem:a52ec5f4714183db21259b6f7ea22db4e"><td class="memItemLeft" align="right" valign="top">typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a></td></tr>
<tr class="separator:a52ec5f4714183db21259b6f7ea22db4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa068dc01974e1ba96c43ee09fecbe14e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structring__buffer.html">ring_buffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a></td></tr>
<tr class="separator:aa068dc01974e1ba96c43ee09fecbe14e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
函数</h2></td></tr>
<tr class="memitem:ac6933d9e8737957642464c3f95a1ed1f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ringbuffer_8h.html#ac6933d9e8737957642464c3f95a1ed1f">ring_buffer_create</a> (<a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *rb, uint8_t *buffer, uint32_t size)</td></tr>
<tr class="separator:ac6933d9e8737957642464c3f95a1ed1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a785acf35f4591302b1e6a6d75fcf8796"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ringbuffer_8h.html#a785acf35f4591302b1e6a6d75fcf8796">ring_buffer_queue</a> (<a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *rb, uint8_t data)</td></tr>
<tr class="separator:a785acf35f4591302b1e6a6d75fcf8796"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9ff68cd3815e3f4febcf2549f01ec3a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ringbuffer_8h.html#aa9ff68cd3815e3f4febcf2549f01ec3a">ring_buffer_queue_arr</a> (<a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *rb, uint8_t *data, <a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a> size)</td></tr>
<tr class="separator:aa9ff68cd3815e3f4febcf2549f01ec3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85120929027b48d5721984eaef34315a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ringbuffer_8h.html#a85120929027b48d5721984eaef34315a">ring_buffer_dequeue</a> (<a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *rb, uint8_t *data)</td></tr>
<tr class="separator:a85120929027b48d5721984eaef34315a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af14e55d88db5c081426d19f04060176e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ringbuffer_8h.html#af14e55d88db5c081426d19f04060176e">ring_buffer_dequeue_arr</a> (<a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *rb, uint8_t *data, <a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a> len)</td></tr>
<tr class="separator:af14e55d88db5c081426d19f04060176e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae32b14648da35feac7f29909d311f001"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ringbuffer_8h.html#ae32b14648da35feac7f29909d311f001">ring_buffer_peek</a> (<a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *rb, uint8_t *data, <a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a> index)</td></tr>
<tr class="separator:ae32b14648da35feac7f29909d311f001"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79688fd678b6e20615c531dae628f769"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ringbuffer_8h.html#a79688fd678b6e20615c531dae628f769">ring_buffer_is_empty</a> (<a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *rb)</td></tr>
<tr class="separator:a79688fd678b6e20615c531dae628f769"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72ab1bc3b28b3359707e4f08e4f675bd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ringbuffer_8h.html#a72ab1bc3b28b3359707e4f08e4f675bd">ring_buffer_is_full</a> (<a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *rb)</td></tr>
<tr class="separator:a72ab1bc3b28b3359707e4f08e4f675bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5c37512a63da73e43c0ef83f7112f3b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ringbuffer_8h.html#ac5c37512a63da73e43c0ef83f7112f3b">ring_buffer_num_items</a> (<a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *rb)</td></tr>
<tr class="separator:ac5c37512a63da73e43c0ef83f7112f3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>Prototypes and structures for the ring buffer module. </p>
<p class="definition">在文件 <a class="el" href="ringbuffer_8h_source.html">ringbuffer.h</a> 中定义.</p>
</div><h2 class="groupheader">类型定义说明</h2>
<a id="a52ec5f4714183db21259b6f7ea22db4e" name="a52ec5f4714183db21259b6f7ea22db4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52ec5f4714183db21259b6f7ea22db4e">&#9670;&#160;</a></span>ring_buffer_size_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uint32_t <a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The size of a ring buffer. Due to the design only <code> RING_BUFFER_SIZE-1 </code> items can be contained in the buffer. The buffer size must be a power of two. The type which is used to hold the size and the indicies of the buffer. Must be able to fit <code>RING_BUFFER_SIZE</code> . </p>
<p class="definition">在文件 <a class="el" href="ringbuffer_8h_source.html">ringbuffer.h</a><a class="el" href="ringbuffer_8h_source.html#l00031">31</a> 行定义.</p>
</div>
</div>
<a id="aa068dc01974e1ba96c43ee09fecbe14e" name="aa068dc01974e1ba96c43ee09fecbe14e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa068dc01974e1ba96c43ee09fecbe14e">&#9670;&#160;</a></span>ring_buffer_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structring__buffer.html">ring_buffer</a> <a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Used as a modulo operator as <code> a % b = (a &amp; (b 1)) </code> where <code>a</code> is a positive index in the buffer and <code>b</code> is the (power of two) size of the buffer. Structure which holds a ring buffer. The buffer contains a buffer array as well as metadata for the ring buffer. </p>
</div>
</div>
<h2 class="groupheader">函数说明</h2>
<a id="ac6933d9e8737957642464c3f95a1ed1f" name="ac6933d9e8737957642464c3f95a1ed1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6933d9e8737957642464c3f95a1ed1f">&#9670;&#160;</a></span>ring_buffer_create()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ring_buffer_create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *&#160;</td>
<td class="paramname"><em>rb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the ring buffer pointed to by <em>buffer</em>. This function can also be used to empty/reset the buffer. </p><dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">buffer</td><td>The ring buffer to initialize. </td></tr>
</table>
</dd>
</dl>
<p class="definition">在文件 <a class="el" href="ringbuffer_8c_source.html">ringbuffer.c</a><a class="el" href="ringbuffer_8c_source.html#l00011">11</a> 行定义.</p>
</div>
</div>
<a id="a85120929027b48d5721984eaef34315a" name="a85120929027b48d5721984eaef34315a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85120929027b48d5721984eaef34315a">&#9670;&#160;</a></span>ring_buffer_dequeue()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a> ring_buffer_dequeue </td>
<td>(</td>
<td class="paramtype"><a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *&#160;</td>
<td class="paramname"><em>rb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the oldest byte in a ring buffer. </p><dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">buffer</td><td>The buffer from which the data should be returned. </td></tr>
<tr><td class="paramname">data</td><td>A pointer to the location at which the data should be placed. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>1 if data was returned; 0 otherwise. </dd></dl>
<p class="definition">在文件 <a class="el" href="ringbuffer_8c_source.html">ringbuffer.c</a><a class="el" href="ringbuffer_8c_source.html#l00050">50</a> 行定义.</p>
</div>
</div>
<a id="af14e55d88db5c081426d19f04060176e" name="af14e55d88db5c081426d19f04060176e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af14e55d88db5c081426d19f04060176e">&#9670;&#160;</a></span>ring_buffer_dequeue_arr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a> ring_buffer_dequeue_arr </td>
<td>(</td>
<td class="paramtype"><a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *&#160;</td>
<td class="paramname"><em>rb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a>&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the <em>len</em> oldest bytes in a ring buffer. </p><dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">buffer</td><td>The buffer from which the data should be returned. </td></tr>
<tr><td class="paramname">data</td><td>A pointer to the array at which the data should be placed. </td></tr>
<tr><td class="paramname">len</td><td>The maximum number of bytes to return. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>The number of bytes returned. </dd></dl>
<p class="definition">在文件 <a class="el" href="ringbuffer_8c_source.html">ringbuffer.c</a><a class="el" href="ringbuffer_8c_source.html#l00063">63</a> 行定义.</p>
</div>
</div>
<a id="a79688fd678b6e20615c531dae628f769" name="a79688fd678b6e20615c531dae628f769"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79688fd678b6e20615c531dae628f769">&#9670;&#160;</a></span>ring_buffer_is_empty()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a> ring_buffer_is_empty </td>
<td>(</td>
<td class="paramtype"><a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *&#160;</td>
<td class="paramname"><em>rb</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns whether a ring buffer is empty. </p><dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">buffer</td><td>The buffer for which it should be returned whether it is empty. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>1 if empty; 0 otherwise. </dd></dl>
<p class="definition">在文件 <a class="el" href="ringbuffer_8h_source.html">ringbuffer.h</a><a class="el" href="ringbuffer_8h_source.html#l00139">139</a> 行定义.</p>
</div>
</div>
<a id="a72ab1bc3b28b3359707e4f08e4f675bd" name="a72ab1bc3b28b3359707e4f08e4f675bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72ab1bc3b28b3359707e4f08e4f675bd">&#9670;&#160;</a></span>ring_buffer_is_full()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a> ring_buffer_is_full </td>
<td>(</td>
<td class="paramtype"><a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *&#160;</td>
<td class="paramname"><em>rb</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns whether a ring buffer is full. </p><dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">buffer</td><td>The buffer for which it should be returned whether it is full. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>1 if full; 0 otherwise. </dd></dl>
<p class="definition">在文件 <a class="el" href="ringbuffer_8h_source.html">ringbuffer.h</a><a class="el" href="ringbuffer_8h_source.html#l00149">149</a> 行定义.</p>
</div>
</div>
<a id="ac5c37512a63da73e43c0ef83f7112f3b" name="ac5c37512a63da73e43c0ef83f7112f3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac5c37512a63da73e43c0ef83f7112f3b">&#9670;&#160;</a></span>ring_buffer_num_items()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a> ring_buffer_num_items </td>
<td>(</td>
<td class="paramtype"><a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *&#160;</td>
<td class="paramname"><em>rb</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of items in a ring buffer. </p><dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">buffer</td><td>The buffer for which the number of items should be returned. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>The number of items in the ring buffer. </dd></dl>
<p class="definition">在文件 <a class="el" href="ringbuffer_8h_source.html">ringbuffer.h</a><a class="el" href="ringbuffer_8h_source.html#l00160">160</a> 行定义.</p>
</div>
</div>
<a id="ae32b14648da35feac7f29909d311f001" name="ae32b14648da35feac7f29909d311f001"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae32b14648da35feac7f29909d311f001">&#9670;&#160;</a></span>ring_buffer_peek()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a> ring_buffer_peek </td>
<td>(</td>
<td class="paramtype"><a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *&#160;</td>
<td class="paramname"><em>rb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a>&#160;</td>
<td class="paramname"><em>index</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Peeks a ring buffer, i.e. returns an element without removing it. </p><dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">buffer</td><td>The buffer from which the data should be returned. </td></tr>
<tr><td class="paramname">data</td><td>A pointer to the location at which the data should be placed. </td></tr>
<tr><td class="paramname">index</td><td>The index to peek. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>1 if data was returned; 0 otherwise. </dd></dl>
<p class="definition">在文件 <a class="el" href="ringbuffer_8c_source.html">ringbuffer.c</a><a class="el" href="ringbuffer_8c_source.html#l00081">81</a> 行定义.</p>
</div>
</div>
<a id="a785acf35f4591302b1e6a6d75fcf8796" name="a785acf35f4591302b1e6a6d75fcf8796"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a785acf35f4591302b1e6a6d75fcf8796">&#9670;&#160;</a></span>ring_buffer_queue()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ring_buffer_queue </td>
<td>(</td>
<td class="paramtype"><a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *&#160;</td>
<td class="paramname"><em>rb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds a byte to a ring buffer. </p><dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">buffer</td><td>The buffer in which the data should be placed. </td></tr>
<tr><td class="paramname">data</td><td>The byte to place. </td></tr>
</table>
</dd>
</dl>
<p class="definition">在文件 <a class="el" href="ringbuffer_8c_source.html">ringbuffer.c</a><a class="el" href="ringbuffer_8c_source.html#l00025">25</a> 行定义.</p>
</div>
</div>
<a id="aa9ff68cd3815e3f4febcf2549f01ec3a" name="aa9ff68cd3815e3f4febcf2549f01ec3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9ff68cd3815e3f4febcf2549f01ec3a">&#9670;&#160;</a></span>ring_buffer_queue_arr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ring_buffer_queue_arr </td>
<td>(</td>
<td class="paramtype"><a class="el" href="ringbuffer_8h.html#aa068dc01974e1ba96c43ee09fecbe14e">ring_buffer_t</a> *&#160;</td>
<td class="paramname"><em>rb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="ringbuffer_8h.html#a52ec5f4714183db21259b6f7ea22db4e">ring_buffer_size_t</a>&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds an array of bytes to a ring buffer. </p><dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramname">buffer</td><td>The buffer in which the data should be placed. </td></tr>
<tr><td class="paramname">data</td><td>A pointer to the array of bytes to place in the queue. </td></tr>
<tr><td class="paramname">size</td><td>The size of the array. </td></tr>
</table>
</dd>
</dl>
<p class="definition">在文件 <a class="el" href="ringbuffer_8c_source.html">ringbuffer.c</a><a class="el" href="ringbuffer_8c_source.html#l00040">40</a> 行定义.</p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
</small></address>
</body>
</html>