mirror of
https://github.com/esphome/esphome.git
synced 2025-09-06 21:32:21 +01:00
Extend uart: with rx_buffer_size: (#1006)
* Extend `uart:` with `rx_buffer_size:` This allows to configure `rx_buffer_size:` to efficiently receive big payloads over UART * lint * remove old default value * add test Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
import esphome.codegen as cg
|
||||
import esphome.config_validation as cv
|
||||
from esphome import pins, automation
|
||||
from esphome.const import CONF_BAUD_RATE, CONF_ID, CONF_RX_PIN, CONF_TX_PIN, CONF_UART_ID, CONF_DATA
|
||||
from esphome.const import CONF_BAUD_RATE, CONF_ID, CONF_RX_PIN, CONF_TX_PIN, CONF_UART_ID, \
|
||||
CONF_DATA, CONF_RX_BUFFER_SIZE
|
||||
from esphome.core import CORE, coroutine
|
||||
|
||||
uart_ns = cg.esphome_ns.namespace('uart')
|
||||
@@ -44,6 +45,7 @@ CONFIG_SCHEMA = cv.All(cv.Schema({
|
||||
cv.Required(CONF_BAUD_RATE): cv.int_range(min=1),
|
||||
cv.Optional(CONF_TX_PIN): pins.output_pin,
|
||||
cv.Optional(CONF_RX_PIN): validate_rx_pin,
|
||||
cv.Optional(CONF_RX_BUFFER_SIZE, default=256): cv.validate_bytes,
|
||||
cv.Optional(CONF_STOP_BITS, default=1): cv.one_of(1, 2, int=True),
|
||||
cv.Optional(CONF_DATA_BITS, default=8): cv.int_range(min=5, max=8),
|
||||
cv.Optional(CONF_PARITY, default="NONE"): cv.enum(UART_PARITY_OPTIONS, upper=True)
|
||||
@@ -61,6 +63,7 @@ def to_code(config):
|
||||
cg.add(var.set_tx_pin(config[CONF_TX_PIN]))
|
||||
if CONF_RX_PIN in config:
|
||||
cg.add(var.set_rx_pin(config[CONF_RX_PIN]))
|
||||
cg.add(var.set_rx_buffer_size(config[CONF_RX_BUFFER_SIZE]))
|
||||
cg.add(var.set_stop_bits(config[CONF_STOP_BITS]))
|
||||
cg.add(var.set_data_bits(config[CONF_DATA_BITS]))
|
||||
cg.add(var.set_parity(config[CONF_PARITY]))
|
||||
|
Reference in New Issue
Block a user