Files
esp-protocols/esp_modem/internal_docs.html

1490 lines
172 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>DCE Internal implementation &#8212; esp-modem documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="prev" title="Internal design" href="internal_design.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="dce-internal-implementation">
<h1>DCE Internal implementation<a class="headerlink" href="#dce-internal-implementation" title="Permalink to this headline"></a></h1>
<p>This chapter provides a detailed description of the classes and building blocks of the esp-modem component and their responsibilities.</p>
<p>The esp-modem actually implements the DCE class, which in turn aggregates these thee units:</p>
<ul class="simple">
<li><p><a class="reference internal" href="#dte-impl"><span class="std std-ref">DTE</span></a> to communicate with the device on a specific Terminal interface such as UART.</p></li>
<li><p><a class="reference internal" href="#netif-impl"><span class="std std-ref">Netif</span></a> to provide the network connectivity</p></li>
<li><p><a class="reference internal" href="#module-impl"><span class="std std-ref">Module</span></a> to define the specific command library</p></li>
</ul>
<p>Developers would typically have to</p>
<ul class="simple">
<li><p>Add support for a new module</p></li>
<li><p>Implement a generic (common for all modules) AT command</p></li>
</ul>
<p>This is explained in the <a class="reference internal" href="#module-impl"><span class="std std-ref">Module</span></a> section, as <a class="reference internal" href="#module-addition"><span class="std std-ref">Adding new module or command</span></a></p>
<hr class="docutils" />
<dl>
<dt class="sig sig-object cpp">
<span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">ESP_MODEM_DCE</span></span></dt>
<dd><p>Definition of <a class="reference internal" href="#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> abstraction. </p>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem8DCE_ModeE">
<span id="_CPPv3N9esp_modem8DCE_ModeE"></span><span id="_CPPv2N9esp_modem8DCE_ModeE"></span><span id="esp_modem::DCE_Mode"></span><span class="target" id="classesp__modem_1_1_d_c_e___mode"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DCE_Mode</span></span></span><a class="headerlink" href="#_CPPv4N9esp_modem8DCE_ModeE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_dce.hpp&gt;</em></div>
<p>Helper class responsible for switching modes of the <a class="reference internal" href="#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a>s. </p>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4I0EN9esp_modem5DCE_TE">
<span id="_CPPv3I0EN9esp_modem5DCE_TE"></span><span id="_CPPv2I0EN9esp_modem5DCE_TE"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SpecificModule</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="classesp__modem_1_1_d_c_e___t"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">DCE_T</span></span></span><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_dce.hpp&gt;</em></div>
<p>General <a class="reference internal" href="#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> class templated on a specific module. It is responsible for all the necessary transactions related to switching modes and consequent synergy with aggregated objects of <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a>, <a class="reference internal" href="#classesp__modem_1_1_netif"><span class="std std-ref">Netif</span></a> and a specific Module. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem5DCE_T8set_dataEv">
<span id="_CPPv3N9esp_modem5DCE_T8set_dataEv"></span><span id="_CPPv2N9esp_modem5DCE_T8set_dataEv"></span><span id="esp_modem::DCE_T::set_data"></span><span class="target" id="classesp__modem_1_1_d_c_e___t_1a0f41a6dbf86ff8058cb3ef727cefdc5f"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_data</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><br /></dt>
<dd><p>Set data mode! </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCEE">
<span id="_CPPv3N9esp_modem3DCEE"></span><span id="_CPPv2N9esp_modem3DCEE"></span><span id="esp_modem::DCE"></span><span class="target" id="classesp__modem_1_1_d_c_e"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">DCE</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="cxx_api_docs.html#_CPPv4I0EN9esp_modem5DCE_TE" title="esp_modem::DCE_T"><span class="n"><span class="pre">DCE_T</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N9esp_modem13GenericModuleE" title="esp_modem::GenericModule"><span class="n"><span class="pre">GenericModule</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="cxx_api_docs.html#_CPPv4I0EN9esp_modem5DCE_TE" title="esp_modem::DCE_T"><span class="n"><span class="pre">DCE_T</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N9esp_modem13GenericModuleE" title="esp_modem::GenericModule"><span class="n"><span class="pre">GenericModule</span></span></a><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv4N9esp_modem3DCEE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_dce.hpp&gt;</em></div>
<p>Common abstraction of the modem <a class="reference internal" href="#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a>, specialized by the <a class="reference internal" href="#classesp__modem_1_1_generic_module"><span class="std std-ref">GenericModule</span></a> which is a parent class for the supported devices and most common modems, as well. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE4syncEv">
<span id="_CPPv3N9esp_modem3DCE4syncEv"></span><span id="_CPPv2N9esp_modem3DCE4syncEv"></span><span id="esp_modem::DCE::sync"></span><span class="target" id="classesp__modem_1_1_d_c_e_1ab46b147d37e882c18cdaec7527b82e99"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">sync</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE4syncEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sends the initial AT sequence to sync up with the device. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE17get_operator_nameEF10STRING_OUT2p14nameEF7INT_OUT2p23actE">
<span id="_CPPv3N9esp_modem3DCE17get_operator_nameEF10STRING_OUT2p14nameEF7INT_OUT2p23actE"></span><span id="_CPPv2N9esp_modem3DCE17get_operator_nameEF10STRING_OUT2p14nameEF7INT_OUT2p23actE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a774b0d8e216376b5f7fc199c064c44e8"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">get_operator_name</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">STRING_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">INT_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p2</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">act</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE17get_operator_nameEF10STRING_OUT2p14nameEF7INT_OUT2p23actE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Reads the operator name. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>operator</strong> <strong>[out]</strong> name </p></li>
<li><p><strong>access</strong> <strong>[out]</strong> technology </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE13store_profileEv">
<span id="_CPPv3N9esp_modem3DCE13store_profileEv"></span><span id="_CPPv2N9esp_modem3DCE13store_profileEv"></span><span id="esp_modem::DCE::store_profile"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a82c8adc3a6d48f7a10a637d0feb90bac"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">store_profile</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE13store_profileEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Stores current user profile. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE7set_pinEF9STRING_IN2p13pinE">
<span id="_CPPv3N9esp_modem3DCE7set_pinEF9STRING_IN2p13pinE"></span><span id="_CPPv2N9esp_modem3DCE7set_pinEF9STRING_IN2p13pinE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a2f830c8588450fd6278166b9a846394f"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_pin</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">STRING_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">pin</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE7set_pinEF9STRING_IN2p13pinE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets the supplied PIN code. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>pin</strong> <strong>[in]</strong> Pin </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE2atEF9STRING_IN2p13cmdEF10STRING_OUT2p23outEF6INT_IN2p37timeoutE">
<span id="_CPPv3N9esp_modem3DCE2atEF9STRING_IN2p13cmdEF10STRING_OUT2p23outEF6INT_IN2p37timeoutE"></span><span id="_CPPv2N9esp_modem3DCE2atEF9STRING_IN2p13cmdEF10STRING_OUT2p23outEF6INT_IN2p37timeoutE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1ac26f9528bde9cc8fa283d84611b21690"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">at</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">STRING_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">cmd</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">STRING_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p2</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">out</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">INT_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p3</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">timeout</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE2atEF9STRING_IN2p13cmdEF10STRING_OUT2p23outEF6INT_IN2p37timeoutE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Execute the supplied AT command. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>at</strong> <strong>[in]</strong> AT command </p></li>
<li><p><strong>out</strong> <strong>[out]</strong> Command output string </p></li>
<li><p><strong>timeout</strong> <strong>[in]</strong> AT command timeout in milliseconds </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE8read_pinEF8BOOL_OUT2p16pin_okE">
<span id="_CPPv3N9esp_modem3DCE8read_pinEF8BOOL_OUT2p16pin_okE"></span><span id="_CPPv2N9esp_modem3DCE8read_pinEF8BOOL_OUT2p16pin_okE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a06eb5226a36d150fc8f86a006e65ea01"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">read_pin</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">BOOL_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">pin_ok</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE8read_pinEF8BOOL_OUT2p16pin_okE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Checks if the SIM needs a PIN. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>pin_ok</strong> <strong>[out]</strong> true if the SIM card doesnt need a PIN to unlock </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE8set_echoEF7BOOL_IN2p17echo_onE">
<span id="_CPPv3N9esp_modem3DCE8set_echoEF7BOOL_IN2p17echo_onE"></span><span id="_CPPv2N9esp_modem3DCE8set_echoEF7BOOL_IN2p17echo_onE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1abc4ae86b1634c22858b15385fef0e30e"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_echo</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">BOOL_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">echo_on</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE8set_echoEF7BOOL_IN2p17echo_onE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets echo mode. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>echo_on</strong> <strong>[in]</strong> true if echo mode on (repeats the commands) </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE12sms_txt_modeEF7BOOL_IN2p13txtE">
<span id="_CPPv3N9esp_modem3DCE12sms_txt_modeEF7BOOL_IN2p13txtE"></span><span id="_CPPv2N9esp_modem3DCE12sms_txt_modeEF7BOOL_IN2p13txtE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a204f5ac68ea2f459817465f042efacf6"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">sms_txt_mode</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">BOOL_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">txt</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE12sms_txt_modeEF7BOOL_IN2p13txtE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets the Txt or Pdu mode for SMS (only txt is supported) </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>txt</strong> <strong>[in]</strong> true if txt mode </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE17sms_character_setEv">
<span id="_CPPv3N9esp_modem3DCE17sms_character_setEv"></span><span id="_CPPv2N9esp_modem3DCE17sms_character_setEv"></span><span id="esp_modem::DCE::sms_character_set"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a3b4b1fc2126e0d5c7926f87a64bac37d"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">sms_character_set</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE17sms_character_setEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets the default (GSM) character set. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE8send_smsEF9STRING_IN2p16numberEF9STRING_IN2p27messageE">
<span id="_CPPv3N9esp_modem3DCE8send_smsEF9STRING_IN2p16numberEF9STRING_IN2p27messageE"></span><span id="_CPPv2N9esp_modem3DCE8send_smsEF9STRING_IN2p16numberEF9STRING_IN2p27messageE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a32fdc459cb9dfac0c070d4156d641b83"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">send_sms</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">STRING_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">number</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">STRING_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p2</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">message</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE8send_smsEF9STRING_IN2p16numberEF9STRING_IN2p27messageE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sends SMS message in txt mode. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>number</strong> <strong>[in]</strong> Phone number to send the message to </p></li>
<li><p><strong>message</strong> <strong>[in]</strong> Text message to be sent </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE16resume_data_modeEv">
<span id="_CPPv3N9esp_modem3DCE16resume_data_modeEv"></span><span id="_CPPv2N9esp_modem3DCE16resume_data_modeEv"></span><span id="esp_modem::DCE::resume_data_mode"></span><span class="target" id="classesp__modem_1_1_d_c_e_1aa136b9f3d9ada787535f6df8ed81be0f"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">resume_data_mode</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE16resume_data_modeEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Resumes data mode (Switches back to the data mode, which was temporarily suspended) </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE15set_pdp_contextEF10STRUCT_OUT10PdpContext2p1E">
<span id="_CPPv3N9esp_modem3DCE15set_pdp_contextEF10STRUCT_OUT10PdpContext2p1E"></span><span id="_CPPv2N9esp_modem3DCE15set_pdp_contextEF10STRUCT_OUT10PdpContext2p1E"></span><span class="target" id="classesp__modem_1_1_d_c_e_1ab7fda537f62e0a1901ec4f63753577b3"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_pdp_context</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">STRUCT_OUT</span></span><span class="p"><span class="pre">(</span></span><a class="reference internal" href="#_CPPv4N9esp_modem10PdpContextE" title="esp_modem::PdpContext"><span class="n"><span class="pre">PdpContext</span></span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE15set_pdp_contextEF10STRUCT_OUT10PdpContext2p1E" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets php context. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>p1</strong> <strong>[in]</strong> PdP context struct to setup modem cellular connection </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE16set_command_modeEv">
<span id="_CPPv3N9esp_modem3DCE16set_command_modeEv"></span><span id="_CPPv2N9esp_modem3DCE16set_command_modeEv"></span><span id="esp_modem::DCE::set_command_mode"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a4118fbfe223e9aef81aa083c993f4277"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_command_mode</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE16set_command_modeEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Switches to the command mode. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE8set_cmuxEv">
<span id="_CPPv3N9esp_modem3DCE8set_cmuxEv"></span><span id="_CPPv2N9esp_modem3DCE8set_cmuxEv"></span><span id="esp_modem::DCE::set_cmux"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a2ce1f9df5431f7c6f9c76e38929a866a"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_cmux</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE8set_cmuxEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Switches to the CMUX mode. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE8get_imsiEF10STRING_OUT2p14imsiE">
<span id="_CPPv3N9esp_modem3DCE8get_imsiEF10STRING_OUT2p14imsiE"></span><span id="_CPPv2N9esp_modem3DCE8get_imsiEF10STRING_OUT2p14imsiE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1aa21ac64d306ee74e6bb594488d0933c7"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">get_imsi</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">STRING_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">imsi</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE8get_imsiEF10STRING_OUT2p14imsiE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Reads the IMSI number. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>imsi</strong> <strong>[out]</strong> Modules IMSI number </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE8get_imeiEF10STRING_OUT2p14imeiE">
<span id="_CPPv3N9esp_modem3DCE8get_imeiEF10STRING_OUT2p14imeiE"></span><span id="_CPPv2N9esp_modem3DCE8get_imeiEF10STRING_OUT2p14imeiE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1afd60e94e1b8a2842bf37451672dd8b67"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">get_imei</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">STRING_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">imei</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE8get_imeiEF10STRING_OUT2p14imeiE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Reads the IMEI number. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>imei</strong> <strong>[out]</strong> Modules IMEI number </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE15get_module_nameEF10STRING_OUT2p14nameE">
<span id="_CPPv3N9esp_modem3DCE15get_module_nameEF10STRING_OUT2p14nameE"></span><span id="_CPPv2N9esp_modem3DCE15get_module_nameEF10STRING_OUT2p14nameE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1af56767467206886ef0ea8595eec2cba5"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">get_module_name</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">STRING_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE15get_module_nameEF10STRING_OUT2p14nameE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Reads the module name. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>name</strong> <strong>[out]</strong> module name </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE13set_data_modeEv">
<span id="_CPPv3N9esp_modem3DCE13set_data_modeEv"></span><span id="_CPPv2N9esp_modem3DCE13set_data_modeEv"></span><span id="esp_modem::DCE::set_data_mode"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a2efaf3c37dbc8e6f0d5b27552e8522b6"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_data_mode</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE13set_data_modeEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets the modem to data mode. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE18get_signal_qualityEF7INT_OUT2p14rssiEF7INT_OUT2p23berE">
<span id="_CPPv3N9esp_modem3DCE18get_signal_qualityEF7INT_OUT2p14rssiEF7INT_OUT2p23berE"></span><span id="_CPPv2N9esp_modem3DCE18get_signal_qualityEF7INT_OUT2p14rssiEF7INT_OUT2p23berE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1abbe21e960b982e21767ed51c303fb7fb"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">get_signal_quality</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">INT_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">rssi</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">INT_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p2</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">ber</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE18get_signal_qualityEF7INT_OUT2p14rssiEF7INT_OUT2p23berE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Get Signal quality. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>rssi</strong> <strong>[out]</strong> signal strength indication </p></li>
<li><p><strong>ber</strong> <strong>[out]</strong> channel bit error rate </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE16set_flow_controlEF6INT_IN2p18dce_flowEF6INT_IN2p28dte_flowE">
<span id="_CPPv3N9esp_modem3DCE16set_flow_controlEF6INT_IN2p18dce_flowEF6INT_IN2p28dte_flowE"></span><span id="_CPPv2N9esp_modem3DCE16set_flow_controlEF6INT_IN2p18dce_flowEF6INT_IN2p28dte_flowE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a98b3ade234fd3f0e5323f1615f01492a"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_flow_control</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">INT_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">dce_flow</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">INT_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p2</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">dte_flow</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE16set_flow_controlEF6INT_IN2p18dce_flowEF6INT_IN2p28dte_flowE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets HW control flow. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dce_flow</strong> <strong>[in]</strong> 0=none, 2=RTS hw flow control of <a class="reference internal" href="#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> </p></li>
<li><p><strong>dte_flow</strong> <strong>[in]</strong> 0=none, 2=CTS hw flow control of <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE7hang_upEv">
<span id="_CPPv3N9esp_modem3DCE7hang_upEv"></span><span id="_CPPv2N9esp_modem3DCE7hang_upEv"></span><span id="esp_modem::DCE::hang_up"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a34b9ac1588b27849f0d1b06ffdc61354"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">hang_up</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE7hang_upEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Hangs up current data call. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE18get_battery_statusEF7INT_OUT2p17voltageEF7INT_OUT2p23bcsEF7INT_OUT2p33bclE">
<span id="_CPPv3N9esp_modem3DCE18get_battery_statusEF7INT_OUT2p17voltageEF7INT_OUT2p23bcsEF7INT_OUT2p33bclE"></span><span id="_CPPv2N9esp_modem3DCE18get_battery_statusEF7INT_OUT2p17voltageEF7INT_OUT2p23bcsEF7INT_OUT2p33bclE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a175c96dc943a928224bdf7d2a30a9d97"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">get_battery_status</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">INT_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">voltage</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">INT_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p2</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">bcs</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">INT_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p3</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">bcl</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE18get_battery_statusEF7INT_OUT2p17voltageEF7INT_OUT2p23bcsEF7INT_OUT2p33bclE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Get voltage levels of modem power up circuitry. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>voltage</strong> <strong>[out]</strong> Current status in mV </p></li>
<li><p><strong>bcs</strong> <strong>[out]</strong> charge status (-1-Not available, 0-Not charging, 1-Charging, 2-Charging done) </p></li>
<li><p><strong>bcl</strong> <strong>[out]</strong> 1-100% battery capacity, -1-Not available </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE10power_downEv">
<span id="_CPPv3N9esp_modem3DCE10power_downEv"></span><span id="_CPPv2N9esp_modem3DCE10power_downEv"></span><span id="esp_modem::DCE::power_down"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a0712ea72939e6b864b22f34c441ac950"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">power_down</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE10power_downEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Power down the module. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE5resetEv">
<span id="_CPPv3N9esp_modem3DCE5resetEv"></span><span id="_CPPv2N9esp_modem3DCE5resetEv"></span><span id="esp_modem::DCE::reset"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a8dac3544f73414b1df69040542451c79"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">reset</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE5resetEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Reset the module. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE8set_baudEF6INT_IN2p14baudE">
<span id="_CPPv3N9esp_modem3DCE8set_baudEF6INT_IN2p14baudE"></span><span id="_CPPv2N9esp_modem3DCE8set_baudEF6INT_IN2p14baudE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a570ebf3b0900465cfeb5b4c24ffb53f1"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_baud</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">INT_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">baud</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE8set_baudEF6INT_IN2p14baudE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Configures the baudrate. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>baud</strong> <strong>[in]</strong> Desired baud rate of the <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE12set_operatorEF6INT_IN2p14modeEF6INT_IN2p26formatEF9STRING_IN2p34operE">
<span id="_CPPv3N9esp_modem3DCE12set_operatorEF6INT_IN2p14modeEF6INT_IN2p26formatEF9STRING_IN2p34operE"></span><span id="_CPPv2N9esp_modem3DCE12set_operatorEF6INT_IN2p14modeEF6INT_IN2p26formatEF9STRING_IN2p34operE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1accec4d0cc06c6466053ab5287d74c675"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_operator</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">INT_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">mode</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">INT_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p2</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">format</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">STRING_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p3</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">oper</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE12set_operatorEF6INT_IN2p14modeEF6INT_IN2p26formatEF9STRING_IN2p34operE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Force an attempt to connect to a specific operator. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>mode</strong> <strong>[in]</strong> mode of attempt mode=0 - automatic mode=1 - manual mode=2 - deregister mode=3 - set format for read operation mode=4 - manual with fallback to automatic </p></li>
<li><p><strong>format</strong> <strong>[in]</strong> what format the operator is given in format=0 - long format format=1 - short format format=2 - numeric </p></li>
<li><p><strong>oper</strong> <strong>[in]</strong> the operator to connect to </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE28set_network_attachment_stateEF6INT_IN2p15stateE">
<span id="_CPPv3N9esp_modem3DCE28set_network_attachment_stateEF6INT_IN2p15stateE"></span><span id="_CPPv2N9esp_modem3DCE28set_network_attachment_stateEF6INT_IN2p15stateE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a4e03ef7718114a0e23d927097e6946bd"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_network_attachment_state</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">INT_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">state</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE28set_network_attachment_stateEF6INT_IN2p15stateE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Attach or detach from the GPRS service. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>state</strong> <strong>[in]</strong> 1-attach 0-detach </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE28get_network_attachment_stateEF7INT_OUT2p15stateE">
<span id="_CPPv3N9esp_modem3DCE28get_network_attachment_stateEF7INT_OUT2p15stateE"></span><span id="_CPPv2N9esp_modem3DCE28get_network_attachment_stateEF7INT_OUT2p15stateE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a4bde1e8eb788f110440075b1620fb4ab"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">get_network_attachment_state</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">INT_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">state</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE28get_network_attachment_stateEF7INT_OUT2p15stateE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Get network attachment state. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>state</strong> <strong>[out]</strong> 1-attached 0-detached </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE15set_radio_stateEF6INT_IN2p15stateE">
<span id="_CPPv3N9esp_modem3DCE15set_radio_stateEF6INT_IN2p15stateE"></span><span id="_CPPv2N9esp_modem3DCE15set_radio_stateEF6INT_IN2p15stateE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a45c88cafb6f55a29ac7627e2ad918597"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_radio_state</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">INT_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">state</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE15set_radio_stateEF6INT_IN2p15stateE" title="Permalink to this definition"></a><br /></dt>
<dd><p>What mode the radio should be set to. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>state</strong> <strong>[in]</strong> state 1-full 0-minimum … </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE15get_radio_stateEF7INT_OUT2p15stateE">
<span id="_CPPv3N9esp_modem3DCE15get_radio_stateEF7INT_OUT2p15stateE"></span><span id="_CPPv2N9esp_modem3DCE15get_radio_stateEF7INT_OUT2p15stateE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1abda078d0fca3a22a0ede45629490a71c"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">get_radio_state</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">INT_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">state</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE15get_radio_stateEF7INT_OUT2p15stateE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Get current radio state. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>state</strong> <strong>[out]</strong> 1-full 0-minimum … </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE16set_network_modeEF6INT_IN2p14modeE">
<span id="_CPPv3N9esp_modem3DCE16set_network_modeEF6INT_IN2p14modeE"></span><span id="_CPPv2N9esp_modem3DCE16set_network_modeEF6INT_IN2p14modeE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a01194c6fd69027cc575b0b795527bc18"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_network_mode</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">INT_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">mode</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE16set_network_modeEF6INT_IN2p14modeE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Set network mode. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>mode</strong> <strong>[in]</strong> preferred mode </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE18set_preferred_modeEF6INT_IN2p14modeE">
<span id="_CPPv3N9esp_modem3DCE18set_preferred_modeEF6INT_IN2p14modeE"></span><span id="_CPPv2N9esp_modem3DCE18set_preferred_modeEF6INT_IN2p14modeE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1aabcc3a50975221654f6e95b1d710100f"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_preferred_mode</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">INT_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">mode</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE18set_preferred_modeEF6INT_IN2p14modeE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Preferred network mode (CAT-M and/or NB-IoT) </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>mode</strong> <strong>[in]</strong> preferred selection </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE17set_network_bandsEF9STRING_IN2p14modeEF15INTEGER_LIST_IN2p25bandsEF6INT_IN2p34sizeE">
<span id="_CPPv3N9esp_modem3DCE17set_network_bandsEF9STRING_IN2p14modeEF15INTEGER_LIST_IN2p25bandsEF6INT_IN2p34sizeE"></span><span id="_CPPv2N9esp_modem3DCE17set_network_bandsEF9STRING_IN2p14modeEF15INTEGER_LIST_IN2p25bandsEF6INT_IN2p34sizeE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a0bc9190ef37b5e528520b942ed8ae543"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_network_bands</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">STRING_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">mode</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">INTEGER_LIST_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p2</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">bands</span></span><span class="p"><span class="pre">)</span></span>, <span class="n"><span class="pre">INT_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p3</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">size</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE17set_network_bandsEF9STRING_IN2p14modeEF15INTEGER_LIST_IN2p25bandsEF6INT_IN2p34sizeE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Set network bands for CAT-M or NB-IoT. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>mode</strong> <strong>[in]</strong> CAT-M or NB-IoT </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE23get_network_system_modeEF7INT_OUT2p14modeE">
<span id="_CPPv3N9esp_modem3DCE23get_network_system_modeEF7INT_OUT2p14modeE"></span><span id="_CPPv2N9esp_modem3DCE23get_network_system_modeEF7INT_OUT2p14modeE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1aeaea058c91999a5ab23ffc43131d5ef0"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">get_network_system_mode</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">INT_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">mode</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE23get_network_system_modeEF7INT_OUT2p14modeE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Show network system mode. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>mode</strong> <strong>[out]</strong> current network mode </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE19set_gnss_power_modeEF6INT_IN2p14modeE">
<span id="_CPPv3N9esp_modem3DCE19set_gnss_power_modeEF6INT_IN2p14modeE"></span><span id="_CPPv2N9esp_modem3DCE19set_gnss_power_modeEF6INT_IN2p14modeE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a5ea3773672b5656c873719209556a76b"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_gnss_power_mode</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">INT_IN</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">mode</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE19set_gnss_power_modeEF6INT_IN2p14modeE" title="Permalink to this definition"></a><br /></dt>
<dd><p>GNSS power control. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>mode</strong> <strong>[out]</strong> power mode (0 - off, 1 - on) </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DCE19get_gnss_power_modeEF7INT_OUT2p14modeE">
<span id="_CPPv3N9esp_modem3DCE19get_gnss_power_modeEF7INT_OUT2p14modeE"></span><span id="_CPPv2N9esp_modem3DCE19get_gnss_power_modeEF7INT_OUT2p14modeE"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a34f6c1e14963fa2d125707c457f23a3d"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">get_gnss_power_mode</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">INT_OUT</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">p1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">mode</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE19get_gnss_power_modeEF7INT_OUT2p14modeE" title="Permalink to this definition"></a><br /></dt>
<dd><p>GNSS power control. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>mode</strong> <strong>[out]</strong> power mode (0 - off, 1 - on) </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
</div>
</dd></dl>
</dd></dl>
<section id="dte-abstraction">
<span id="dte-impl"></span><h2>DTE abstraction<a class="headerlink" href="#dte-abstraction" title="Permalink to this headline"></a></h2>
<p>DTE is a basic unit to talk to the module using a Terminal interface. It also implements and uses the CMUX to multiplex
terminals. Besides the DTE documentation, this section also refers to the</p>
<ul class="simple">
<li><p><a class="reference internal" href="#term-impl"><span class="std std-ref">Terminal interface</span></a></p></li>
<li><p><a class="reference internal" href="#cmux-impl"><span class="std std-ref">CMUX implementation</span></a></p></li>
</ul>
<hr class="docutils" />
<dl>
<dt class="sig sig-object cpp">
<span class="target" id="group___e_s_p___m_o_d_e_m___d_t_e"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">ESP_MODEM_DTE</span></span></dt>
<dd><p>Definition of <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> and related classes. </p>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem11DTE_CommandE">
<span id="_CPPv3N9esp_modem11DTE_CommandE"></span><span id="_CPPv2N9esp_modem11DTE_CommandE"></span><span id="esp_modem::DTE_Command"></span><span class="target" id="structesp__modem_1_1_d_t_e___command"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DTE_Command</span></span></span><a class="headerlink" href="#_CPPv4N9esp_modem11DTE_CommandE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_dte.hpp&gt;</em></div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DTEE">
<span id="_CPPv3N9esp_modem3DTEE"></span><span id="_CPPv2N9esp_modem3DTEE"></span><span id="esp_modem::DTE"></span><span class="target" id="classesp__modem_1_1_d_t_e"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">DTE</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N9esp_modem13CommandableIfE" title="esp_modem::CommandableIf"><span class="n"><span class="pre">CommandableIf</span></span></a><a class="headerlink" href="#_CPPv4N9esp_modem3DTEE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_dte.hpp&gt;</em></div>
<p><a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> (Data <a class="reference internal" href="#classesp__modem_1_1_terminal"><span class="std std-ref">Terminal</span></a> Equipment) class </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE">
<span id="_CPPv3N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE"></span><span id="_CPPv2N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE"></span><span id="esp_modem::DTE::DTE__esp_modem_dte_configCP.std::unique_ptr:Terminal:"></span><span class="target" id="classesp__modem_1_1_d_t_e_1abcf1d191be79fc6a993077d52203122c"></span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DTE</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="api_docs.html#_CPPv420esp_modem_dte_config" title="esp_modem_dte_config"><span class="n"><span class="pre">esp_modem_dte_config</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">config</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N9esp_modem8TerminalE" title="esp_modem::Terminal"><span class="n"><span class="pre">Terminal</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">t</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Creates a <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> instance from the terminal. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>config</strong> <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> config structure </p></li>
<li><p><strong>t</strong> unique-ptr to <a class="reference internal" href="#classesp__modem_1_1_terminal"><span class="std std-ref">Terminal</span></a> </p></li>
<li><p><strong>s</strong> unique-ptr to secondary <a class="reference internal" href="#classesp__modem_1_1_terminal"><span class="std std-ref">Terminal</span></a> </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t">
<span id="_CPPv3N9esp_modem3DTE5writeEP7uint8_t6size_t"></span><span id="_CPPv2N9esp_modem3DTE5writeEP7uint8_t6size_t"></span><span id="esp_modem::DTE::write__uint8_tP.s"></span><span class="target" id="classesp__modem_1_1_d_t_e_1ac6c438e72958616147c8951c9158c524"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">write</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">data</span></span>, <span class="n"><span class="pre">size_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">len</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Writing to the underlying terminal. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>data</strong> Data pointer to write </p></li>
<li><p><strong>len</strong> Data len to write </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>number of bytes written </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t">
<span id="_CPPv3N9esp_modem3DTE4readEPP7uint8_t6size_t"></span><span id="_CPPv2N9esp_modem3DTE4readEPP7uint8_t6size_t"></span><span id="esp_modem::DTE::read__uint8_tPP.s"></span><span class="target" id="classesp__modem_1_1_d_t_e_1a9cf529ece97b282ce02b00c0f4720868"></span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">read</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">d</span></span>, <span class="n"><span class="pre">size_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">len</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Reading from the underlying terminal. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>d</strong> Returning the data pointer of the received payload </p></li>
<li><p><strong>len</strong> Length of the data payload </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>number of bytes read </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DTE11set_read_cbENSt8functionIFbP7uint8_t6size_tEEE">
<span id="_CPPv3N9esp_modem3DTE11set_read_cbENSt8functionIFbP7uint8_t6size_tEEE"></span><span id="_CPPv2N9esp_modem3DTE11set_read_cbENSt8functionIFbP7uint8_t6size_tEEE"></span><span class="target" id="classesp__modem_1_1_d_t_e_1a956860c6925bddbd89aa0c7e3121eaa3"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_read_cb</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">function</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">bool</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">size_t</span></span><span class="w"> </span><span class="n"><span class="pre">len</span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">f</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DTE11set_read_cbENSt8functionIFbP7uint8_t6size_tEEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets read callback with valid data and length. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>f</strong> Function to be called on data available </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DTE12set_error_cbENSt8functionIFv14terminal_errorEEE">
<span id="_CPPv3N9esp_modem3DTE12set_error_cbENSt8functionIFv14terminal_errorEEE"></span><span id="_CPPv2N9esp_modem3DTE12set_error_cbENSt8functionIFv14terminal_errorEEE"></span><span class="target" id="classesp__modem_1_1_d_t_e_1a9142953a2b0cb351fbff5429415b1f81"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_error_cb</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">function</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">void</span></span><span class="p"><span class="pre">(</span></span><a class="reference internal" href="#_CPPv414terminal_error" title="terminal_error"><span class="n"><span class="pre">terminal_error</span></span></a><span class="w"> </span><span class="n"><span class="pre">err</span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">f</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DTE12set_error_cbENSt8functionIFv14terminal_errorEEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> error callback. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>f</strong> Function to be called on <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> error </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DTE8set_modeE10modem_mode">
<span id="_CPPv3N9esp_modem3DTE8set_modeE10modem_mode"></span><span id="_CPPv2N9esp_modem3DTE8set_modeE10modem_mode"></span><span id="esp_modem::DTE::set_mode__modem_mode"></span><span class="target" id="classesp__modem_1_1_d_t_e_1af832ec4696cd797148edbedd7e95fa5e"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_mode</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv410modem_mode" title="modem_mode"><span class="n"><span class="pre">modem_mode</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">m</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DTE8set_modeE10modem_mode" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets the <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> to desired mode (Command/Data/Cmux) </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>m</strong> Desired operation mode </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>true on success </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t">
<span id="_CPPv3N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t"></span><span id="_CPPv2N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t"></span><span id="esp_modem::DTE::command__ssCR.got_line_cb.uint32_t"></span><span class="target" id="classesp__modem_1_1_d_t_e_1af492fa2a39d90ba394f6e29a675bfd58"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">command</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">command</span></span>, <a class="reference internal" href="#_CPPv411got_line_cb" title="got_line_cb"><span class="n"><span class="pre">got_line_cb</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">got_line</span></span>, <span class="n"><span class="pre">uint32_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">time_ms</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sends command and provides callback with responding line. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>command</strong> String parameter representing command </p></li>
<li><p><strong>got_line</strong> Function to be called after line available as a response </p></li>
<li><p><strong>time_ms</strong> Time in ms to wait for the answer </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL, TIMEOUT </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc">
<span id="_CPPv3N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc"></span><span id="_CPPv2N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc"></span><span id="esp_modem::DTE::command__ssCR.got_line_cb.uint32_t.c"></span><span class="target" id="classesp__modem_1_1_d_t_e_1ab1b4cd127bfec7969c0b0e33f5be88a5"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">command</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">command</span></span>, <a class="reference internal" href="#_CPPv411got_line_cb" title="got_line_cb"><span class="n"><span class="pre">got_line_cb</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">got_line</span></span>, <span class="n"><span class="pre">uint32_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">time_ms</span></span>, <span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">separator</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sends the command (same as above) but with a specific separator. </p>
</dd></dl>
</div>
</dd></dl>
</dd></dl>
<section id="terminal-interface">
<span id="term-impl"></span><h3>Terminal interface<a class="headerlink" href="#terminal-interface" title="Permalink to this headline"></a></h3>
<dl>
<dt class="sig sig-object cpp">
<span class="target" id="group___e_s_p___m_o_d_e_m___t_e_r_m_i_n_a_l"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">ESP_MODEM_TERMINAL</span></span></dt>
<dd><p>Definition of an abstract terminal to be attached to <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> class. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-enums">Enums</p>
<dl class="cpp enum-class">
<dt class="sig sig-object cpp" id="_CPPv414terminal_error">
<span id="_CPPv314terminal_error"></span><span id="_CPPv214terminal_error"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_e_r_m_i_n_a_l_1ga9e2467aa5656f359e3dbcc33b28416ea"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">terminal_error</span></span></span><a class="headerlink" href="#_CPPv414terminal_error" title="Permalink to this definition"></a><br /></dt>
<dd><p><a class="reference internal" href="#classesp__modem_1_1_terminal"><span class="std std-ref">Terminal</span></a> errors. </p>
<p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N14terminal_error15BUFFER_OVERFLOWE">
<span id="_CPPv3N14terminal_error15BUFFER_OVERFLOWE"></span><span id="_CPPv2N14terminal_error15BUFFER_OVERFLOWE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_e_r_m_i_n_a_l_1gga9e2467aa5656f359e3dbcc33b28416eaad53c9f7d5b985bba6cb80cdf8ae665e4"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">BUFFER_OVERFLOW</span></span></span><a class="headerlink" href="#_CPPv4N14terminal_error15BUFFER_OVERFLOWE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N14terminal_error14CHECKSUM_ERRORE">
<span id="_CPPv3N14terminal_error14CHECKSUM_ERRORE"></span><span id="_CPPv2N14terminal_error14CHECKSUM_ERRORE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_e_r_m_i_n_a_l_1gga9e2467aa5656f359e3dbcc33b28416eaaf96d2aa84f64782fa7aa5d396090993a"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CHECKSUM_ERROR</span></span></span><a class="headerlink" href="#_CPPv4N14terminal_error14CHECKSUM_ERRORE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N14terminal_error23UNEXPECTED_CONTROL_FLOWE">
<span id="_CPPv3N14terminal_error23UNEXPECTED_CONTROL_FLOWE"></span><span id="_CPPv2N14terminal_error23UNEXPECTED_CONTROL_FLOWE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_e_r_m_i_n_a_l_1gga9e2467aa5656f359e3dbcc33b28416eaa790564696e07d778cd6640e2617c18d5"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">UNEXPECTED_CONTROL_FLOW</span></span></span><a class="headerlink" href="#_CPPv4N14terminal_error23UNEXPECTED_CONTROL_FLOWE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N14terminal_error11DEVICE_GONEE">
<span id="_CPPv3N14terminal_error11DEVICE_GONEE"></span><span id="_CPPv2N14terminal_error11DEVICE_GONEE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_e_r_m_i_n_a_l_1gga9e2467aa5656f359e3dbcc33b28416eaa069305e4c30fbe0b00d4f1b5dda44de7"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DEVICE_GONE</span></span></span><a class="headerlink" href="#_CPPv4N14terminal_error11DEVICE_GONEE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
</dd></dl>
</div>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem8TerminalE">
<span id="_CPPv3N9esp_modem8TerminalE"></span><span id="_CPPv2N9esp_modem8TerminalE"></span><span id="esp_modem::Terminal"></span><span class="target" id="classesp__modem_1_1_terminal"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">Terminal</span></span></span><a class="headerlink" href="#_CPPv4N9esp_modem8TerminalE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_terminal.hpp&gt;</em></div>
<p><a class="reference internal" href="#classesp__modem_1_1_terminal"><span class="std std-ref">Terminal</span></a> interface. All communication interfaces must comply to this interface in order to be used as a <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a>. </p>
<p>Subclassed by <a class="reference internal" href="#classesp__modem_1_1_c_mux_instance"><span class="std std-ref">esp_modem::CMuxInstance</span></a></p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t">
<span id="_CPPv3N9esp_modem8Terminal5writeEP7uint8_t6size_t"></span><span id="_CPPv2N9esp_modem8Terminal5writeEP7uint8_t6size_t"></span><span id="esp_modem::Terminal::write__uint8_tP.s"></span><span class="target" id="classesp__modem_1_1_terminal_1aaa6b8fe3a2336b8369740e7ca4aeae00"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">write</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">data</span></span>, <span class="n"><span class="pre">size_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">len</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Writes data to the terminal. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>data</strong> Data pointer </p></li>
<li><p><strong>len</strong> Data len </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>length of data written </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t">
<span id="_CPPv3N9esp_modem8Terminal4readEP7uint8_t6size_t"></span><span id="_CPPv2N9esp_modem8Terminal4readEP7uint8_t6size_t"></span><span id="esp_modem::Terminal::read__uint8_tP.s"></span><span class="target" id="classesp__modem_1_1_terminal_1a66e832c319e7c8f523043a04d4972a31"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">read</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">data</span></span>, <span class="n"><span class="pre">size_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">len</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Read from the terminal. This function doesnt block, but return all available data. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>data</strong> Data pointer to store the read payload </p></li>
<li><p><strong>len</strong> Maximum data len to read </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>length of data actually read </p>
</dd>
</dl>
</dd></dl>
</div>
</dd></dl>
</dd></dl>
</section>
<section id="cmux-implementation">
<span id="cmux-impl"></span><h3>CMUX implementation<a class="headerlink" href="#cmux-implementation" title="Permalink to this headline"></a></h3>
<dl>
<dt class="sig sig-object cpp">
<span class="target" id="group___e_s_p___m_o_d_e_m___c_m_u_x"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">ESP_MODEM_CMUX</span></span></dt>
<dd><p>Definition of CMUX terminal. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-enums">Enums</p>
<dl class="cpp enum-class">
<dt class="sig sig-object cpp" id="_CPPv410cmux_state">
<span id="_CPPv310cmux_state"></span><span id="_CPPv210cmux_state"></span><span class="target" id="group___e_s_p___m_o_d_e_m___c_m_u_x_1gaed095049f722d0a7b9bcc1e545279627"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">cmux_state</span></span></span><a class="headerlink" href="#_CPPv410cmux_state" title="Permalink to this definition"></a><br /></dt>
<dd><p>CMUX state machine. </p>
<p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10cmux_state4INITE">
<span id="_CPPv3N10cmux_state4INITE"></span><span id="_CPPv2N10cmux_state4INITE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___c_m_u_x_1ggaed095049f722d0a7b9bcc1e545279627afaee4ca3c30ee18148ce3ada37466498"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">INIT</span></span></span><a class="headerlink" href="#_CPPv4N10cmux_state4INITE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10cmux_state6HEADERE">
<span id="_CPPv3N10cmux_state6HEADERE"></span><span id="_CPPv2N10cmux_state6HEADERE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___c_m_u_x_1ggaed095049f722d0a7b9bcc1e545279627a7ad4905b4543ab4a1637dd23c50e36ce"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">HEADER</span></span></span><a class="headerlink" href="#_CPPv4N10cmux_state6HEADERE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10cmux_state7PAYLOADE">
<span id="_CPPv3N10cmux_state7PAYLOADE"></span><span id="_CPPv2N10cmux_state7PAYLOADE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___c_m_u_x_1ggaed095049f722d0a7b9bcc1e545279627aca8fef80e43c8db749b7c9406d535b1a"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PAYLOAD</span></span></span><a class="headerlink" href="#_CPPv4N10cmux_state7PAYLOADE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10cmux_state6FOOTERE">
<span id="_CPPv3N10cmux_state6FOOTERE"></span><span id="_CPPv2N10cmux_state6FOOTERE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___c_m_u_x_1ggaed095049f722d0a7b9bcc1e545279627a126ad83a6c76b6a5f45c0dd3ee780082"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FOOTER</span></span></span><a class="headerlink" href="#_CPPv4N10cmux_state6FOOTERE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10cmux_state7RECOVERE">
<span id="_CPPv3N10cmux_state7RECOVERE"></span><span id="_CPPv2N10cmux_state7RECOVERE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___c_m_u_x_1ggaed095049f722d0a7b9bcc1e545279627aea625ca593694ee20079bd188f84fa29"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">RECOVER</span></span></span><a class="headerlink" href="#_CPPv4N10cmux_state7RECOVERE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
</dd></dl>
</div>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem4CMuxE">
<span id="_CPPv3N9esp_modem4CMuxE"></span><span id="_CPPv2N9esp_modem4CMuxE"></span><span id="esp_modem::CMux"></span><span class="target" id="classesp__modem_1_1_c_mux"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">CMux</span></span></span><a class="headerlink" href="#_CPPv4N9esp_modem4CMuxE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_cmux.hpp&gt;</em></div>
<p><a class="reference internal" href="#classesp__modem_1_1_c_mux"><span class="std std-ref">CMux</span></a> class which consumes the original terminal and creates multiple virtual terminals from it. This class itself is not usable as a <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> terminal, only via its instances defined in <code class="docutils literal notranslate"><a class="reference internal" href="#classesp__modem_1_1_c_mux_instance"><span class="std std-ref"><span class="pre">CMuxInstance</span></span></a></code> </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem4CMux4initEv">
<span id="_CPPv3N9esp_modem4CMux4initEv"></span><span id="_CPPv2N9esp_modem4CMux4initEv"></span><span id="esp_modem::CMux::init"></span><span class="target" id="classesp__modem_1_1_c_mux_1ace5f9a7649c59f1e1f96cf2dfe15974b"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">init</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem4CMux4initEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Initializes <a class="reference internal" href="#classesp__modem_1_1_c_mux"><span class="std std-ref">CMux</span></a> protocol. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>true on success </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem4CMux6deinitEv">
<span id="_CPPv3N9esp_modem4CMux6deinitEv"></span><span id="_CPPv2N9esp_modem4CMux6deinitEv"></span><span id="esp_modem::CMux::deinit"></span><span class="target" id="classesp__modem_1_1_c_mux_1a0554bbcad822a194050cb9001012f21c"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">deinit</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem4CMux6deinitEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Closes and deinits <a class="reference internal" href="#classesp__modem_1_1_c_mux"><span class="std std-ref">CMux</span></a> protocol. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>true on success </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem4CMux6detachEv">
<span id="_CPPv3N9esp_modem4CMux6detachEv"></span><span id="_CPPv2N9esp_modem4CMux6detachEv"></span><span id="esp_modem::CMux::detach"></span><span class="target" id="classesp__modem_1_1_c_mux_1a3ba702194bf013efe9dfe1dd63c3ee3f"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">pair</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N9esp_modem8TerminalE" title="esp_modem::Terminal"><span class="n"><span class="pre">Terminal</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">unique_buffer</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">detach</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem4CMux6detachEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Ejects the attached terminal and buffer, so they could be used as traditional command/data <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a>s. </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>pair of the original terminal and buffer </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE">
<span id="_CPPv3N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE"></span><span id="_CPPv2N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE"></span><span class="target" id="classesp__modem_1_1_c_mux_1aba3d6829a8c936013d71e81f24f80054"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_read_cb</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">inst</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">function</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">bool</span></span><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">size_t</span></span><span class="w"> </span><span class="n"><span class="pre">len</span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">f</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets read callback for the appropriate terminal. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inst</strong> Index of the terminal </p></li>
<li><p><strong>f</strong> function pointer </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t">
<span id="_CPPv3N9esp_modem4CMux5writeEiP7uint8_t6size_t"></span><span id="_CPPv2N9esp_modem4CMux5writeEiP7uint8_t6size_t"></span><span id="esp_modem::CMux::write__i.uint8_tP.s"></span><span class="target" id="classesp__modem_1_1_c_mux_1ac3362af09a829ae5001c8667da418f9d"></span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">write</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">i</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">data</span></span>, <span class="n"><span class="pre">size_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">len</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Writes to the appropriate terminal. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>i</strong> Index of the terminal </p></li>
<li><p><strong>data</strong> Data to write </p></li>
<li><p><strong>len</strong> Data length to write </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The actual written length </p>
</dd>
</dl>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem12CMuxInstanceE">
<span id="_CPPv3N9esp_modem12CMuxInstanceE"></span><span id="_CPPv2N9esp_modem12CMuxInstanceE"></span><span id="esp_modem::CMuxInstance"></span><span class="target" id="classesp__modem_1_1_c_mux_instance"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">CMuxInstance</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N9esp_modem8TerminalE" title="esp_modem::Terminal"><span class="n"><span class="pre">Terminal</span></span></a><a class="headerlink" href="#_CPPv4N9esp_modem12CMuxInstanceE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_cmux.hpp&gt;</em></div>
<p>This represents a specific instance of a CMUX virtual terminal. This class also implements <a class="reference internal" href="#classesp__modem_1_1_terminal"><span class="std std-ref">Terminal</span></a> interface and as such could be used as a <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a>s terminal. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t">
<span id="_CPPv3N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t"></span><span id="_CPPv2N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t"></span><span id="esp_modem::CMuxInstance::write__uint8_tP.s"></span><span class="target" id="classesp__modem_1_1_c_mux_instance_1a439640b744fbc33d6ae559c3b8dc2cf6"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">write</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">data</span></span>, <span class="n"><span class="pre">size_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">len</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Writes data to the terminal. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>data</strong> Data pointer </p></li>
<li><p><strong>len</strong> Data len </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>length of data written </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t">
<span id="_CPPv3N9esp_modem12CMuxInstance4readEP7uint8_t6size_t"></span><span id="_CPPv2N9esp_modem12CMuxInstance4readEP7uint8_t6size_t"></span><span id="esp_modem::CMuxInstance::read__uint8_tP.s"></span><span class="target" id="classesp__modem_1_1_c_mux_instance_1ae460145a1298c8afeee0583cdc765bb7"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">read</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">data</span></span>, <span class="n"><span class="pre">size_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">len</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Read from the terminal. This function doesnt block, but return all available data. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>data</strong> Data pointer to store the read payload </p></li>
<li><p><strong>len</strong> Maximum data len to read </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>length of data actually read </p>
</dd>
</dl>
</dd></dl>
</div>
</dd></dl>
</dd></dl>
</section>
</section>
<section id="netif">
<span id="netif-impl"></span><h2>Netif<a class="headerlink" href="#netif" title="Permalink to this headline"></a></h2>
<dl>
<dt class="sig sig-object cpp">
<span class="target" id="group___e_s_p___m_o_d_e_m___n_e_t_i_f"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">ESP_MODEM_NETIF</span></span></dt>
<dd><p>Network interface layer of the esp-modem. </p>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem5NetifE">
<span id="_CPPv3N9esp_modem5NetifE"></span><span id="_CPPv2N9esp_modem5NetifE"></span><span id="esp_modem::Netif"></span><span class="target" id="classesp__modem_1_1_netif"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">Netif</span></span></span><a class="headerlink" href="#_CPPv4N9esp_modem5NetifE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_netif.hpp&gt;</em></div>
<p>Network interface class responsible to glue the esp-netif to the modems <a class="reference internal" href="#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a>. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem5Netif5startEv">
<span id="_CPPv3N9esp_modem5Netif5startEv"></span><span id="_CPPv2N9esp_modem5Netif5startEv"></span><span id="esp_modem::Netif::start"></span><span class="target" id="classesp__modem_1_1_netif_1a034151f6cef0477da008e1e24d7839cd"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">start</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem5Netif5startEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Start the network interface. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem5Netif20wait_until_ppp_exitsEv">
<span id="_CPPv3N9esp_modem5Netif20wait_until_ppp_exitsEv"></span><span id="_CPPv2N9esp_modem5Netif20wait_until_ppp_exitsEv"></span><span id="esp_modem::Netif::wait_until_ppp_exits"></span><span class="target" id="classesp__modem_1_1_netif_1a51d39473a7cbdb70b0a6586d04ce3db3"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">wait_until_ppp_exits</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem5Netif20wait_until_ppp_exitsEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Blocks until the network interface closes. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem5Netif4stopEv">
<span id="_CPPv3N9esp_modem5Netif4stopEv"></span><span id="_CPPv2N9esp_modem5Netif4stopEv"></span><span id="esp_modem::Netif::stop"></span><span class="target" id="classesp__modem_1_1_netif_1a56d545c5e9f3e9177ebc6a6cc73928d0"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">stop</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem5Netif4stopEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Stop the network interface. </p>
</dd></dl>
</div>
</dd></dl>
</dd></dl>
</section>
<section id="module-abstraction">
<span id="module-impl"></span><h2>Module abstraction<a class="headerlink" href="#module-abstraction" title="Permalink to this headline"></a></h2>
<dl>
<dt class="sig sig-object cpp">
<span class="target" id="group___e_s_p___m_o_d_e_m___m_o_d_u_l_e"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">ESP_MODEM_MODULE</span></span></dt>
<dd><p>Definition of modules representing specific modem devices. </p>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem13GenericModuleE">
<span id="_CPPv3N9esp_modem13GenericModuleE"></span><span id="_CPPv2N9esp_modem13GenericModuleE"></span><span id="esp_modem::GenericModule"></span><span class="target" id="classesp__modem_1_1_generic_module"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">GenericModule</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N9esp_modem8ModuleIfE" title="esp_modem::ModuleIf"><span class="n"><span class="pre">ModuleIf</span></span></a><a class="headerlink" href="#_CPPv4N9esp_modem13GenericModuleE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_dce_module.hpp&gt;</em></div>
<p>This is a basic building block for custom modules as well as for the supported modules in the esp-modem component It derives from the <a class="reference internal" href="#classesp__modem_1_1_module_if"><span class="std std-ref">ModuleIf</span></a>. </p>
<p>Subclassed by <a class="reference internal" href="#classesp__modem_1_1_b_g96"><span class="std std-ref">esp_modem::BG96</span></a>, <a class="reference internal" href="#classesp__modem_1_1_s_i_m7000"><span class="std std-ref">esp_modem::SIM7000</span></a>, <a class="reference internal" href="#classesp__modem_1_1_s_i_m7070"><span class="std std-ref">esp_modem::SIM7070</span></a>, <a class="reference internal" href="#classesp__modem_1_1_s_i_m7600"><span class="std std-ref">esp_modem::SIM7600</span></a>, <a class="reference internal" href="#classesp__modem_1_1_s_i_m800"><span class="std std-ref">esp_modem::SIM800</span></a></p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE">
<span id="_CPPv3N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE"></span><span id="_CPPv2N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE"></span><span id="esp_modem::GenericModule::GenericModule__std::shared_ptr:DTE:.std::unique_ptr:PdpContext:"></span><span class="target" id="classesp__modem_1_1_generic_module_1a8fc8100cef97138313584368182404c4"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GenericModule</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N9esp_modem3DTEE" title="esp_modem::DTE"><span class="n"><span class="pre">DTE</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">dte</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N9esp_modem10PdpContextE" title="esp_modem::PdpContext"><span class="n"><span class="pre">PdpContext</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">pdp</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>We can construct a generic device with an existent <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> and its configuration The configuration could be either the dce-config struct or just a pdp context. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem13GenericModule15setup_data_modeEv">
<span id="_CPPv3N9esp_modem13GenericModule15setup_data_modeEv"></span><span id="_CPPv2N9esp_modem13GenericModule15setup_data_modeEv"></span><span id="esp_modem::GenericModule::setup_data_mode"></span><span class="target" id="classesp__modem_1_1_generic_module_1a36987c1e3aa36ac5d3b6d06a1e73b821"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setup_data_mode</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N9esp_modem13GenericModule15setup_data_modeEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>This is a mandatory method for <a class="reference internal" href="#classesp__modem_1_1_module_if"><span class="std std-ref">ModuleIf</span></a> class, which sets up the device to be able to connect to the network. This typically consists of setting basic communication parameters and setting the PDP (defining logical access point to cellular network) </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem13GenericModule8set_modeE10modem_mode">
<span id="_CPPv3N9esp_modem13GenericModule8set_modeE10modem_mode"></span><span id="_CPPv2N9esp_modem13GenericModule8set_modeE10modem_mode"></span><span id="esp_modem::GenericModule::set_mode__modem_mode"></span><span class="target" id="classesp__modem_1_1_generic_module_1ae5a7b637303143a87f654e9e5c6f6611"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_mode</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv410modem_mode" title="modem_mode"><span class="n"><span class="pre">modem_mode</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">mode</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N9esp_modem13GenericModule8set_modeE10modem_mode" title="Permalink to this definition"></a><br /></dt>
<dd><p>This is a mandatory method of <a class="reference internal" href="#classesp__modem_1_1_module_if"><span class="std std-ref">ModuleIf</span></a> class, which defines basic commands for switching between DATA, COMMAND and CMUX modes. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem13GenericModule21configure_pdp_contextENSt10unique_ptrI10PdpContextEE">
<span id="_CPPv3N9esp_modem13GenericModule21configure_pdp_contextENSt10unique_ptrI10PdpContextEE"></span><span id="_CPPv2N9esp_modem13GenericModule21configure_pdp_contextENSt10unique_ptrI10PdpContextEE"></span><span id="esp_modem::GenericModule::configure_pdp_context__std::unique_ptr:PdpContext:"></span><span class="target" id="classesp__modem_1_1_generic_module_1afdf31de445b80670afff0253a3cabef4"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">configure_pdp_context</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N9esp_modem10PdpContextE" title="esp_modem::PdpContext"><span class="n"><span class="pre">PdpContext</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">new_pdp</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem13GenericModule21configure_pdp_contextENSt10unique_ptrI10PdpContextEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Additional method providing runtime configuration of PDP context. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem13GenericModule17get_operator_nameERNSt6stringE">
<span id="_CPPv3N9esp_modem13GenericModule17get_operator_nameERNSt6stringE"></span><span id="_CPPv2N9esp_modem13GenericModule17get_operator_nameERNSt6stringE"></span><span id="esp_modem::GenericModule::get_operator_name__ssR"></span><span class="target" id="classesp__modem_1_1_generic_module_1a56b7529540a2abc727232eeed81214cc"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">get_operator_name</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">name</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem13GenericModule17get_operator_nameERNSt6stringE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Simplified version of operator name (without the ACT, which is included in the command library) </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem7SIM7600E">
<span id="_CPPv3N9esp_modem7SIM7600E"></span><span id="_CPPv2N9esp_modem7SIM7600E"></span><span id="esp_modem::SIM7600"></span><span class="target" id="classesp__modem_1_1_s_i_m7600"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SIM7600</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N9esp_modem13GenericModuleE" title="esp_modem::GenericModule"><span class="n"><span class="pre">GenericModule</span></span></a><a class="headerlink" href="#_CPPv4N9esp_modem7SIM7600E" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_dce_module.hpp&gt;</em></div>
<p>Specific definition of the <a class="reference internal" href="#classesp__modem_1_1_s_i_m7600"><span class="std std-ref">SIM7600</span></a> module. </p>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem7SIM7070E">
<span id="_CPPv3N9esp_modem7SIM7070E"></span><span id="_CPPv2N9esp_modem7SIM7070E"></span><span id="esp_modem::SIM7070"></span><span class="target" id="classesp__modem_1_1_s_i_m7070"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SIM7070</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N9esp_modem13GenericModuleE" title="esp_modem::GenericModule"><span class="n"><span class="pre">GenericModule</span></span></a><a class="headerlink" href="#_CPPv4N9esp_modem7SIM7070E" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_dce_module.hpp&gt;</em></div>
<p>Specific definition of the <a class="reference internal" href="#classesp__modem_1_1_s_i_m7070"><span class="std std-ref">SIM7070</span></a> module. </p>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem7SIM7000E">
<span id="_CPPv3N9esp_modem7SIM7000E"></span><span id="_CPPv2N9esp_modem7SIM7000E"></span><span id="esp_modem::SIM7000"></span><span class="target" id="classesp__modem_1_1_s_i_m7000"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SIM7000</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N9esp_modem13GenericModuleE" title="esp_modem::GenericModule"><span class="n"><span class="pre">GenericModule</span></span></a><a class="headerlink" href="#_CPPv4N9esp_modem7SIM7000E" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_dce_module.hpp&gt;</em></div>
<p>Specific definition of the <a class="reference internal" href="#classesp__modem_1_1_s_i_m7000"><span class="std std-ref">SIM7000</span></a> module. </p>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem6SIM800E">
<span id="_CPPv3N9esp_modem6SIM800E"></span><span id="_CPPv2N9esp_modem6SIM800E"></span><span id="esp_modem::SIM800"></span><span class="target" id="classesp__modem_1_1_s_i_m800"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SIM800</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N9esp_modem13GenericModuleE" title="esp_modem::GenericModule"><span class="n"><span class="pre">GenericModule</span></span></a><a class="headerlink" href="#_CPPv4N9esp_modem6SIM800E" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_dce_module.hpp&gt;</em></div>
<p>Specific definition of the <a class="reference internal" href="#classesp__modem_1_1_s_i_m800"><span class="std std-ref">SIM800</span></a> module. </p>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem4BG96E">
<span id="_CPPv3N9esp_modem4BG96E"></span><span id="_CPPv2N9esp_modem4BG96E"></span><span id="esp_modem::BG96"></span><span class="target" id="classesp__modem_1_1_b_g96"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">BG96</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N9esp_modem13GenericModuleE" title="esp_modem::GenericModule"><span class="n"><span class="pre">GenericModule</span></span></a><a class="headerlink" href="#_CPPv4N9esp_modem4BG96E" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_dce_module.hpp&gt;</em></div>
<p>Specific definition of the <a class="reference internal" href="#classesp__modem_1_1_b_g96"><span class="std std-ref">BG96</span></a> module. </p>
</dd></dl>
</dd></dl>
<section id="adding-new-devices">
<span id="module-addition"></span><h3>Adding new devices<a class="headerlink" href="#adding-new-devices" title="Permalink to this headline"></a></h3>
<p>To support a new module, developers would have to implement a new class derived from <a class="reference internal" href="#_CPPv4N9esp_modem13GenericModuleE" title="esp_modem::GenericModule"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">esp_modem::GenericModule</span></code></a> the same way
as it is described in the <a class="reference internal" href="advanced_api.html#create-custom-module"><span class="std std-ref">Advanced user manual</span></a>. The only difference is that the new class (and factory extension)
would be available in the esp_modem code base.</p>
</section>
<section id="implement-a-new-generic-command">
<h3>Implement a new generic command<a class="headerlink" href="#implement-a-new-generic-command" title="Permalink to this headline"></a></h3>
<p>Adding a generic command, i.e. the command that is shared for all modules and is included in the <a class="reference internal" href="#_CPPv4N9esp_modem13GenericModuleE" title="esp_modem::GenericModule"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">esp_modem::GenericModule</span></code></a>,
has to be declared first in the <code class="docutils literal notranslate"><span class="pre">include/generate/esp_modem_command_declare.inc</span></code> file, which is the single source
of supported command definitions, that is used in:</p>
<ul class="simple">
<li><p>public C API</p></li>
<li><p>public CPP API</p></li>
<li><p>generated documentation</p></li>
<li><p>implementation of the command</p></li>
</ul>
<p>Therefore, a care must be taken, to correctly specify all parameters and types, especially:</p>
<ul class="simple">
<li><p>Keep number of parameters low (&lt;= 6, used in preprocessors forwarding to the command library)</p></li>
<li><p>Use macros to specify parameter types (as they are used both from C and C++ with different underlying types)</p></li>
<li><p>Parameter names are used only for clarity and documentation, they get expanded to numbered arguments.</p></li>
</ul>
<p>Please use the following pattern: <code class="docutils literal notranslate"><span class="pre">INT_IN(p1,</span> <span class="pre">baud)</span></code>, meaning that the parameter is an input integer,
human readable argument name is <code class="docutils literal notranslate"><span class="pre">baud</span></code>, its the first argument, so expands to <code class="docutils literal notranslate"><span class="pre">p1</span></code> (second argument would be <code class="docutils literal notranslate"><span class="pre">p2</span></code>, etc)</p>
</section>
<section id="command-library">
<h3>Command library<a class="headerlink" href="#command-library" title="Permalink to this headline"></a></h3>
<p>This is a namespace holding a library of typical AT commands used by supported devices.
Please refer to the <a class="reference internal" href="api_docs.html#c-api"><span class="std std-ref">C API Documentation</span></a> for the list of supported commands.</p>
<dl>
<dt class="sig sig-object cpp">
<span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___c_o_m_m_a_n_d"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">ESP_MODEM_DCE_COMMAND</span></span></dt>
<dd><p>Library of the most useful <a class="reference internal" href="#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> commands. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-defines">Defines</p>
<dl class="cpp macro">
<dt class="sig sig-object cpp" id="c.ESP_MODEM_DECLARE_DCE_COMMAND">
<span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___c_o_m_m_a_n_d_1ga20657edb7631c5b196ff6748e6d9f405"></span><span class="sig-name descname"><span class="n"><span class="pre">ESP_MODEM_DECLARE_DCE_COMMAND</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">name</span></span>, <span class="n"><span class="pre">return_type</span></span>, <span class="n"><span class="pre">num</span></span>, <span class="p"><span class="pre">...</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.ESP_MODEM_DECLARE_DCE_COMMAND" title="Permalink to this definition"></a><br /></dt>
<dd><p>Declaration of all commands is generated from esp_modem_command_declare.inc. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv415generic_commandP13CommandableIfRKNSt6stringERKNSt6stringERKNSt6stringE8uint32_t">
<span id="_CPPv315generic_commandP13CommandableIfRKNSt6stringERKNSt6stringERKNSt6stringE8uint32_t"></span><span id="_CPPv215generic_commandP13CommandableIfRKNSt6stringERKNSt6stringERKNSt6stringE8uint32_t"></span><span id="generic_command__CommandableIfP.ssCR.ssCR.ssCR.uint32_t"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___c_o_m_m_a_n_d_1gaddb55985530f5be976cf932dca58b9a8"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">generic_command</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">CommandableIf</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">t</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">command</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">pass_phrase</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">fail_phrase</span></span>, <span class="n"><span class="pre">uint32_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">timeout_ms</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv415generic_commandP13CommandableIfRKNSt6stringERKNSt6stringERKNSt6stringE8uint32_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Generic AT command to be send with pass and fail phrases. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>t</strong> Commandable object (anything that can accept commands) </p></li>
<li><p><strong>command</strong> Command to be sent do the commandable object </p></li>
<li><p><strong>pass_phrase</strong> String to be present in the reply to pass this command </p></li>
<li><p><strong>fail_phrase</strong> String to be present in the reply to fail this command </p></li>
<li><p><strong>timeout_ms</strong> Timeout in ms </p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi">
<span id="_CPPv326get_battery_status_sim7xxxP13CommandableIfRiRiRi"></span><span id="_CPPv226get_battery_status_sim7xxxP13CommandableIfRiRiRi"></span><span id="get_battery_status_sim7xxx__CommandableIfP.iR.iR.iR"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___c_o_m_m_a_n_d_1gad6b5c22981f8274fbccaaea57c43628c"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">get_battery_status_sim7xxx</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">CommandableIf</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">t</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">voltage</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">bcs</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">bcl</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi" title="Permalink to this definition"></a><br /></dt>
<dd><p>Following commands that are different for some specific modules. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi">
<span id="_CPPv327set_gnss_power_mode_sim76xxP13CommandableIfi"></span><span id="_CPPv227set_gnss_power_mode_sim76xxP13CommandableIfi"></span><span id="set_gnss_power_mode_sim76xx__CommandableIfP.i"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___c_o_m_m_a_n_d_1ga059f01a3e02e2788cbd88e6dd9ee8f88"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_gnss_power_mode_sim76xx</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">CommandableIf</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">t</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">mode</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv418power_down_sim76xxP13CommandableIf">
<span id="_CPPv318power_down_sim76xxP13CommandableIf"></span><span id="_CPPv218power_down_sim76xxP13CommandableIf"></span><span id="power_down_sim76xx__CommandableIfP"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___c_o_m_m_a_n_d_1ga2c5425184e6412ed1fd26a131c2f12f0"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">power_down_sim76xx</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">CommandableIf</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">t</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418power_down_sim76xxP13CommandableIf" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv418power_down_sim70xxP13CommandableIf">
<span id="_CPPv318power_down_sim70xxP13CommandableIf"></span><span id="_CPPv218power_down_sim70xxP13CommandableIf"></span><span id="power_down_sim70xx__CommandableIfP"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___c_o_m_m_a_n_d_1ga5c77c76b111445d0994664a526f4cb3a"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">power_down_sim70xx</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">CommandableIf</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">t</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418power_down_sim70xxP13CommandableIf" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii">
<span id="_CPPv325set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii"></span><span id="_CPPv225set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii"></span><span id="set_network_bands_sim76xx__CommandableIfP.ssCR.iCP.i"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___c_o_m_m_a_n_d_1gaef65172c7740ab61f7cce6617064e823"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_network_bands_sim76xx</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">CommandableIf</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">t</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">mode</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">bands</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv417power_down_sim8xxP13CommandableIf">
<span id="_CPPv317power_down_sim8xxP13CommandableIf"></span><span id="_CPPv217power_down_sim8xxP13CommandableIf"></span><span id="power_down_sim8xx__CommandableIfP"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___c_o_m_m_a_n_d_1ga633632d57c75217d292f44f796ba1464"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">power_down_sim8xx</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">CommandableIf</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">t</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417power_down_sim8xxP13CommandableIf" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv420set_data_mode_sim8xxP13CommandableIf">
<span id="_CPPv320set_data_mode_sim8xxP13CommandableIf"></span><span id="_CPPv220set_data_mode_sim8xxP13CommandableIf"></span><span id="set_data_mode_sim8xx__CommandableIfP"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___c_o_m_m_a_n_d_1ga8dcf51336d9a7c47b1918b949fed4ff4"></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_data_mode_sim8xx</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">CommandableIf</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">t</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420set_data_mode_sim8xxP13CommandableIf" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
</div>
</dd></dl>
</section>
</section>
<section id="modem-types">
<h2>Modem types<a class="headerlink" href="#modem-types" title="Permalink to this headline"></a></h2>
<dl>
<dt class="sig sig-object cpp">
<span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">ESP_MODEM_TYPES</span></span></dt>
<dd><p>Basic type definitions used in esp-modem. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-typedefs">Typedefs</p>
<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv411got_line_cb">
<span id="_CPPv311got_line_cb"></span><span id="_CPPv211got_line_cb"></span><span id="got_line_cb"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1ga484e7972ab5a57197412e24f5e0935b6"></span><span class="k"><span class="pre">typedef</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">function</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="p"><span class="pre">(</span></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">size_t</span></span><span class="w"> </span><span class="n"><span class="pre">len</span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">got_line_cb</span></span></span><a class="headerlink" href="#_CPPv411got_line_cb" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-enums">Enums</p>
<dl class="cpp enum-class">
<dt class="sig sig-object cpp" id="_CPPv410modem_mode">
<span id="_CPPv310modem_mode"></span><span id="_CPPv210modem_mode"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1ga80fa0ae4f6b04bc4e753bd207e0f298f"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">modem_mode</span></span></span><a class="headerlink" href="#_CPPv410modem_mode" title="Permalink to this definition"></a><br /></dt>
<dd><p>Modem working mode. </p>
<p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10modem_mode5UNDEFE">
<span id="_CPPv3N10modem_mode5UNDEFE"></span><span id="_CPPv2N10modem_mode5UNDEFE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1gga80fa0ae4f6b04bc4e753bd207e0f298fab3f7791472924b0d1530bb9112409c01"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">UNDEF</span></span></span><a class="headerlink" href="#_CPPv4N10modem_mode5UNDEFE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10modem_mode12COMMAND_MODEE">
<span id="_CPPv3N10modem_mode12COMMAND_MODEE"></span><span id="_CPPv2N10modem_mode12COMMAND_MODEE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1gga80fa0ae4f6b04bc4e753bd207e0f298fa023ec1c4bd62841e0c7d56d231e9c739"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">COMMAND_MODE</span></span></span><a class="headerlink" href="#_CPPv4N10modem_mode12COMMAND_MODEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Command mode &amp;#8212; the modem is supposed to send AT commands in this mode </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10modem_mode9DATA_MODEE">
<span id="_CPPv3N10modem_mode9DATA_MODEE"></span><span id="_CPPv2N10modem_mode9DATA_MODEE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1gga80fa0ae4f6b04bc4e753bd207e0f298fa58e19a67d77f6b9de4aeb7f7ca337ee2"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DATA_MODE</span></span></span><a class="headerlink" href="#_CPPv4N10modem_mode9DATA_MODEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Data mode &amp;#8212; the modem communicates with network interface on PPP protocol </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10modem_mode9DUAL_MODEE">
<span id="_CPPv3N10modem_mode9DUAL_MODEE"></span><span id="_CPPv2N10modem_mode9DUAL_MODEE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1gga80fa0ae4f6b04bc4e753bd207e0f298fac75f54654892056669a356668f58234c"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DUAL_MODE</span></span></span><a class="headerlink" href="#_CPPv4N10modem_mode9DUAL_MODEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Dual mode &amp;#8212; the modem has two real terminals. Data and commands work at the same time </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10modem_mode9CMUX_MODEE">
<span id="_CPPv3N10modem_mode9CMUX_MODEE"></span><span id="_CPPv2N10modem_mode9CMUX_MODEE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1gga80fa0ae4f6b04bc4e753bd207e0f298fa30495670a3b2cf47b0dea06ee25e148b"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CMUX_MODE</span></span></span><a class="headerlink" href="#_CPPv4N10modem_mode9CMUX_MODEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>CMUX (Multiplex mode) &amp;#8212; Simplified CMUX mode, which creates two virtual terminals, assigning one solely to command interface and the other to the data mode </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10modem_mode16CMUX_MANUAL_MODEE">
<span id="_CPPv3N10modem_mode16CMUX_MANUAL_MODEE"></span><span id="_CPPv2N10modem_mode16CMUX_MANUAL_MODEE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1gga80fa0ae4f6b04bc4e753bd207e0f298fab743b2073eeb0e4c9e74eee12a85a7be"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CMUX_MANUAL_MODE</span></span></span><a class="headerlink" href="#_CPPv4N10modem_mode16CMUX_MANUAL_MODEE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Enter CMUX mode manually &amp;#8212; just creates two virtual terminals </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10modem_mode16CMUX_MANUAL_EXITE">
<span id="_CPPv3N10modem_mode16CMUX_MANUAL_EXITE"></span><span id="_CPPv2N10modem_mode16CMUX_MANUAL_EXITE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1gga80fa0ae4f6b04bc4e753bd207e0f298fa18020383cbb089af86fcd6c03022e07e"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CMUX_MANUAL_EXIT</span></span></span><a class="headerlink" href="#_CPPv4N10modem_mode16CMUX_MANUAL_EXITE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Exits CMUX mode manually &amp;#8212; just destroys two virtual terminals </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10modem_mode16CMUX_MANUAL_DATAE">
<span id="_CPPv3N10modem_mode16CMUX_MANUAL_DATAE"></span><span id="_CPPv2N10modem_mode16CMUX_MANUAL_DATAE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1gga80fa0ae4f6b04bc4e753bd207e0f298fa6760eba19cb853baf86e8c4891900057"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CMUX_MANUAL_DATA</span></span></span><a class="headerlink" href="#_CPPv4N10modem_mode16CMUX_MANUAL_DATAE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets the primary terminal to DATA mode in manual CMUX </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10modem_mode19CMUX_MANUAL_COMMANDE">
<span id="_CPPv3N10modem_mode19CMUX_MANUAL_COMMANDE"></span><span id="_CPPv2N10modem_mode19CMUX_MANUAL_COMMANDE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1gga80fa0ae4f6b04bc4e753bd207e0f298fad33394d6e30a6088b08952f1f2042be8"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CMUX_MANUAL_COMMAND</span></span></span><a class="headerlink" href="#_CPPv4N10modem_mode19CMUX_MANUAL_COMMANDE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets the primary terminal to COMMAND mode in manual CMUX </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N10modem_mode16CMUX_MANUAL_SWAPE">
<span id="_CPPv3N10modem_mode16CMUX_MANUAL_SWAPE"></span><span id="_CPPv2N10modem_mode16CMUX_MANUAL_SWAPE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1gga80fa0ae4f6b04bc4e753bd207e0f298fa9041c46657e9f5e67f3111dcc2297c31"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CMUX_MANUAL_SWAP</span></span></span><a class="headerlink" href="#_CPPv4N10modem_mode16CMUX_MANUAL_SWAPE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Swaps virtual terminals in manual CMUX mode (primary &lt;-&gt; secondary) </p>
</dd></dl>
</dd></dl>
<dl class="cpp enum-class">
<dt class="sig sig-object cpp" id="_CPPv414command_result">
<span id="_CPPv314command_result"></span><span id="_CPPv214command_result"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1gac47d24e750cc329387e893697d1f132f"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">command_result</span></span></span><a class="headerlink" href="#_CPPv414command_result" title="Permalink to this definition"></a><br /></dt>
<dd><p>Module command result. </p>
<p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N14command_result2OKE">
<span id="_CPPv3N14command_result2OKE"></span><span id="_CPPv2N14command_result2OKE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1ggac47d24e750cc329387e893697d1f132fae0aa021e21dddbd6d8cecec71e9cf564"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OK</span></span></span><a class="headerlink" href="#_CPPv4N14command_result2OKE" title="Permalink to this definition"></a><br /></dt>
<dd><p>The command completed successfully </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N14command_result4FAILE">
<span id="_CPPv3N14command_result4FAILE"></span><span id="_CPPv2N14command_result4FAILE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1ggac47d24e750cc329387e893697d1f132fac2759effffc94bb9acc71d69fe3e8a1f"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FAIL</span></span></span><a class="headerlink" href="#_CPPv4N14command_result4FAILE" title="Permalink to this definition"></a><br /></dt>
<dd><p>The command explicitly failed </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N14command_result7TIMEOUTE">
<span id="_CPPv3N14command_result7TIMEOUTE"></span><span id="_CPPv2N14command_result7TIMEOUTE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___t_y_p_e_s_1ggac47d24e750cc329387e893697d1f132fa070a0fb40f6c308ab544b227660aadff"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">TIMEOUT</span></span></span><a class="headerlink" href="#_CPPv4N14command_result7TIMEOUTE" title="Permalink to this definition"></a><br /></dt>
<dd><p>The device didnt respond in the specified timeline </p>
</dd></dl>
</dd></dl>
</div>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem10PdpContextE">
<span id="_CPPv3N9esp_modem10PdpContextE"></span><span id="_CPPv2N9esp_modem10PdpContextE"></span><span id="esp_modem::PdpContext"></span><span class="target" id="structesp__modem_1_1_pdp_context"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PdpContext</span></span></span><a class="headerlink" href="#_CPPv4N9esp_modem10PdpContextE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_types.hpp&gt;</em></div>
<p>PDP context used for configuring and setting the data mode up. </p>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem13CommandableIfE">
<span id="_CPPv3N9esp_modem13CommandableIfE"></span><span id="_CPPv2N9esp_modem13CommandableIfE"></span><span id="esp_modem::CommandableIf"></span><span class="target" id="classesp__modem_1_1_commandable_if"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">CommandableIf</span></span></span><a class="headerlink" href="#_CPPv4N9esp_modem13CommandableIfE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_types.hpp&gt;</em></div>
<p>Interface for classes eligible to send AT commands (Modules, DCEs, DTEs) </p>
<p>Subclassed by <a class="reference internal" href="#classesp__modem_1_1_d_t_e"><span class="std std-ref">esp_modem::DTE</span></a></p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc">
<span id="_CPPv3N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc"></span><span id="_CPPv2N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc"></span><span id="esp_modem::CommandableIf::command__ssCR.got_line_cb.uint32_t.cC"></span><span class="target" id="classesp__modem_1_1_commandable_if_1a9af6c6ad4597fb234cfe11e9b6635c0b"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414command_result" title="command_result"><span class="n"><span class="pre">command_result</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">command</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">command</span></span>, <a class="reference internal" href="#_CPPv411got_line_cb" title="got_line_cb"><span class="n"><span class="pre">got_line_cb</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">got_line</span></span>, <span class="n"><span class="pre">uint32_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">time_ms</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">separator</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sends custom AT command. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>command</strong> Command to be sent </p></li>
<li><p><strong>got_line</strong> callback if a line received </p></li>
<li><p><strong>time_ms</strong> timeout in milliseconds </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>OK, FAIL or TIMEOUT </p>
</dd>
</dl>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem8ModuleIfE">
<span id="_CPPv3N9esp_modem8ModuleIfE"></span><span id="_CPPv2N9esp_modem8ModuleIfE"></span><span id="esp_modem::ModuleIf"></span><span class="target" id="classesp__modem_1_1_module_if"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">ModuleIf</span></span></span><a class="headerlink" href="#_CPPv4N9esp_modem8ModuleIfE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_types.hpp&gt;</em></div>
<p>Interface for classes implementing a module for the modem. </p>
<p>Subclassed by <a class="reference internal" href="#classesp__modem_1_1_generic_module"><span class="std std-ref">esp_modem::GenericModule</span></a></p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem8ModuleIf15setup_data_modeEv">
<span id="_CPPv3N9esp_modem8ModuleIf15setup_data_modeEv"></span><span id="_CPPv2N9esp_modem8ModuleIf15setup_data_modeEv"></span><span id="esp_modem::ModuleIf::setup_data_mode"></span><span class="target" id="classesp__modem_1_1_module_if_1adc06f1aec13bcc3674bed47eadf1f3b3"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setup_data_mode</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N9esp_modem8ModuleIf15setup_data_modeEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets the data mode up (provides the necessary configuration to connect to the cellular network) </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>true on success </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem8ModuleIf8set_modeE10modem_mode">
<span id="_CPPv3N9esp_modem8ModuleIf8set_modeE10modem_mode"></span><span id="_CPPv2N9esp_modem8ModuleIf8set_modeE10modem_mode"></span><span id="esp_modem::ModuleIf::set_mode__modem_mode"></span><span class="target" id="classesp__modem_1_1_module_if_1ab6bb69e6d18bb16101c20857394a8eab"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_mode</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv410modem_mode" title="modem_mode"><span class="n"><span class="pre">modem_mode</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">mode</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N9esp_modem8ModuleIf8set_modeE10modem_mode" title="Permalink to this definition"></a><br /></dt>
<dd><p>Sets the operation mode. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>mode</strong> Desired mode </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>true on success </p>
</dd>
</dl>
</dd></dl>
</div>
</dd></dl>
</dd></dl>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">esp-modem</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="README.html">Brief intro</a></li>
<li class="toctree-l1"><a class="reference internal" href="api_docs.html">C interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="cxx_api_docs.html">C++ interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced_api.html">Advanced use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="internal_design.html">Internal design</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Internal implementation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#dte-abstraction">DTE abstraction</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#terminal-interface">Terminal interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="#cmux-implementation">CMUX implementation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#netif">Netif</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-abstraction">Module abstraction</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#adding-new-devices">Adding new devices</a></li>
<li class="toctree-l3"><a class="reference internal" href="#implement-a-new-generic-command">Implement a new generic command</a></li>
<li class="toctree-l3"><a class="reference internal" href="#command-library">Command library</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#modem-types">Modem types</a></li>
</ul>
</li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li>Previous: <a href="internal_design.html" title="previous chapter">Internal design</a></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2016 - 2021, Espressif Systems (Shanghai) Co., Ltd.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.5.0</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.13</a>
|
<a href="_sources/internal_docs.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>