gpio pins numbering

This commit is contained in:
oarcher 2024-07-21 03:17:04 +02:00
parent 6d2e6eb15a
commit a814ea337f
3 changed files with 16 additions and 14 deletions

View file

@ -15,7 +15,7 @@ import esphome.codegen as cg
import esphome.config_validation as cv import esphome.config_validation as cv
from esphome.core import coroutine_with_priority from esphome.core import coroutine_with_priority
from esphome.components.esp32 import add_idf_component, add_idf_sdkconfig_option from esphome.components.esp32 import add_idf_component, add_idf_sdkconfig_option
from esphome import automation from esphome import pins, automation
CODEOWNERS = ["@oarcher"] CODEOWNERS = ["@oarcher"]
DEPENDENCIES = ["esp32"] DEPENDENCIES = ["esp32"]
@ -47,11 +47,11 @@ CONFIG_SCHEMA = cv.All(
cv.Schema( cv.Schema(
{ {
cv.GenerateID(): cv.declare_id(ModemComponent), cv.GenerateID(): cv.declare_id(ModemComponent),
cv.Required(CONF_TX_PIN): cv.positive_int, cv.Required(CONF_TX_PIN): pins.internal_gpio_output_pin_schema,
cv.Required(CONF_RX_PIN): cv.positive_int, cv.Required(CONF_RX_PIN): pins.internal_gpio_output_pin_schema,
cv.Required(CONF_MODEL): cv.string, cv.Required(CONF_MODEL): cv.string,
cv.Required(CONF_APN): cv.string, cv.Required(CONF_APN): cv.string,
cv.Optional(CONF_DTR_PIN): cv.positive_int, cv.Optional(CONF_DTR_PIN): pins.internal_gpio_output_pin_schema,
cv.Optional(CONF_PIN_CODE): cv.string_strict, cv.Optional(CONF_PIN_CODE): cv.string_strict,
cv.Optional(CONF_USERNAME): cv.string, cv.Optional(CONF_USERNAME): cv.string,
cv.Optional(CONF_PASSWORD): cv.string, cv.Optional(CONF_PASSWORD): cv.string,
@ -134,10 +134,11 @@ async def to_code(config):
cg.add(var.set_model(config[CONF_MODEL])) cg.add(var.set_model(config[CONF_MODEL]))
cg.add(var.set_apn(config[CONF_APN])) cg.add(var.set_apn(config[CONF_APN]))
gpio_num_t = cg.global_ns.enum("gpio_num_t") tx_pin = await cg.gpio_pin_expression(config[CONF_TX_PIN])
cg.add(var.set_tx_pin(tx_pin))
cg.add(var.set_rx_pin(getattr(gpio_num_t, f"GPIO_NUM_{config[CONF_RX_PIN]}"))) rx_pin = await cg.gpio_pin_expression(config[CONF_RX_PIN])
cg.add(var.set_tx_pin(getattr(gpio_num_t, f"GPIO_NUM_{config[CONF_TX_PIN]}"))) cg.add(var.set_rx_pin(rx_pin))
for conf in config.get(CONF_ON_NOT_RESPONDING, []): for conf in config.get(CONF_ON_NOT_RESPONDING, []):
trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID], var) trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID], var)

View file

@ -111,8 +111,8 @@ void ModemComponent::reset_() {
esp_modem_dte_config_t dte_config = ESP_MODEM_DTE_DEFAULT_CONFIG(); esp_modem_dte_config_t dte_config = ESP_MODEM_DTE_DEFAULT_CONFIG();
this->dte_config_ = dte_config; this->dte_config_ = dte_config;
this->dte_config_.uart_config.tx_io_num = this->tx_pin_; this->dte_config_.uart_config.tx_io_num = this->tx_pin_->get_pin();
this->dte_config_.uart_config.rx_io_num = this->rx_pin_; this->dte_config_.uart_config.rx_io_num = this->rx_pin_->get_pin();
// this->dte_config_.uart_config.rts_io_num = static_cast<gpio_num_t>( CONFIG_EXAMPLE_MODEM_UART_RTS_PIN); // this->dte_config_.uart_config.rts_io_num = static_cast<gpio_num_t>( CONFIG_EXAMPLE_MODEM_UART_RTS_PIN);
// this->dte_config_.uart_config.cts_io_num = static_cast<gpio_num_t>( CONFIG_EXAMPLE_MODEM_UART_CTS_PIN); // this->dte_config_.uart_config.cts_io_num = static_cast<gpio_num_t>( CONFIG_EXAMPLE_MODEM_UART_CTS_PIN);
this->dte_config_.uart_config.rx_buffer_size = CONFIG_MODEM_UART_RX_BUFFER_SIZE; this->dte_config_.uart_config.rx_buffer_size = CONFIG_MODEM_UART_RX_BUFFER_SIZE;

View file

@ -3,8 +3,9 @@
#include <memory> #include <memory>
#include "esphome/core/component.h" #include "esphome/core/component.h"
#include "esphome/core/log.h" #include "esphome/core/log.h"
#include "esphome/components/network/util.h" #include "esphome/core/gpio.h"
#include "esphome/core/automation.h" #include "esphome/core/automation.h"
#include "esphome/components/network/util.h"
#ifdef USE_ESP_IDF #ifdef USE_ESP_IDF
@ -53,8 +54,8 @@ class ModemComponent : public Component {
network::IPAddresses get_ip_addresses(); network::IPAddresses get_ip_addresses();
std::string get_use_address() const; std::string get_use_address() const;
void set_use_address(const std::string &use_address); void set_use_address(const std::string &use_address);
void set_rx_pin(gpio_num_t rx_pin) { this->rx_pin_ = rx_pin; } void set_rx_pin(InternalGPIOPin *rx_pin) { this->rx_pin_ = rx_pin; }
void set_tx_pin(gpio_num_t tx_pin) { this->tx_pin_ = tx_pin; } void set_tx_pin(InternalGPIOPin *tx_pin) { this->tx_pin_ = tx_pin; }
void set_username(const std::string &username) { this->username_ = username; } void set_username(const std::string &username) { this->username_ = username; }
void set_password(const std::string &password) { this->password_ = password; } void set_password(const std::string &password) { this->password_ = password; }
void set_pin_code(const std::string &pin_code) { this->pin_code_ = pin_code; } void set_pin_code(const std::string &pin_code) { this->pin_code_ = pin_code; }
@ -74,8 +75,8 @@ class ModemComponent : public Component {
protected: protected:
void reset_(); // (re)create dte and dce void reset_(); // (re)create dte and dce
gpio_num_t rx_pin_ = gpio_num_t::GPIO_NUM_NC; InternalGPIOPin *tx_pin_;
gpio_num_t tx_pin_ = gpio_num_t::GPIO_NUM_NC; InternalGPIOPin *rx_pin_;
std::string pin_code_; std::string pin_code_;
std::string username_; std::string username_;
std::string password_; std::string password_;