Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
01e1f04e3This file is pinned to the selected release. Download the original to open it in your design tool.
<!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="en-US">
<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.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>tRacket Sensor: noisemeter-device/UUID/UUID.h Source File</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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.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="projectalign">
<div id="projectname">tRacket Sensor<span id="projectnumber"> 0.2.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_640a2e73a782d0e2711002117fcf2017.html">noisemeter-device</a></li><li class="navelem"><a class="el" href="dir_031aa5b20b29a2b31c526135c1742e33.html">UUID</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">UUID.h</div></div>
</div><!--header-->
<div class="contents">
<a href="UUID_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">//</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">// FILE: UUID.h</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">// AUTHOR: Rob Tillaart</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">// VERSION: 0.1.6</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">// DATE: 2022-06-14</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">// PURPOSE: Arduino Library for generating UUID's</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">// URL: https://github.com/RobTillaart/UUID</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">// https://en.wikipedia.org/wiki/Universally_unique_identifier</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">//</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">// e.g. 20d24650-d900-e34f-de49-8964ab3eb46d</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include "Arduino.h"</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include "Printable.h"</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include <cstddef></span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include <cstdint></span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#define UUID_LIB_VERSION (F("0.1.6"))</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment">// TODO an enum?</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">const</span> uint8_t UUID_MODE_VARIANT4 = 0;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="keyword">const</span> uint8_t UUID_MODE_RANDOM = 1;</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment">//</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment">// CLASS VERSION</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="comment">//</span></div>
<div class="foldopen" id="foldopen00034" data-start="{" data-end="};">
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="classUUID.html"> 34</a></span><span class="keyword">class </span><a class="code hl_class" href="classUUID.html">UUID</a> : <span class="keyword">public</span> Printable</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>{</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classUUID.html#ae6b2084b43d0b3204e1ac53f64b0ce72"> 42</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classUUID.html#ae6b2084b43d0b3204e1ac53f64b0ce72">UUID</a>(uint32_t s1 = 1, uint32_t s2 = 2);</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="classUUID.html#a87c47dec2a3745c773b56e381b29b65e"> 45</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classUUID.html#a87c47dec2a3745c773b56e381b29b65e">generate</a>();</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="classUUID.html#a239889c1d302c9edb2207f41a2788b83"> 50</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code hl_function" href="classUUID.html#a239889c1d302c9edb2207f41a2788b83">toCharArray</a>() <span class="keyword">const</span>;</div>
<div class="foldopen" id="foldopen00054" data-start="{" data-end="}">
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="classUUID.html#a5118291e77ff22458c00c8d6571d551c"> 54</a></span> <span class="keyword">operator</span> String()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classUUID.html#a239889c1d302c9edb2207f41a2788b83">toCharArray</a>();</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> }</div>
</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="comment">// MODE</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="classUUID.html#aac3161f2aa1475b4a1d7961b71408926"> 60</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classUUID.html#aac3161f2aa1475b4a1d7961b71408926">setVariant4Mode</a>();</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="classUUID.html#a72e31e5f86d348b180cad6feecd4a576"> 62</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classUUID.html#a72e31e5f86d348b180cad6feecd4a576">setRandomMode</a>();</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="classUUID.html#a9ea8e1cb6a5c5e6c9c8687b5b4091091"> 64</a></span> uint8_t <a class="code hl_function" href="classUUID.html#a9ea8e1cb6a5c5e6c9c8687b5b4091091">getMode</a>();</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="classUUID.html#a2b74b09bc835d6a77619e4e08e734d06"> 67</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classUUID.html#a2b74b09bc835d6a77619e4e08e734d06">printTo</a>(Print& p) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// CASE</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="comment">// (experimental code, not tested yet)</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="comment">// lower case is default and according to spec.</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="comment">// upper case is an additional feature.</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// must it be done at generation or at toCharArray() ?</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// fast or flex</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="comment">//</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="comment">// void setLowerCase();</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="comment">// void setUpperCase();</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// Marsaglia 'constants' + function</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> uint32_t _m_w;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> uint32_t _m_z;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> uint32_t _random();</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="comment">// UUID in string format</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordtype">char</span> _buffer[37];</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> uint8_t _mode = UUID_MODE_VARIANT4;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// bool _upperCase = false;</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span>};</div>
</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> </div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="comment">// -- END OF FILE --</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="ttc" id="aclassUUID_html"><div class="ttname"><a href="classUUID.html">UUID</a></div><div class="ttdef"><b>Definition</b> <a href="UUID_8h_source.html#l00034">UUID.h:35</a></div></div>
<div class="ttc" id="aclassUUID_html_a239889c1d302c9edb2207f41a2788b83"><div class="ttname"><a href="classUUID.html#a239889c1d302c9edb2207f41a2788b83">UUID::toCharArray</a></div><div class="ttdeci">const char * toCharArray() const</div><div class="ttdoc">Make a UUID string.</div></div>
<div class="ttc" id="aclassUUID_html_a2b74b09bc835d6a77619e4e08e734d06"><div class="ttname"><a href="classUUID.html#a2b74b09bc835d6a77619e4e08e734d06">UUID::printTo</a></div><div class="ttdeci">size_t printTo(Print &p) const</div><div class="ttdoc">Printable interface.</div></div>
<div class="ttc" id="aclassUUID_html_a72e31e5f86d348b180cad6feecd4a576"><div class="ttname"><a href="classUUID.html#a72e31e5f86d348b180cad6feecd4a576">UUID::setRandomMode</a></div><div class="ttdeci">void setRandomMode()</div><div class="ttdoc">Sets UUID generation to Random mode.</div></div>
<div class="ttc" id="aclassUUID_html_a87c47dec2a3745c773b56e381b29b65e"><div class="ttname"><a href="classUUID.html#a87c47dec2a3745c773b56e381b29b65e">UUID::generate</a></div><div class="ttdeci">void generate()</div><div class="ttdoc">Generate a new UUID.</div></div>
<div class="ttc" id="aclassUUID_html_a9ea8e1cb6a5c5e6c9c8687b5b4091091"><div class="ttname"><a href="classUUID.html#a9ea8e1cb6a5c5e6c9c8687b5b4091091">UUID::getMode</a></div><div class="ttdeci">uint8_t getMode()</div><div class="ttdoc">Get the current generation mode.</div></div>
<div class="ttc" id="aclassUUID_html_aac3161f2aa1475b4a1d7961b71408926"><div class="ttname"><a href="classUUID.html#aac3161f2aa1475b4a1d7961b71408926">UUID::setVariant4Mode</a></div><div class="ttdeci">void setVariant4Mode()</div><div class="ttdoc">Sets UUID generation to Variant4 mode.</div></div>
<div class="ttc" id="aclassUUID_html_ae6b2084b43d0b3204e1ac53f64b0ce72"><div class="ttname"><a href="classUUID.html#ae6b2084b43d0b3204e1ac53f64b0ce72">UUID::UUID</a></div><div class="ttdeci">UUID(uint32_t s1=1, uint32_t s2=2)</div><div class="ttdoc">Generates a new UUID using the given seeds.</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>