Files
M5Unit-NFC/nfca_8cpp.html

243 lines
19 KiB
HTML

<!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.11.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>M5Unit-NFC: src/nfc/a/nfca.cpp 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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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">M5Unit-NFC<span id="projectnumber">&#160;0.0.3 git rev:59f5362</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.11.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('nfca_8cpp.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- 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 class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">nfca.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>NFC-A definitions.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="nfca_8hpp_source.html">nfca.hpp</a>&quot;</code><br />
<code>#include &lt;M5Utility.hpp&gt;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacem5.html">m5</a></td></tr>
<tr class="memdesc:namespacem5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Top level namespace of M5stack. <br /></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="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a9de505e4515436fb3b2ab99ffd6d1fc0" id="r_a9de505e4515436fb3b2ab99ffd6d1fc0"><td class="memItemLeft" align="right" valign="top"><a id="a9de505e4515436fb3b2ab99ffd6d1fc0" name="a9de505e4515436fb3b2ab99ffd6d1fc0"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>m5::nfc::a::get_number_of_blocks</b> (const <a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a> t)</td></tr>
<tr class="memdesc:a9de505e4515436fb3b2ab99ffd6d1fc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of blocks. <br /></td></tr>
<tr class="separator:a9de505e4515436fb3b2ab99ffd6d1fc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90f81b2afbf160114f08f351e7b6c16f" id="r_a90f81b2afbf160114f08f351e7b6c16f"><td class="memItemLeft" align="right" valign="top"><a id="a90f81b2afbf160114f08f351e7b6c16f" name="a90f81b2afbf160114f08f351e7b6c16f"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>m5::nfc::a::get_number_of_user_blocks</b> (const <a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a> t)</td></tr>
<tr class="memdesc:a90f81b2afbf160114f08f351e7b6c16f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of user blocks. <br /></td></tr>
<tr class="separator:a90f81b2afbf160114f08f351e7b6c16f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad24687ca20e8b303110f5bd6b399263" id="r_aad24687ca20e8b303110f5bd6b399263"><td class="memItemLeft" align="right" valign="top"><a id="aad24687ca20e8b303110f5bd6b399263" name="aad24687ca20e8b303110f5bd6b399263"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>m5::nfc::a::get_user_area_size</b> (const <a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a> t)</td></tr>
<tr class="memdesc:aad24687ca20e8b303110f5bd6b399263"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the user area bytes. <br /></td></tr>
<tr class="separator:aad24687ca20e8b303110f5bd6b399263"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e93f331f794cfd3ec5e1c7115e7bef5" id="r_a3e93f331f794cfd3ec5e1c7115e7bef5"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3e93f331f794cfd3ec5e1c7115e7bef5">m5::nfc::a::get_unit_size</a> (const <a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a> t)</td></tr>
<tr class="memdesc:a3e93f331f794cfd3ec5e1c7115e7bef5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the unit size of 1 block / 1 page. <br /></td></tr>
<tr class="separator:a3e93f331f794cfd3ec5e1c7115e7bef5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a676326bf06691aca5ec34684cb005d67" id="r_a676326bf06691aca5ec34684cb005d67"><td class="memItemLeft" align="right" valign="top"><a id="a676326bf06691aca5ec34684cb005d67" name="a676326bf06691aca5ec34684cb005d67"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>m5::nfc::a::get_number_of_sectors</b> (const <a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a> t)</td></tr>
<tr class="memdesc:a676326bf06691aca5ec34684cb005d67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of sectors. <br /></td></tr>
<tr class="separator:a676326bf06691aca5ec34684cb005d67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1221607496388f9a78ea472230e68ba" id="r_af1221607496388f9a78ea472230e68ba"><td class="memItemLeft" align="right" valign="top"><a id="af1221607496388f9a78ea472230e68ba" name="af1221607496388f9a78ea472230e68ba"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>m5::nfc::a::get_first_user_block</b> (const <a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a> t)</td></tr>
<tr class="memdesc:af1221607496388f9a78ea472230e68ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the first user area block. <br /></td></tr>
<tr class="separator:af1221607496388f9a78ea472230e68ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56472040cbc607773f2dd4d64e7ad3d3" id="r_a56472040cbc607773f2dd4d64e7ad3d3"><td class="memItemLeft" align="right" valign="top"><a id="a56472040cbc607773f2dd4d64e7ad3d3" name="a56472040cbc607773f2dd4d64e7ad3d3"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>m5::nfc::a::get_last_user_block</b> (const <a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a> t)</td></tr>
<tr class="memdesc:a56472040cbc607773f2dd4d64e7ad3d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the last user area block. <br /></td></tr>
<tr class="separator:a56472040cbc607773f2dd4d64e7ad3d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5568cdfb2f1c3f2e8b866a504615de6" id="r_ad5568cdfb2f1c3f2e8b866a504615de6"><td class="memItemLeft" align="right" valign="top"><a id="ad5568cdfb2f1c3f2e8b866a504615de6" name="ad5568cdfb2f1c3f2e8b866a504615de6"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>m5::nfc::a::is_user_block</b> (const <a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a> t, const uint16_t block)</td></tr>
<tr class="memdesc:ad5568cdfb2f1c3f2e8b866a504615de6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is block user area? <br /></td></tr>
<tr class="separator:ad5568cdfb2f1c3f2e8b866a504615de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f4eb62eb93a95c6f3d8a82ffc1dfa8a" id="r_a5f4eb62eb93a95c6f3d8a82ffc1dfa8a"><td class="memItemLeft" align="right" valign="top"><a id="a5f4eb62eb93a95c6f3d8a82ffc1dfa8a" name="a5f4eb62eb93a95c6f3d8a82ffc1dfa8a"></a>
<a class="el" href="nfc_8hpp.html#a14c7cd97b5b6e6bef9a0485ee5b430a3">file_system_feature_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m5::nfc::a::get_file_system_feature</b> (const <a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a> t)</td></tr>
<tr class="memdesc:a5f4eb62eb93a95c6f3d8a82ffc1dfa8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get file system fearure bits. <br /></td></tr>
<tr class="separator:a5f4eb62eb93a95c6f3d8a82ffc1dfa8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba956d86d9cb908086a4e3b3b55b8bd6" id="r_aba956d86d9cb908086a4e3b3b55b8bd6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aba956d86d9cb908086a4e3b3b55b8bd6">m5::nfc::a::sak_to_type</a> (const uint8_t sak)</td></tr>
<tr class="memdesc:aba956d86d9cb908086a4e3b3b55b8bd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inferring the type from SAK. <br /></td></tr>
<tr class="separator:aba956d86d9cb908086a4e3b3b55b8bd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c36af0eeed9f0cae6f19adeaac0522b" id="r_a1c36af0eeed9f0cae6f19adeaac0522b"><td class="memItemLeft" align="right" valign="top"><a id="a1c36af0eeed9f0cae6f19adeaac0522b" name="a1c36af0eeed9f0cae6f19adeaac0522b"></a>
<a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m5::nfc::a::version3_to_type</b> (const uint8_t info[8])</td></tr>
<tr class="memdesc:a1c36af0eeed9f0cae6f19adeaac0522b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inferring the type from GetVersion L3. <br /></td></tr>
<tr class="separator:a1c36af0eeed9f0cae6f19adeaac0522b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a897ff51a5eccfd505aeec8f2c66c7e31" id="r_a897ff51a5eccfd505aeec8f2c66c7e31"><td class="memItemLeft" align="right" valign="top"><a id="a897ff51a5eccfd505aeec8f2c66c7e31" name="a897ff51a5eccfd505aeec8f2c66c7e31"></a>
<a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m5::nfc::a::version4_to_type</b> (uint8_t &amp;sub, const uint8_t info[8])</td></tr>
<tr class="memdesc:a897ff51a5eccfd505aeec8f2c66c7e31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inferring the type from GetVersion L4. <br /></td></tr>
<tr class="separator:a897ff51a5eccfd505aeec8f2c66c7e31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada4876b0d15c060036b8f88ee1e81297" id="r_ada4876b0d15c060036b8f88ee1e81297"><td class="memItemLeft" align="right" valign="top"><a id="ada4876b0d15c060036b8f88ee1e81297" name="ada4876b0d15c060036b8f88ee1e81297"></a>
<a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m5::nfc::a::historical_bytes_to_type</b> (uint8_t &amp;sub, const uint16_t atqa, const uint8_t sak, const uint8_t *bytes, const uint8_t len)</td></tr>
<tr class="memdesc:ada4876b0d15c060036b8f88ee1e81297"><td class="mdescLeft">&#160;</td><td class="mdescRight">Historical bytes to type. <br /></td></tr>
<tr class="separator:ada4876b0d15c060036b8f88ee1e81297"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf8a3d3a8f2d6c01750bc4b7b99a9472" id="r_acf8a3d3a8f2d6c01750bc4b7b99a9472"><td class="memItemLeft" align="right" valign="top"><a id="acf8a3d3a8f2d6c01750bc4b7b99a9472" name="acf8a3d3a8f2d6c01750bc4b7b99a9472"></a>
const uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>m5::nfc::a::get_version3_response</b> (const <a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a> t)</td></tr>
<tr class="memdesc:acf8a3d3a8f2d6c01750bc4b7b99a9472"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the <a class="el" href="nfca_8hpp.html#a1a21e28554c0dc7d49466fff910e90aca3e4d39d03ce99d4daaab3749af67ff13" title="NTAG 21x/UL EV1,Nano Gets the version information.">GET_VERSION(L3)</a> response for emulation. <br /></td></tr>
<tr class="separator:acf8a3d3a8f2d6c01750bc4b7b99a9472"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f00ebbaee2d5c4267682a346251feaa" id="r_a2f00ebbaee2d5c4267682a346251feaa"><td class="memItemLeft" align="right" valign="top"><a id="a2f00ebbaee2d5c4267682a346251feaa" name="a2f00ebbaee2d5c4267682a346251feaa"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>m5::nfc::a::calculate_bcc8</b> (const uint8_t *data, const uint32_t len)</td></tr>
<tr class="memdesc:a2f00ebbaee2d5c4267682a346251feaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate bcc8. <br /></td></tr>
<tr class="separator:a2f00ebbaee2d5c4267682a346251feaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b812e490b87a87814c33bb3f3b64904" id="r_a2b812e490b87a87814c33bb3f3b64904"><td class="memItemLeft" align="right" valign="top"><a id="a2b812e490b87a87814c33bb3f3b64904" name="a2b812e490b87a87814c33bb3f3b64904"></a>
<a class="el" href="nfc_8hpp.html#a952a1a2c9c08aa278d2aadafe02a5cd1">m5::nfc::NFCForumTag</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m5::nfc::a::get_nfc_forum_tag_type</b> (const <a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a> t)</td></tr>
<tr class="memdesc:a2b812e490b87a87814c33bb3f3b64904"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get NFC Forum Tag Type from <a class="el" href="structm5_1_1nfc_1_1a_1_1_p_i_c_c.html" title="PICC for NFC-A.">PICC</a> type. <br /></td></tr>
<tr class="separator:a2b812e490b87a87814c33bb3f3b64904"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>NFC-A definitions. </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a3e93f331f794cfd3ec5e1c7115e7bef5" name="a3e93f331f794cfd3ec5e1c7115e7bef5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e93f331f794cfd3ec5e1c7115e7bef5">&#9670;&#160;</a></span>get_unit_size()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t m5::nfc::a::get_unit_size </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a></td> <td class="paramname"><span class="paramname"><em>t</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the unit size of 1 block / 1 page. </p>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">!=</td><td>0 Unit size </td></tr>
<tr><td class="paramname">==</td><td>0 Does not have a unit size </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aba956d86d9cb908086a4e3b3b55b8bd6" name="aba956d86d9cb908086a4e3b3b55b8bd6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba956d86d9cb908086a4e3b3b55b8bd6">&#9670;&#160;</a></span>sak_to_type()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="nfca_8hpp.html#ab84bb90cd0fe7b0457f4d2a7969da0d9">Type</a> m5::nfc::a::sak_to_type </td>
<td>(</td>
<td class="paramtype">const uint8_t</td> <td class="paramname"><span class="paramname"><em>sak</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Inferring the type from SAK. </p>
<dl class="section return"><dt>Returns</dt><dd>Type </dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>This is a preliminary diagnosis, a more accurate diagnosis is required </dd></dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_59410e1461a4f8107dcbc9b19538c327.html">nfc</a></li><li class="navelem"><a class="el" href="dir_f85cf2582a8a5aef89f310f924dcae95.html">a</a></li><li class="navelem"><a class="el" href="nfca_8cpp.html">nfca.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.11.0 </li>
</ul>
</div>
</body>
</html>