mirror of
				https://github.com/espressif/esp-protocols.git
				synced 2025-11-04 00:21:37 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			1175 lines
		
	
	
		
			128 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			1175 lines
		
	
	
		
			128 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
 | 
						||
<!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.18.1: http://docutils.sourceforge.net/" />
 | 
						||
 | 
						||
    <title>DCE Internal implementation — 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 <esp_modem_dce.hpp></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"><</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">></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 <esp_modem_dce.hpp></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"><</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">></span></span><a class="headerlink" href="#_CPPv4N9esp_modem3DCEE" title="Permalink to this definition">¶</a><br /></dt>
 | 
						||
<dd><div class="docutils container">
 | 
						||
<em>#include <esp_modem_dce.hpp></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<span class="colon">:</span></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_nameERNSt6stringE">
 | 
						||
<span id="_CPPv3N9esp_modem3DCE17get_operator_nameERNSt6stringE"></span><span id="_CPPv2N9esp_modem3DCE17get_operator_nameERNSt6stringE"></span><span id="esp_modem::DCE::get_operator_name__ssR"></span><span class="target" id="classesp__modem_1_1_d_c_e_1aa05c40e6c6559f23de1d3905e63e0197"></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">&</span></span><span class="n sig-param"><span class="pre">name</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE17get_operator_nameERNSt6stringE" 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<span class="colon">:</span></dt>
 | 
						||
<dd class="field-odd"><p><strong>operator</strong> – <strong>[out]</strong> name </p>
 | 
						||
</dd>
 | 
						||
<dt class="field-even">Returns<span class="colon">:</span></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<span class="colon">:</span></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_pinERKNSt6stringE">
 | 
						||
<span id="_CPPv3N9esp_modem3DCE7set_pinERKNSt6stringE"></span><span id="_CPPv2N9esp_modem3DCE7set_pinERKNSt6stringE"></span><span id="esp_modem::DCE::set_pin__ssCR"></span><span class="target" id="classesp__modem_1_1_d_c_e_1aa45248169c7ab1979fca17035db57062"></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="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">&</span></span><span class="n sig-param"><span class="pre">pin</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE7set_pinERKNSt6stringE" 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<span class="colon">:</span></dt>
 | 
						||
<dd class="field-odd"><p><strong>pin</strong> – <strong>[in]</strong> Pin </p>
 | 
						||
</dd>
 | 
						||
<dt class="field-even">Returns<span class="colon">:</span></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_pinERb">
 | 
						||
<span id="_CPPv3N9esp_modem3DCE8read_pinERb"></span><span id="_CPPv2N9esp_modem3DCE8read_pinERb"></span><span id="esp_modem::DCE::read_pin__bR"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a9055f8d714ba23adba7be5acf58f8136"></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="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="p"><span class="pre">&</span></span><span class="n sig-param"><span class="pre">pin_ok</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE8read_pinERb" 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<span class="colon">:</span></dt>
 | 
						||
<dd class="field-odd"><p><strong>pin_ok</strong> – <strong>[out]</strong> true if the SIM card doesn’t need a PIN to unlock </p>
 | 
						||
</dd>
 | 
						||
<dt class="field-even">Returns<span class="colon">:</span></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_echoEKb">
 | 
						||
<span id="_CPPv3N9esp_modem3DCE8set_echoEKb"></span><span id="_CPPv2N9esp_modem3DCE8set_echoEKb"></span><span id="esp_modem::DCE::set_echo__bC"></span><span class="target" id="classesp__modem_1_1_d_c_e_1afe90115748d693a13cf9184d2280b0db"></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="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">echo_on</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE8set_echoEKb" title="Permalink to this definition">¶</a><br /></dt>
 | 
						||
<dd><p>Sets echo mode. </p>
 | 
						||
<dl class="field-list simple">
 | 
						||
<dt class="field-odd">Parameters<span class="colon">:</span></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<span class="colon">:</span></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_modeEKb">
 | 
						||
<span id="_CPPv3N9esp_modem3DCE12sms_txt_modeEKb"></span><span id="_CPPv2N9esp_modem3DCE12sms_txt_modeEKb"></span><span id="esp_modem::DCE::sms_txt_mode__bC"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a016f25608788ab1487bb062c109dc046"></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="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">txt</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE12sms_txt_modeEKb" 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<span class="colon">:</span></dt>
 | 
						||
<dd class="field-odd"><p><strong>txt</strong> – <strong>[in]</strong> true if txt mode </p>
 | 
						||
</dd>
 | 
						||
<dt class="field-even">Returns<span class="colon">:</span></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) charater set. </p>
 | 
						||
<dl class="field-list simple">
 | 
						||
<dt class="field-odd">Returns<span class="colon">:</span></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_smsERKNSt6stringERKNSt6stringE">
 | 
						||
<span id="_CPPv3N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE"></span><span id="esp_modem::DCE::send_sms__ssCR.ssCR"></span><span class="target" id="classesp__modem_1_1_d_c_e_1ae33cfaae15a74414039d4c8a865dded3"></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="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">&</span></span><span class="n sig-param"><span class="pre">number</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">&</span></span><span class="n sig-param"><span class="pre">message</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE" 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<span class="colon">:</span></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<span class="colon">:</span></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 th data mode, which was temporarily suspended) </p>
 | 
						||
