saltylab-firmware/lib/DW1000/extras/doc/html/classDW1000Mac.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

409 lines
17 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: DW1000Mac Class 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 class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><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="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classDW1000Mac-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">DW1000Mac Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="DW1000Mac_8h_source.html">DW1000Mac.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a2ce231562de0be4a18ec7612cc8c7055"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a2ce231562de0be4a18ec7612cc8c7055">DW1000Mac</a> (<a class="el" href="classDW1000Device.html">DW1000Device</a> *parent)</td></tr>
<tr class="separator:a2ce231562de0be4a18ec7612cc8c7055"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a909721404f8104f11f6d742109f737db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a909721404f8104f11f6d742109f737db">DW1000Mac</a> ()</td></tr>
<tr class="separator:a909721404f8104f11f6d742109f737db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a293da3de13fab424c05bf7a03f0fb644"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a293da3de13fab424c05bf7a03f0fb644">~DW1000Mac</a> ()</td></tr>
<tr class="separator:a293da3de13fab424c05bf7a03f0fb644"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43d5a523f597d2ba864a7ad22992705d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a43d5a523f597d2ba864a7ad22992705d">setDestinationAddress</a> (byte *destinationAddress)</td></tr>
<tr class="separator:a43d5a523f597d2ba864a7ad22992705d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91c708d29ac3af102d3286f1b0567743"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a91c708d29ac3af102d3286f1b0567743">setDestinationAddressShort</a> (byte *shortDestinationAddress)</td></tr>
<tr class="separator:a91c708d29ac3af102d3286f1b0567743"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac70032280e060369c529893cedaba329"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#ac70032280e060369c529893cedaba329">setSourceAddress</a> (byte *sourceAddress)</td></tr>
<tr class="separator:ac70032280e060369c529893cedaba329"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecf242f46fed339168cab8138d030647"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#aecf242f46fed339168cab8138d030647">setSourceAddressShort</a> (byte *shortSourceAddress)</td></tr>
<tr class="separator:aecf242f46fed339168cab8138d030647"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a437fa0efccbef6bc0a0b627e01bd7631"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a437fa0efccbef6bc0a0b627e01bd7631">generateBlinkFrame</a> (byte frame[], byte sourceAddress[], byte sourceShortAddress[])</td></tr>
<tr class="separator:a437fa0efccbef6bc0a0b627e01bd7631"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f71c8982e0b95e126d2e6fd97c7f686"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a9f71c8982e0b95e126d2e6fd97c7f686">generateShortMACFrame</a> (byte frame[], byte sourceShortAddress[], byte destinationShortAddress[])</td></tr>
<tr class="separator:a9f71c8982e0b95e126d2e6fd97c7f686"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9aa586d9a2f32948c6bdb32fd8060317"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a9aa586d9a2f32948c6bdb32fd8060317">generateLongMACFrame</a> (byte frame[], byte sourceShortAddress[], byte destinationAddress[])</td></tr>
<tr class="separator:a9aa586d9a2f32948c6bdb32fd8060317"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f463c08db2db3c66a1c78cc939b2068"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a2f463c08db2db3c66a1c78cc939b2068">decodeBlinkFrame</a> (byte frame[], byte address[], byte shortAddress[])</td></tr>
<tr class="separator:a2f463c08db2db3c66a1c78cc939b2068"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7858e613a82b01bc30faa4d65ec86970"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a7858e613a82b01bc30faa4d65ec86970">decodeShortMACFrame</a> (byte frame[], byte address[])</td></tr>
<tr class="separator:a7858e613a82b01bc30faa4d65ec86970"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad52462fa07f4130dceccdaa8edb96ebf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#ad52462fa07f4130dceccdaa8edb96ebf">decodeLongMACFrame</a> (byte frame[], byte address[])</td></tr>
<tr class="separator:ad52462fa07f4130dceccdaa8edb96ebf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20763a3a40fa1c9e652486a4ba48c9af"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDW1000Mac.html#a20763a3a40fa1c9e652486a4ba48c9af">incrementSeqNumber</a> ()</td></tr>
<tr class="separator:a20763a3a40fa1c9e652486a4ba48c9af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a2ce231562de0be4a18ec7612cc8c7055"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DW1000Mac::DW1000Mac </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classDW1000Device.html">DW1000Device</a> *&#160;</td>
<td class="paramname"><em>parent</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a909721404f8104f11f6d742109f737db"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DW1000Mac::DW1000Mac </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a293da3de13fab424c05bf7a03f0fb644"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DW1000Mac::~DW1000Mac </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a2f463c08db2db3c66a1c78cc939b2068"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::decodeBlinkFrame </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>frame</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>address</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>shortAddress</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad52462fa07f4130dceccdaa8edb96ebf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::decodeLongMACFrame </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>frame</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>address</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7858e613a82b01bc30faa4d65ec86970"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::decodeShortMACFrame </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>frame</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>address</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a437fa0efccbef6bc0a0b627e01bd7631"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::generateBlinkFrame </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>frame</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>sourceAddress</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>sourceShortAddress</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9aa586d9a2f32948c6bdb32fd8060317"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::generateLongMACFrame </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>frame</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>sourceShortAddress</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>destinationAddress</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9f71c8982e0b95e126d2e6fd97c7f686"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::generateShortMACFrame </td>
<td>(</td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>frame</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>sourceShortAddress</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">byte&#160;</td>
<td class="paramname"><em>destinationShortAddress</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a20763a3a40fa1c9e652486a4ba48c9af"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::incrementSeqNumber </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a43d5a523f597d2ba864a7ad22992705d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::setDestinationAddress </td>
<td>(</td>
<td class="paramtype">byte *&#160;</td>
<td class="paramname"><em>destinationAddress</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a91c708d29ac3af102d3286f1b0567743"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::setDestinationAddressShort </td>
<td>(</td>
<td class="paramtype">byte *&#160;</td>
<td class="paramname"><em>shortDestinationAddress</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac70032280e060369c529893cedaba329"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::setSourceAddress </td>
<td>(</td>
<td class="paramtype">byte *&#160;</td>
<td class="paramname"><em>sourceAddress</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aecf242f46fed339168cab8138d030647"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void DW1000Mac::setSourceAddressShort </td>
<td>(</td>
<td class="paramtype">byte *&#160;</td>
<td class="paramname"><em>shortSourceAddress</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/<a class="el" href="DW1000Mac_8h_source.html">DW1000Mac.h</a></li>
<li>/home/az/Dropbox/work/Arduino/az-z/arduino-dw1000/src/<a class="el" href="DW1000Mac_8cpp.html">DW1000Mac.cpp</a></li>
</ul>
</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>