saltylab-firmware/lib/DW1000/extras/doc/html/DW1000Ranging_8h.html
salty ed1542ae11 feat: rewrite UWB firmware for DW1000 (all 3 boards)
Anchor (esp32/uwb_anchor):
- DW1000Ranging library (200m range, MODE_LONGDATA_RANGE_ACCURACY)
- Unique addresses per anchor (anchor0/anchor1 build envs)
- +RANGE output: anchor_id, tag_addr, range_mm, rssi
- ESP-NOW receiver: forwards tag packets + priority E-STOP to Jetson
- AT+ID? command

Tag with Display (esp32/uwb_tag):
- DW1000Ranging as tag, auto-discovers anchors
- SSD1306 OLED: big distance, per-anchor ranges, RSSI bars, link status
- ESP-NOW broadcast: range/heartbeat/estop packets
- E-Stop on GPIO 0 (BOOT button), 10Hz TX while held
- Display at 5Hz, ranging driven by DW1000Ranging.loop()

Shared:
- lib/DW1000/ extracted from mf_DW1000.zip (Makerfabs fork)
- lib_extra_dirs for PlatformIO to find local library
2026-03-14 12:30:26 -04:00

340 lines
16 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Arduino driver library for Decawave DW1000: /home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/DW1000Ranging.h File Reference</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>
<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 style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino driver library for Decawave DW1000
&#160;<span id="projectnumber">Dec 20 2016</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">DW1000Ranging.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="DW1000_8h_source.html">DW1000.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="DW1000Time_8h_source.html">DW1000Time.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="DW1000Device_8h_source.html">DW1000Device.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="DW1000Mac_8h_source.html">DW1000Mac.h</a>&quot;</code><br />
</div>
<p><a href="DW1000Ranging_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</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 name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a31a318f1fa3824e23ca602dde126e0f4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a31a318f1fa3824e23ca602dde126e0f4">POLL</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a31a318f1fa3824e23ca602dde126e0f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1b866ba00b0b59bca428facb47111f2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#ad1b866ba00b0b59bca428facb47111f2">POLL_ACK</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ad1b866ba00b0b59bca428facb47111f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac04dd0afaf7ea3eb2ade2544d2d5f907"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#ac04dd0afaf7ea3eb2ade2544d2d5f907">RANGE</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ac04dd0afaf7ea3eb2ade2544d2d5f907"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ef494c3427e5b067ab25a3af6712cd3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a8ef494c3427e5b067ab25a3af6712cd3">RANGE_REPORT</a>&#160;&#160;&#160;3</td></tr>
<tr class="separator:a8ef494c3427e5b067ab25a3af6712cd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab16290e97ab409e88c6448d78facaf15"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#ab16290e97ab409e88c6448d78facaf15">RANGE_FAILED</a>&#160;&#160;&#160;255</td></tr>
<tr class="separator:ab16290e97ab409e88c6448d78facaf15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38eec52a7dccb94ff563e30eda32c891"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a38eec52a7dccb94ff563e30eda32c891">BLINK</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:a38eec52a7dccb94ff563e30eda32c891"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5e94088b39039c6b0830ca1a15ba1cc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#aa5e94088b39039c6b0830ca1a15ba1cc">RANGING_INIT</a>&#160;&#160;&#160;5</td></tr>
<tr class="separator:aa5e94088b39039c6b0830ca1a15ba1cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20e49049e1f8257c69c633f2781b2f03"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a20e49049e1f8257c69c633f2781b2f03">LEN_DATA</a>&#160;&#160;&#160;90</td></tr>
<tr class="separator:a20e49049e1f8257c69c633f2781b2f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e132cfaa78353e3af1474a86b2dd535"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a4e132cfaa78353e3af1474a86b2dd535">MAX_DEVICES</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:a4e132cfaa78353e3af1474a86b2dd535"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20243a347c78f90547b2759e8061c60e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a20243a347c78f90547b2759e8061c60e">DEFAULT_RST_PIN</a>&#160;&#160;&#160;9</td></tr>
<tr class="separator:a20243a347c78f90547b2759e8061c60e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f51f457e4bffd56632c8e25b9d0d8fd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a7f51f457e4bffd56632c8e25b9d0d8fd">DEFAULT_SPI_SS_PIN</a>&#160;&#160;&#160;10</td></tr>
<tr class="separator:a7f51f457e4bffd56632c8e25b9d0d8fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a256da093f3cef695d153808745562ff4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a256da093f3cef695d153808745562ff4">DEFAULT_RESET_PERIOD</a>&#160;&#160;&#160;200</td></tr>
<tr class="separator:a256da093f3cef695d153808745562ff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33bf8c7e717a0c67d4e767bfc76a4f8b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a33bf8c7e717a0c67d4e767bfc76a4f8b">DEFAULT_REPLY_DELAY_TIME</a>&#160;&#160;&#160;7000</td></tr>
<tr class="separator:a33bf8c7e717a0c67d4e767bfc76a4f8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc3d101f633a076cc1ca84b85b6224b2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#afc3d101f633a076cc1ca84b85b6224b2">TAG</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:afc3d101f633a076cc1ca84b85b6224b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4f4f475d870788649ecd1b2c23c76e1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#aa4f4f475d870788649ecd1b2c23c76e1">ANCHOR</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:aa4f4f475d870788649ecd1b2c23c76e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dad71f05e84e9e47a69467b8a3a2551"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#a8dad71f05e84e9e47a69467b8a3a2551">DEFAULT_TIMER_DELAY</a>&#160;&#160;&#160;80</td></tr>
<tr class="separator:a8dad71f05e84e9e47a69467b8a3a2551"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#ad72dbcf6d0153db1b8d8a58001feed83">DEBUG</a>&#160;&#160;&#160;false</td></tr>
<tr class="separator:ad72dbcf6d0153db1b8d8a58001feed83"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ab57327c978e98522ccdfbb8f22ffde14"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DW1000Ranging_8h.html#ab57327c978e98522ccdfbb8f22ffde14">DW1000Ranging</a></td></tr>
<tr class="separator:ab57327c978e98522ccdfbb8f22ffde14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="aa4f4f475d870788649ecd1b2c23c76e1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ANCHOR&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a38eec52a7dccb94ff563e30eda32c891"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define BLINK&#160;&#160;&#160;4</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad72dbcf6d0153db1b8d8a58001feed83"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEBUG&#160;&#160;&#160;false</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a33bf8c7e717a0c67d4e767bfc76a4f8b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFAULT_REPLY_DELAY_TIME&#160;&#160;&#160;7000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a256da093f3cef695d153808745562ff4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFAULT_RESET_PERIOD&#160;&#160;&#160;200</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a20243a347c78f90547b2759e8061c60e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFAULT_RST_PIN&#160;&#160;&#160;9</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7f51f457e4bffd56632c8e25b9d0d8fd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFAULT_SPI_SS_PIN&#160;&#160;&#160;10</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8dad71f05e84e9e47a69467b8a3a2551"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEFAULT_TIMER_DELAY&#160;&#160;&#160;80</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a20e49049e1f8257c69c633f2781b2f03"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LEN_DATA&#160;&#160;&#160;90</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a4e132cfaa78353e3af1474a86b2dd535"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MAX_DEVICES&#160;&#160;&#160;4</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a31a318f1fa3824e23ca602dde126e0f4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define POLL&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad1b866ba00b0b59bca428facb47111f2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define POLL_ACK&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac04dd0afaf7ea3eb2ade2544d2d5f907"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define RANGE&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ab16290e97ab409e88c6448d78facaf15"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define RANGE_FAILED&#160;&#160;&#160;255</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8ef494c3427e5b067ab25a3af6712cd3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define RANGE_REPORT&#160;&#160;&#160;3</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa5e94088b39039c6b0830ca1a15ba1cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define RANGING_INIT&#160;&#160;&#160;5</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="afc3d101f633a076cc1ca84b85b6224b2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define TAG&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="ab57327c978e98522ccdfbb8f22ffde14"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classDW1000RangingClass.html">DW1000RangingClass</a> DW1000Ranging</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Dec 20 2016 01:32:18 for Arduino driver library for Decawave DW1000 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>