<dl class="field-list simple">
 | 
						||
<dt class="field-odd">Returns<span class="colon">:</span></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_contextER10PdpContext">
 | 
						||
<span id="_CPPv3N9esp_modem3DCE15set_pdp_contextER10PdpContext"></span><span id="_CPPv2N9esp_modem3DCE15set_pdp_contextER10PdpContext"></span><span id="esp_modem::DCE::set_pdp_context__PdpContextR"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a9e58a4197f2b8d34be49dc1b6505f55f"></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><a class="reference internal" href="#_CPPv4N9esp_modem10PdpContextE" title="esp_modem::PdpContext"><span class="n"><span class="pre">PdpContext</span></span></a><span class="w"> </span><span class="p"><span class="pre">&</span></span><span class="n sig-param"><span class="pre">p1</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE15set_pdp_contextER10PdpContext" title="Permalink to this definition">¶</a><br /></dt>
 | 
						||
<dd><p>Sets php context. </p>
 | 
						||
<dl class="field-list simple">
 | 
						||
<dt class="field-odd">Parameters<span class="colon">:</span></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<span class="colon">:</span></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<span class="colon">:</span></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<span class="colon">:</span></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_imsiERNSt6stringE">
 | 
						||
<span id="_CPPv3N9esp_modem3DCE8get_imsiERNSt6stringE"></span><span id="_CPPv2N9esp_modem3DCE8get_imsiERNSt6stringE"></span><span id="esp_modem::DCE::get_imsi__ssR"></span><span class="target" id="classesp__modem_1_1_d_c_e_1ab03c9675819fe550b174a1f40a122b0a"></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">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">&</span></span><span class="n sig-param"><span class="pre">imsi</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE8get_imsiERNSt6stringE" 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<span class="colon">:</span></dt>
 | 
						||
<dd class="field-odd"><p><strong>imsi</strong> – <strong>[out]</strong> Module’s IMSI number </p>
 | 
						||
</dd>
 | 
						||
<dt class="field-even">Returns<span class="colon">:</span></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_imeiERNSt6stringE">
 | 
						||
<span id="_CPPv3N9esp_modem3DCE8get_imeiERNSt6stringE"></span><span id="_CPPv2N9esp_modem3DCE8get_imeiERNSt6stringE"></span><span id="esp_modem::DCE::get_imei__ssR"></span><span class="target" id="classesp__modem_1_1_d_c_e_1abc0e081ce74bc4f20e4699faaa674966"></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">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">&</span></span><span class="n sig-param"><span class="pre">imei</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE8get_imeiERNSt6stringE" 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<span class="colon">:</span></dt>
 | 
						||
<dd class="field-odd"><p><strong>imei</strong> – <strong>[out]</strong> Module’s IMEI number </p>
 | 
						||
</dd>
 | 
						||
<dt class="field-even">Returns<span class="colon">:</span></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_nameERNSt6stringE">
 | 
						||
<span id="_CPPv3N9esp_modem3DCE15get_module_nameERNSt6stringE"></span><span id="_CPPv2N9esp_modem3DCE15get_module_nameERNSt6stringE"></span><span id="esp_modem::DCE::get_module_name__ssR"></span><span class="target" id="classesp__modem_1_1_d_c_e_1af5763fd6bcdea19f4bca750d387f45c0"></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">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">&</span></span><span class="n sig-param"><span class="pre">name</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE15get_module_nameERNSt6stringE" 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<span class="colon">:</span></dt>
 | 
						||
<dd class="field-odd"><p><strong>name</strong> – <strong>[out]</strong> module name </p>
 | 
						||
</dd>
 | 
						||
<dt class="field-even">Returns<span class="colon">:</span></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<span class="colon">:</span></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_qualityERiRi">
 | 
						||
<span id="_CPPv3N9esp_modem3DCE18get_signal_qualityERiRi"></span><span id="_CPPv2N9esp_modem3DCE18get_signal_qualityERiRi"></span><span id="esp_modem::DCE::get_signal_quality__iR.iR"></span><span class="target" id="classesp__modem_1_1_d_c_e_1ad55babb50dc8394420c9ca2fc1282b4e"></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="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">rssi</span></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">ber</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi" title="Permalink to this definition">¶</a><br /></dt>
 | 
						||
<dd><p>Get Signal quality. </p>
 | 
						||
<dl class="field-list simple">
 | 
						||
<dt class="field-odd">Parameters<span class="colon">:</span></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<span class="colon">:</span></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_controlEii">
 | 
						||
<span id="_CPPv3N9esp_modem3DCE16set_flow_controlEii"></span><span id="_CPPv2N9esp_modem3DCE16set_flow_controlEii"></span><span id="esp_modem::DCE::set_flow_control__i.i"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a23effa5d3b7f650b7a7874651d16bb42"></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="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">dce_flow</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">dte_flow</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE16set_flow_controlEii" 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<span class="colon">:</span></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<span class="colon">:</span></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<span class="colon">:</span></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_statusERiRiRi">
 | 
						||
