Reworded DCE/DTE modes and switching

This commit is contained in:
David Cermak
2021-03-03 20:35:08 +01:00
parent 00662fcaea
commit 25f5541199
20 changed files with 677 additions and 408 deletions

View File

@ -6,26 +6,33 @@
#define SIMPLE_CXX_CLIENT_PPP_NETIF_HPP
#include "esp_netif.h"
#include "cxx_include/terminal_objects.hpp"
class dte;
class DTE;
//struct ppp_netif_driver;
struct ppp_netif_driver {
esp_netif_driver_base_t base;
dte *e;
DTE *e;
};
class ppp {
public:
explicit ppp(std::shared_ptr<dte> e, esp_netif_t *netif);
explicit ppp(std::shared_ptr<DTE> e, esp_netif_t *netif);
void start();
void notify_ppp_exit() { signal.set(PPP_EXIT); }
void wait_until_ppp_exits() { signal.wait(PPP_EXIT, 50000); }
void stop();
private:
void receive(uint8_t *data, size_t len) const;
std::shared_ptr<dte> ppp_dte;
std::shared_ptr<DTE> ppp_dte;
esp_netif_t *netif;
struct ppp_netif_driver driver;
signal_group signal;
const size_t PPP_EXIT = BIT0;
};