pulse_counter_ulp: Remove unnecessary configuration variables

This commit is contained in:
brisk 2024-07-04 23:04:01 +09:30
parent 9c70733028
commit 5f98bf4808
2 changed files with 16 additions and 59 deletions

View file

@ -1,12 +1,10 @@
#include "pulse_counter_ulp_sensor.h" #include "pulse_counter_ulp_sensor.h"
#include "esphome/core/log.h" #include "esphome/core/log.h"
#ifdef CONF_USE_ULP
#include "esp32/ulp.h" #include "esp32/ulp.h"
#include "ulp_main.h" #include "ulp_main.h"
#include "soc/rtc_periph.h" #include "soc/rtc_periph.h"
#include "driver/rtc_io.h" #include "driver/rtc_io.h"
#include <esp_sleep.h> #include <esp_sleep.h>
#endif
namespace esphome { namespace esphome {
namespace pulse_counter { namespace pulse_counter {
@ -142,8 +140,6 @@ pulse_counter_t HwPulseCounterStorage::read_raw_value() {
/* === ULP === */ /* === ULP === */
#ifdef CONF_USE_ULP
extern const uint8_t ulp_main_bin_start[] asm("_binary_ulp_main_bin_start"); extern const uint8_t ulp_main_bin_start[] asm("_binary_ulp_main_bin_start");
extern const uint8_t ulp_main_bin_end[] asm("_binary_ulp_main_bin_end"); extern const uint8_t ulp_main_bin_end[] asm("_binary_ulp_main_bin_end");
@ -239,8 +235,6 @@ pulse_counter_t UlpPulseCounterStorage::read_raw_value() {
return count; return count;
} }
#endif
/* === END ULP ===*/ /* === END ULP ===*/
#endif #endif

View file

@ -24,8 +24,6 @@ from esphome.const import (
) )
from esphome.core import CORE from esphome.core import CORE
CONF_USE_PCNT = "use_pcnt"
CONF_USE_ULP = "use_ulp"
CONF_STORAGE_ID = "storage" CONF_STORAGE_ID = "storage"
pulse_counter_ns = cg.esphome_ns.namespace("pulse_counter") pulse_counter_ns = cg.esphome_ns.namespace("pulse_counter")
@ -47,26 +45,6 @@ SetTotalPulsesAction = pulse_counter_ns.class_(
) )
def validate_internal_filter(value):
use_pcnt = value.get(CONF_USE_PCNT)
use_ulp = value.get(CONF_USE_ULP)
if CORE.is_esp8266 and (use_pcnt or use_ulp):
raise cv.Invalid(
"Using hardware pulse counters is only available on ESP32",
[CONF_USE_PCNT],
)
if CORE.is_esp32 and use_pcnt:
if value.get(CONF_INTERNAL_FILTER).total_microseconds > 13:
raise cv.Invalid(
"Maximum internal filter value when using ESP32 hardware PCNT is 13us",
[CONF_INTERNAL_FILTER],
)
return value
def validate_pulse_counter_pin(value): def validate_pulse_counter_pin(value):
value = pins.internal_gpio_input_pin_schema(value) value = pins.internal_gpio_input_pin_schema(value)
if CORE.is_esp8266 and value[CONF_NUMBER] >= 16: if CORE.is_esp8266 and value[CONF_NUMBER] >= 16:
@ -113,8 +91,6 @@ CONFIG_SCHEMA = cv.All(
), ),
validate_count_mode, validate_count_mode,
), ),
cv.SplitDefault(CONF_USE_PCNT, esp32=True): cv.boolean,
cv.Optional(CONF_USE_ULP): cv.boolean,
cv.Optional( cv.Optional(
CONF_INTERNAL_FILTER, default="13us" CONF_INTERNAL_FILTER, default="13us"
): cv.positive_time_period_microseconds, ): cv.positive_time_period_microseconds,
@ -131,39 +107,26 @@ CONFIG_SCHEMA = cv.All(
}, },
) )
.extend(cv.polling_component_schema("60s")), .extend(cv.polling_component_schema("60s")),
validate_internal_filter,
) )
async def to_code(config): async def to_code(config):
if config.get(CONF_USE_ULP): storage = cg.Pvariable(
cg.add_define("CONF_USE_ULP", True) config[CONF_STORAGE_ID],
storage = cg.Pvariable( cg.RawExpression("new pulse_counter::UlpPulseCounterStorage()"),
config[CONF_STORAGE_ID], )
cg.RawExpression("new pulse_counter::UlpPulseCounterStorage()"), esp32.add_extra_build_file(
) "src/CMakeLists.txt",
esp32.add_extra_build_file( os.path.join(os.path.dirname(__file__), "CMakeLists.txt"),
"src/CMakeLists.txt", )
os.path.join(os.path.dirname(__file__), "CMakeLists.txt"), # FIXME These files don't get cleared when the config changes, necessitating deleting .esphome
) esp32.add_extra_build_file(
# FIXME These files don't get cleared when the config changes, necessitating deleting .esphome "ulp/pulse_cnt.S",
esp32.add_extra_build_file( os.path.join(os.path.dirname(__file__), "ulp/pulse_cnt.S"),
"ulp/pulse_cnt.S", )
os.path.join(os.path.dirname(__file__), "ulp/pulse_cnt.S"), esp32.add_idf_sdkconfig_option("CONFIG_ULP_COPROC_ENABLED", True)
) esp32.add_idf_sdkconfig_option("CONFIG_ULP_COPROC_TYPE_FSM", True)
esp32.add_idf_sdkconfig_option("CONFIG_ULP_COPROC_ENABLED", True) esp32.add_idf_sdkconfig_option("CONFIG_ULP_COPROC_RESERVE_MEM", 1024)
esp32.add_idf_sdkconfig_option("CONFIG_ULP_COPROC_TYPE_FSM", True)
esp32.add_idf_sdkconfig_option("CONFIG_ULP_COPROC_RESERVE_MEM", 1024)
elif config.get(CONF_USE_PCNT):
storage = cg.Pvariable(
config[CONF_STORAGE_ID],
cg.RawExpression("new pulse_counter::HwPulseCounterStorage()"),
)
else:
storage = cg.Pvariable(
config[CONF_STORAGE_ID],
cg.RawExpression("new pulse_counter::BasicPulseCounterStorage()"),
)
var = await sensor.new_sensor(config, storage) var = await sensor.new_sensor(config, storage)
await cg.register_component(var, config) await cg.register_component(var, config)