<span id="_CPPv3N9esp_modem3DCE18get_battery_statusERiRiRi"></span><span id="_CPPv2N9esp_modem3DCE18get_battery_statusERiRiRi"></span><span id="esp_modem::DCE::get_battery_status__iR.iR.iR"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a9b1b60ffcd71483bc763ad1d2da73ce9"></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="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">voltage</span></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">bcs</span></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">bcl</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi" 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<span class="colon">:</span></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<span class="colon">:</span></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<span class="colon">:</span></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<span class="colon">:</span></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_baudEi">
 | 
						||
<span id="_CPPv3N9esp_modem3DCE8set_baudEi"></span><span id="_CPPv2N9esp_modem3DCE8set_baudEi"></span><span id="esp_modem::DCE::set_baud__i"></span><span class="target" id="classesp__modem_1_1_d_c_e_1a579851a45d862c4400a68183efdd1c7f"></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="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">baud</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem3DCE8set_baudEi" title="Permalink to this definition">¶</a><br /></dt>
 | 
						||
<dd><p>Configures the baudrate. </p>
 | 
						||
<dl class="field-list simple">
 | 
						||
<dt class="field-odd">Parameters<span class="colon">:</span></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<span class="colon">:</span></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 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 <esp_modem_dte.hpp></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"><</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">></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<span class="colon">:</span></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>
 | 
						||
</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_1a51c11d82d5dec6c502d2f32ffc96d928"></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><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<span class="colon">:</span></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<span class="colon">:</span></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<span class="colon">:</span></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<span class="colon">:</span></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"><</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">></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<span class="colon">:</span></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_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<span class="colon">:</span></dt>
 | 
						||
<dd class="field-odd"><p><strong>m</strong> – Desired operation mode </p>
 | 
						||
</dd>
 | 
						||
<dt class="field-even">Returns<span class="colon">:</span></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">&</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<span class="colon">:</span></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<span class="colon">:</span></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">&</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>
 | 
						||
 | 
						||
</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 <esp_modem_terminal.hpp></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<span class="colon">:</span></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<span class="colon">:</span></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 doesn’t block, but return all available data. </p>
 | 
						||
<dl class="field-list simple">
 | 
						||
<dt class="field-odd">Parameters<span class="colon">:</span></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<span class="colon">:</span></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 <esp_modem_cmux.hpp></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<span class="colon">:</span></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_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"><</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">></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<span class="colon">:</span></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<span class="colon">:</span></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<span class="colon">:</span></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 <esp_modem_cmux.hpp></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<span class="colon">:</span></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<span class="colon">:</span></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 doesn’t block, but return all available data. </p>
 | 
						||
<dl class="field-list simple">
 | 
						||
<dt class="field-odd">Parameters<span class="colon">:</span></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<span class="colon">:</span></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 <esp_modem_netif.hpp></em></div>
 | 
						||
<p>Network interface class responsible to glue the esp-netif to the modem’s <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 <esp_modem_dce_module.hpp></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_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"><</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">></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"><</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 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 it’s 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"><</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 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>
 | 
						||
 | 
						||
</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 <esp_modem_dce_module.hpp></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_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 <esp_modem_dce_module.hpp></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 <esp_modem_dce_module.hpp></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 (<= 6, used in preprocessor’s 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>, it’s 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="_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">&</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">&</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">&</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="_CPPv418power_down_sim7xxxP13CommandableIf">
 | 
						||
<span id="_CPPv318power_down_sim7xxxP13CommandableIf"></span><span id="_CPPv218power_down_sim7xxxP13CommandableIf"></span><span id="power_down_sim7xxx__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_1ga4a78776f1eb012f918b9ce86174f7cca"></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_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="sig-paren">)</span><a class="headerlink" href="#_CPPv418power_down_sim7xxxP13CommandableIf" 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"><</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">></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 &#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 &#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_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) &#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>
 | 
						||
 | 
						||
</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 didn’t 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 <esp_modem_types.hpp></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 <esp_modem_types.hpp></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">&</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<span class="colon">:</span></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<span class="colon">:</span></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 <esp_modem_types.hpp></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<span class="colon">:</span></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<span class="colon">:</span></dt>
 | 
						||
<dd class="field-odd"><p><strong>mode</strong> – Desired mode </p>
 | 
						||
</dd>
 | 
						||
<dt class="field-even">Returns<span class="colon">:</span></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">
 | 
						||
      ©2016 - 2021, Espressif Systems (Shanghai) Co., Ltd.
 | 
						||
      
 | 
						||
      |
 | 
						||
      Powered by <a href="http://sphinx-doc.org/">Sphinx 4.5.0</a>
 | 
						||
      & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
 | 
						||
      
 | 
						||
      |
 | 
						||
      <a href="_sources/internal_docs.rst.txt"
 | 
						||
          rel="nofollow">Page source</a>
 | 
						||
    </div>
 | 
						||
 | 
						||
    
 | 
						||
 | 
						||
    
 | 
						||
  </body>
 | 
						||
</html> |