mm-iot-sdk/framework/doc/html/group__MMPING.html
Morse Micro 4f4eb7fc7a Morse Micro MM-IoT-SDK release 2.9.7
This commit introduces version 2.9.7 of the Morse Micro MM-IoT-SDK
for ARM microcontroller base platforms.
2025-10-04 02:04:28 +10:00

437 lines
27 KiB
HTML

<!-- HTML header for doxygen 1.8.17-->
<!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">
<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.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Morse Micro IoT SDK: Morse Micro Ping</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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" />
<link href="style.css" rel="stylesheet" type="text/css"/>
<link rel="shortcut icon" href="favicon.svg" />
</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="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Morse Micro IoT SDK
&#160;<span id="projectnumber">2.9.7</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(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 */
$(document).ready(function(){initNavTree('group__MMPING.html',''); initResizable(); });
/* @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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">Morse Micro Ping<div class="ingroups"><a class="el" href="group__MMAPP.html">Application Layer Protocol APIs</a></div></div></div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p >This is the ICMP echo (ping) request implementation. </p>
<p >This implementation is designed to be similar to Unix ping, but differs from it in some respects.</p>
<p >The behavior of this ping implementation is as follows:</p>
<ul>
<li>A ping request will be sent. The time for the next ping request is calculated as the current time plus the given ping interval.</li>
<li>If the ping response is not received within the ping retry timeout (see below for details) then it the ping request will be retransmitted. This will be repeated up to <code>MMPING_MAX_RETRIES</code> times.</li>
<li>If <code>MMPING_MAX_RETRIES</code> is exceeded or a valid ping reply is received then ping will wait until the next ping request time calculated above before proceeding to send the next ping request. If this time has already elapsed then the next ping request will be sent immediately.</li>
</ul>
<p >The ping retry timeout is calculated as the 2 times average RTT if one or more ping responses have been received, otherwise it will be <code>MMPING_INITIAL_RETRY_INTERVAL_MS</code>. </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</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="structmmping__args.html">mmping_args</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ping request arguments data structure. <a href="structmmping__args.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmmping__stats.html">mmping_stats</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data structure to store ping results. <a href="structmmping__stats.html#details">More...</a><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="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gac0256714b83af7c59367940364370134"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMPING.html#gac0256714b83af7c59367940364370134">MMPING_DEFAULT_PING_INTERVAL_MS</a>&#160;&#160;&#160;(1000)</td></tr>
<tr class="memdesc:gac0256714b83af7c59367940364370134"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default time interval in milliseconds between ping requests. <a href="group__MMPING.html#gac0256714b83af7c59367940364370134">More...</a><br /></td></tr>
<tr class="separator:gac0256714b83af7c59367940364370134"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52e4a091dd7517c9e89182c0b8b8e3d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMPING.html#ga52e4a091dd7517c9e89182c0b8b8e3d5">MMPING_DEFAULT_PING_COUNT</a>&#160;&#160;&#160;(0)</td></tr>
<tr class="memdesc:ga52e4a091dd7517c9e89182c0b8b8e3d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default max count for ping request to run forever. <a href="group__MMPING.html#ga52e4a091dd7517c9e89182c0b8b8e3d5">More...</a><br /></td></tr>
<tr class="separator:ga52e4a091dd7517c9e89182c0b8b8e3d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d4fb9b757737a3f553ec636aa53a43b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMPING.html#ga2d4fb9b757737a3f553ec636aa53a43b">MMPING_DEFAULT_DATA_SIZE</a>&#160;&#160;&#160;(56)</td></tr>
<tr class="memdesc:ga2d4fb9b757737a3f553ec636aa53a43b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default ping data packet size in bytes, excluding ICMP header. <a href="group__MMPING.html#ga2d4fb9b757737a3f553ec636aa53a43b">More...</a><br /></td></tr>
<tr class="separator:ga2d4fb9b757737a3f553ec636aa53a43b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae757ea2d13e654679a32fb3c61e09f16"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMPING.html#gae757ea2d13e654679a32fb3c61e09f16">MMPING_MIN_DATA_SIZE</a>&#160;&#160;&#160;(8)</td></tr>
<tr class="memdesc:gae757ea2d13e654679a32fb3c61e09f16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum data size of ping request packet excluding ICMP header. <a href="group__MMPING.html#gae757ea2d13e654679a32fb3c61e09f16">More...</a><br /></td></tr>
<tr class="separator:gae757ea2d13e654679a32fb3c61e09f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga540a0220bfc4adc757c86f2fa308d122"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMPING.html#ga540a0220bfc4adc757c86f2fa308d122">MMPING_MAX_DATA_SIZE</a>&#160;&#160;&#160;(1500)</td></tr>
<tr class="memdesc:ga540a0220bfc4adc757c86f2fa308d122"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum data size of ping request packet excluding ICMP header. <a href="group__MMPING.html#ga540a0220bfc4adc757c86f2fa308d122">More...</a><br /></td></tr>
<tr class="separator:ga540a0220bfc4adc757c86f2fa308d122"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga254e66798de6a997c858735bd6e28fd7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMPING.html#ga254e66798de6a997c858735bd6e28fd7">MMPING_MAX_COUNT</a>&#160;&#160;&#160;(0xffff)</td></tr>
<tr class="memdesc:ga254e66798de6a997c858735bd6e28fd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of pings before terminating. <a href="group__MMPING.html#ga254e66798de6a997c858735bd6e28fd7">More...</a><br /></td></tr>
<tr class="separator:ga254e66798de6a997c858735bd6e28fd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab69f28f49acf866210a7496336fc714f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMPING.html#gab69f28f49acf866210a7496336fc714f">MMPING_MAX_RETRIES</a>&#160;&#160;&#160;(2)</td></tr>
<tr class="memdesc:gab69f28f49acf866210a7496336fc714f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of times to retransmit a ping request before giving up and moving on. <a href="group__MMPING.html#gab69f28f49acf866210a7496336fc714f">More...</a><br /></td></tr>
<tr class="separator:gab69f28f49acf866210a7496336fc714f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91d1340ac84b226542c403c4da8f78fe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMPING.html#ga91d1340ac84b226542c403c4da8f78fe">MMPING_INITIAL_RETRY_INTERVAL_MS</a>&#160;&#160;&#160;(1000)</td></tr>
<tr class="memdesc:ga91d1340ac84b226542c403c4da8f78fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rate at which to retry unacknowledged ping requests when the RTT is not known. <a href="group__MMPING.html#ga91d1340ac84b226542c403c4da8f78fe">More...</a><br /></td></tr>
<tr class="separator:ga91d1340ac84b226542c403c4da8f78fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3172770a93cb8d1efe18b8481e5a3426"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMPING.html#ga3172770a93cb8d1efe18b8481e5a3426">MMPING_IPADDR_MAXLEN</a>&#160;&#160;&#160;(48)</td></tr>
<tr class="memdesc:ga3172770a93cb8d1efe18b8481e5a3426"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum length of an IP address string including null-terminator. <a href="group__MMPING.html#ga3172770a93cb8d1efe18b8481e5a3426">More...</a><br /></td></tr>
<tr class="separator:ga3172770a93cb8d1efe18b8481e5a3426"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga72edb7cc0c5bfdf561fabae045185bfc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMPING.html#ga72edb7cc0c5bfdf561fabae045185bfc">MMPING_ICMP_ECHO_HDR_LEN</a>&#160;&#160;&#160;(8)</td></tr>
<tr class="memdesc:ga72edb7cc0c5bfdf561fabae045185bfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Length of the ICMP echo header in octets. <a href="group__MMPING.html#ga72edb7cc0c5bfdf561fabae045185bfc">More...</a><br /></td></tr>
<tr class="separator:ga72edb7cc0c5bfdf561fabae045185bfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd81e1f6fad2ac9ee8fcecb82e590437"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMPING.html#gacd81e1f6fad2ac9ee8fcecb82e590437">MMPING_ARGS_DEFAULT</a></td></tr>
<tr class="memdesc:gacd81e1f6fad2ac9ee8fcecb82e590437"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializer for <a class="el" href="structmmping__args.html">mmping_args</a>. <a href="group__MMPING.html#gacd81e1f6fad2ac9ee8fcecb82e590437">More...</a><br /></td></tr>
<tr class="separator:gacd81e1f6fad2ac9ee8fcecb82e590437"><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:ga8f61fdb1c81111b1e1bddb86b24f8748"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMPING.html#ga8f61fdb1c81111b1e1bddb86b24f8748">mmping_start</a> (const struct <a class="el" href="structmmping__args.html">mmping_args</a> *args)</td></tr>
<tr class="memdesc:ga8f61fdb1c81111b1e1bddb86b24f8748"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize ping parameters and start ping. <a href="group__MMPING.html#ga8f61fdb1c81111b1e1bddb86b24f8748">More...</a><br /></td></tr>
<tr class="separator:ga8f61fdb1c81111b1e1bddb86b24f8748"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2ff6609dfdce3a7cb6b195a466d08148"><td class="memItemLeft" align="right" valign="top"><a id="ga2ff6609dfdce3a7cb6b195a466d08148" name="ga2ff6609dfdce3a7cb6b195a466d08148"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>mmping_stop</b> (void)</td></tr>
<tr class="memdesc:ga2ff6609dfdce3a7cb6b195a466d08148"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop any running ping request. <br /></td></tr>
<tr class="separator:ga2ff6609dfdce3a7cb6b195a466d08148"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0da18e20fa90116a82e6267c7c89ccd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMPING.html#gad0da18e20fa90116a82e6267c7c89ccd">mmping_stats</a> (struct <a class="el" href="structmmping__stats.html">mmping_stats</a> *stats)</td></tr>
<tr class="memdesc:gad0da18e20fa90116a82e6267c7c89ccd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get Ping Statistics. <a href="group__MMPING.html#gad0da18e20fa90116a82e6267c7c89ccd">More...</a><br /></td></tr>
<tr class="separator:gad0da18e20fa90116a82e6267c7c89ccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gacd81e1f6fad2ac9ee8fcecb82e590437" name="gacd81e1f6fad2ac9ee8fcecb82e590437"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacd81e1f6fad2ac9ee8fcecb82e590437">&#9670;&nbsp;</a></span>MMPING_ARGS_DEFAULT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMPING_ARGS_DEFAULT</td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> { \</div>
<div class="line"> { 0 }, { 0 }, <a class="code hl_define" href="group__MMPING.html#gac0256714b83af7c59367940364370134">MMPING_DEFAULT_PING_INTERVAL_MS</a>, \</div>
<div class="line"> MMPING_DEFAULT_PING_COUNT, <a class="code hl_define" href="group__MMPING.html#ga2d4fb9b757737a3f553ec636aa53a43b">MMPING_DEFAULT_DATA_SIZE</a>, \</div>
<div class="line"> }</div>
<div class="ttc" id="agroup__MMPING_html_ga2d4fb9b757737a3f553ec636aa53a43b"><div class="ttname"><a href="group__MMPING.html#ga2d4fb9b757737a3f553ec636aa53a43b">MMPING_DEFAULT_DATA_SIZE</a></div><div class="ttdeci">#define MMPING_DEFAULT_DATA_SIZE</div><div class="ttdoc">Default ping data packet size in bytes, excluding ICMP header.</div><div class="ttdef"><b>Definition:</b> <a href="mmping_8h_source.html#l00048">mmping.h:48</a></div></div>
<div class="ttc" id="agroup__MMPING_html_gac0256714b83af7c59367940364370134"><div class="ttname"><a href="group__MMPING.html#gac0256714b83af7c59367940364370134">MMPING_DEFAULT_PING_INTERVAL_MS</a></div><div class="ttdeci">#define MMPING_DEFAULT_PING_INTERVAL_MS</div><div class="ttdoc">Default time interval in milliseconds between ping requests.</div><div class="ttdef"><b>Definition:</b> <a href="mmping_8h_source.html#l00044">mmping.h:44</a></div></div>
</div><!-- fragment -->
<p>Initializer for <a class="el" href="structmmping__args.html">mmping_args</a>. </p>
<p class="definition">Definition at line <a class="el" href="mmping_8h_source.html#l00095">95</a> of file <a class="el" href="mmping_8h_source.html">mmping.h</a>.</p>
</div>
</div>
<a id="ga2d4fb9b757737a3f553ec636aa53a43b" name="ga2d4fb9b757737a3f553ec636aa53a43b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2d4fb9b757737a3f553ec636aa53a43b">&#9670;&nbsp;</a></span>MMPING_DEFAULT_DATA_SIZE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMPING_DEFAULT_DATA_SIZE&#160;&#160;&#160;(56)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Default ping data packet size in bytes, excluding ICMP header. </p>
<p class="definition">Definition at line <a class="el" href="mmping_8h_source.html#l00048">48</a> of file <a class="el" href="mmping_8h_source.html">mmping.h</a>.</p>
</div>
</div>
<a id="ga52e4a091dd7517c9e89182c0b8b8e3d5" name="ga52e4a091dd7517c9e89182c0b8b8e3d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga52e4a091dd7517c9e89182c0b8b8e3d5">&#9670;&nbsp;</a></span>MMPING_DEFAULT_PING_COUNT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMPING_DEFAULT_PING_COUNT&#160;&#160;&#160;(0)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Default max count for ping request to run forever. </p>
<p class="definition">Definition at line <a class="el" href="mmping_8h_source.html#l00046">46</a> of file <a class="el" href="mmping_8h_source.html">mmping.h</a>.</p>
</div>
</div>
<a id="gac0256714b83af7c59367940364370134" name="gac0256714b83af7c59367940364370134"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac0256714b83af7c59367940364370134">&#9670;&nbsp;</a></span>MMPING_DEFAULT_PING_INTERVAL_MS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMPING_DEFAULT_PING_INTERVAL_MS&#160;&#160;&#160;(1000)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Default time interval in milliseconds between ping requests. </p>
<p class="definition">Definition at line <a class="el" href="mmping_8h_source.html#l00044">44</a> of file <a class="el" href="mmping_8h_source.html">mmping.h</a>.</p>
</div>
</div>
<a id="ga72edb7cc0c5bfdf561fabae045185bfc" name="ga72edb7cc0c5bfdf561fabae045185bfc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga72edb7cc0c5bfdf561fabae045185bfc">&#9670;&nbsp;</a></span>MMPING_ICMP_ECHO_HDR_LEN</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMPING_ICMP_ECHO_HDR_LEN&#160;&#160;&#160;(8)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Length of the ICMP echo header in octets. </p>
<p class="definition">Definition at line <a class="el" href="mmping_8h_source.html#l00064">64</a> of file <a class="el" href="mmping_8h_source.html">mmping.h</a>.</p>
</div>
</div>
<a id="ga91d1340ac84b226542c403c4da8f78fe" name="ga91d1340ac84b226542c403c4da8f78fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga91d1340ac84b226542c403c4da8f78fe">&#9670;&nbsp;</a></span>MMPING_INITIAL_RETRY_INTERVAL_MS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMPING_INITIAL_RETRY_INTERVAL_MS&#160;&#160;&#160;(1000)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rate at which to retry unacknowledged ping requests when the RTT is not known. </p>
<p >`` </p>
<p class="definition">Definition at line <a class="el" href="mmping_8h_source.html#l00058">58</a> of file <a class="el" href="mmping_8h_source.html">mmping.h</a>.</p>
</div>
</div>
<a id="ga3172770a93cb8d1efe18b8481e5a3426" name="ga3172770a93cb8d1efe18b8481e5a3426"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3172770a93cb8d1efe18b8481e5a3426">&#9670;&nbsp;</a></span>MMPING_IPADDR_MAXLEN</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMPING_IPADDR_MAXLEN&#160;&#160;&#160;(48)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Maximum length of an IP address string including null-terminator. </p>
<p class="definition">Definition at line <a class="el" href="mmping_8h_source.html#l00061">61</a> of file <a class="el" href="mmping_8h_source.html">mmping.h</a>.</p>
</div>
</div>
<a id="ga254e66798de6a997c858735bd6e28fd7" name="ga254e66798de6a997c858735bd6e28fd7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga254e66798de6a997c858735bd6e28fd7">&#9670;&nbsp;</a></span>MMPING_MAX_COUNT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMPING_MAX_COUNT&#160;&#160;&#160;(0xffff)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Maximum number of pings before terminating. </p>
<p class="definition">Definition at line <a class="el" href="mmping_8h_source.html#l00054">54</a> of file <a class="el" href="mmping_8h_source.html">mmping.h</a>.</p>
</div>
</div>
<a id="ga540a0220bfc4adc757c86f2fa308d122" name="ga540a0220bfc4adc757c86f2fa308d122"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga540a0220bfc4adc757c86f2fa308d122">&#9670;&nbsp;</a></span>MMPING_MAX_DATA_SIZE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMPING_MAX_DATA_SIZE&#160;&#160;&#160;(1500)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Maximum data size of ping request packet excluding ICMP header. </p>
<p class="definition">Definition at line <a class="el" href="mmping_8h_source.html#l00052">52</a> of file <a class="el" href="mmping_8h_source.html">mmping.h</a>.</p>
</div>
</div>
<a id="gab69f28f49acf866210a7496336fc714f" name="gab69f28f49acf866210a7496336fc714f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab69f28f49acf866210a7496336fc714f">&#9670;&nbsp;</a></span>MMPING_MAX_RETRIES</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMPING_MAX_RETRIES&#160;&#160;&#160;(2)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Maximum number of times to retransmit a ping request before giving up and moving on. </p>
<p class="definition">Definition at line <a class="el" href="mmping_8h_source.html#l00056">56</a> of file <a class="el" href="mmping_8h_source.html">mmping.h</a>.</p>
</div>
</div>
<a id="gae757ea2d13e654679a32fb3c61e09f16" name="gae757ea2d13e654679a32fb3c61e09f16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae757ea2d13e654679a32fb3c61e09f16">&#9670;&nbsp;</a></span>MMPING_MIN_DATA_SIZE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMPING_MIN_DATA_SIZE&#160;&#160;&#160;(8)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Minimum data size of ping request packet excluding ICMP header. </p>
<p class="definition">Definition at line <a class="el" href="mmping_8h_source.html#l00050">50</a> of file <a class="el" href="mmping_8h_source.html">mmping.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga8f61fdb1c81111b1e1bddb86b24f8748" name="ga8f61fdb1c81111b1e1bddb86b24f8748"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8f61fdb1c81111b1e1bddb86b24f8748">&#9670;&nbsp;</a></span>mmping_start()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t mmping_start </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structmmping__args.html">mmping_args</a> *&#160;</td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize ping parameters and start ping. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">args</td><td>Ping request arguments</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the ID for this ping on success, on failure returns 0. </dd></dl>
</div>
</div>
<a id="gad0da18e20fa90116a82e6267c7c89ccd" name="gad0da18e20fa90116a82e6267c7c89ccd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad0da18e20fa90116a82e6267c7c89ccd">&#9670;&nbsp;</a></span>mmping_stats()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="structmmping__stats.html">mmping_stats</a> </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structmmping__stats.html">mmping_stats</a> *&#160;</td>
<td class="paramname"><em>stats</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get Ping Statistics. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">stats</td><td>Instance to receive ping statistics</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Calling <code><a class="el" href="group__MMPING.html#ga8f61fdb1c81111b1e1bddb86b24f8748" title="Initialize ping parameters and start ping.">mmping_start()</a></code> will reset the ping statistics </dd></dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.17-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Copyright 2021 Morse Micro </li>
</ul>
</div>
</body>
</html>