Files
esp-protocols/esp_modem/src/esp_modem_dce.cpp

33 lines
1.0 KiB
C++
Raw Normal View History

2021-03-03 20:35:08 +01:00
#include "cxx_include/esp_modem_dte.hpp"
#include "cxx_include/esp_modem_dce.hpp"
2021-03-04 20:19:18 +01:00
#include <cstring>
2021-03-03 20:35:08 +01:00
#include <utility>
#include "esp_log.h"
DCE::DCE(const std::shared_ptr<DTE>& dte, std::shared_ptr<DeviceIf> device, esp_netif_t * netif):
dce_dte(dte), device(std::move(device)), ppp_netif(dte, netif)
{ }
2021-03-04 20:19:18 +01:00
void DCE::exit_data() {
ppp_netif.stop();
device->set_mode(dte_mode::COMMAND_MODE);
uint8_t* data;
dce_dte->set_data_cb([&](size_t len) -> bool {
auto actual_len = dce_dte->read(&data, 64);
ESP_LOG_BUFFER_HEXDUMP("esp-modem: debug_data", data, actual_len, ESP_LOG_INFO);
return false;
});
ppp_netif.wait_until_ppp_exits();
dce_dte->set_data_cb(nullptr);
dce_dte->set_mode(dte_mode::COMMAND_MODE);
}
void DCE::set_cmux()
{
device->set_mode(dte_mode::CMUX_MODE);
dce_dte->set_mode(dte_mode::CMUX_MODE);
// auto t = dce_dte->detach();
// auto cmux = std::make_unique<CMUXedTerminal>(std::move(t), dce_dte->get_buffer());
// dce_dte->attach(std::move(cmux));
}