#include "ec801e_at_modem.h" #include #include #include #include #include #include #include "ec801e_ssl.h" #include "ec801e_tcp.h" #include "ec801e_udp.h" #include "ec801e_mqtt.h" #include "http_client.h" #include "web_socket.h" #define TAG "Ec801EAtModem" Ec801EAtModem::Ec801EAtModem(std::shared_ptr at_uart) : AtModem(at_uart) { // 子类特定的初始化在这里 // ATE0 关闭 echo at_uart_->SendCommand("ATE0"); // 设置 URC 端口为 UART1 at_uart_->SendCommand("AT+QURCCFG=\"urcport\",\"uart1\""); } void Ec801EAtModem::HandleUrc(const std::string& command, const std::vector& arguments) { // Handle Common URC AtModem::HandleUrc(command, arguments); } bool Ec801EAtModem::SetSleepMode(bool enable, int delay_seconds) { if (enable) { if (delay_seconds > 0) { at_uart_->SendCommand("AT+QSCLKEX=1," + std::to_string(delay_seconds) + ",30"); } return at_uart_->SendCommand("AT+QSCLK=1"); } else { return at_uart_->SendCommand("AT+QSCLK=0"); } } std::unique_ptr Ec801EAtModem::CreateHttp(int connect_id) { assert(connect_id >= 0); return std::make_unique(this, connect_id); } std::unique_ptr Ec801EAtModem::CreateTcp(int connect_id) { assert(connect_id >= 0); return std::make_unique(at_uart_, connect_id); } std::unique_ptr Ec801EAtModem::CreateSsl(int connect_id) { assert(connect_id >= 0); return std::make_unique(at_uart_, connect_id); } std::unique_ptr Ec801EAtModem::CreateUdp(int connect_id) { assert(connect_id >= 0); return std::make_unique(at_uart_, connect_id); } std::unique_ptr Ec801EAtModem::CreateMqtt(int connect_id) { assert(connect_id >= 0); return std::make_unique(at_uart_, connect_id); } std::unique_ptr Ec801EAtModem::CreateWebSocket(int connect_id) { assert(connect_id >= 0); return std::make_unique(this, connect_id); }