CMUX: Experimental implementation

This commit is contained in:
David Cermak
2021-03-04 20:19:18 +01:00
parent 25f5541199
commit fbb4791af1
19 changed files with 631 additions and 170 deletions

View File

@ -1,9 +1,15 @@
#pragma once
#include "cxx_include/esp_modem_dce_commands_if.hpp"
#include "cxx_include/esp_modem_commands.hpp"
#include <memory>
#include <utility>
struct PdpContext {
PdpContext(std::string& apn): context_id(1), protocol_type("IP"), apn(apn) {}
size_t context_id;
std::string protocol_type;
std::string apn;
};
enum class command_result;
class DTE;
@ -14,11 +20,17 @@ public:
bool setup_data_mode() override;
bool set_mode(dte_mode mode) override;
command_result set_echo(bool on) { return esp_modem::dce_commands::set_echo(dte, on); }
command_result set_data_mode() { return esp_modem::dce_commands::set_data_mode(dte); }
command_result resume_data_mode() { return esp_modem::dce_commands::resume_data_mode(dte); }
command_result set_pdp_context(PdpContext& pdp_context) { return esp_modem::dce_commands::set_pdp_context(dte.get(), pdp_context); }
command_result set_command_mode() { return esp_modem::dce_commands::set_command_mode(dte); }
command_result set_echo(bool on);
command_result set_data_mode();
command_result resume_data_mode();
command_result set_pdp_context(PdpContext& pdp_context);
command_result set_command_mode();
command_result set_cmux();
command_result get_imsi(std::string& imsi_number);
command_result set_pin(const std::string& pin);
command_result read_pin(bool& pin_ok);
command_result get_imei(std::string& imei);
command_result get_module_name(std::string& imei);
private:
std::shared_ptr<DTE> dte;