ESPHome
2024.11.0
|
The UARTDebugger class adds debugging support to a UART bus. More...
#include <uart_debugger.h>
Public Member Functions | |
UARTDebugger (UARTComponent *parent) | |
void | loop () override |
void | set_direction (UARTDirection direction) |
Set the direction in which to inspect the bytes: incoming, outgoing or both. More... | |
void | set_after_bytes (size_t size) |
Set the maximum number of bytes to accumulate. More... | |
void | set_after_timeout (uint32_t timeout) |
Set a timeout for the data stream. More... | |
void | add_delimiter_byte (uint8_t byte) |
Add a delimiter byte. More... | |
Public Member Functions inherited from esphome::Component | |
virtual void | setup () |
Where the component's initialization should happen. More... | |
virtual void | dump_config () |
virtual float | get_setup_priority () const |
priority of setup(). More... | |
float | get_actual_setup_priority () const |
void | set_setup_priority (float priority) |
virtual float | get_loop_priority () const |
priority of loop(). More... | |
void | call () |
virtual void | on_shutdown () |
virtual void | on_safe_shutdown () |
uint32_t | get_component_state () const |
virtual void | mark_failed () |
Mark this component as failed. More... | |
bool | is_failed () const |
bool | is_ready () const |
virtual bool | can_proceed () |
bool | status_has_warning () const |
bool | status_has_error () const |
void | status_set_warning (const char *message="unspecified") |
void | status_set_error (const char *message="unspecified") |
void | status_clear_warning () |
void | status_clear_error () |
void | status_momentary_warning (const std::string &name, uint32_t length=5000) |
void | status_momentary_error (const std::string &name, uint32_t length=5000) |
bool | has_overridden_loop () const |
void | set_component_source (const char *source) |
Set where this component was loaded from for some debug messages. More... | |
const char * | get_component_source () const |
Get the integration where this component was declared as a string. More... | |
Public Member Functions inherited from esphome::Trigger< UARTDirection, std::vector< uint8_t > > | |
void | trigger (Ts... x) |
Inform the parent automation that the event has triggered. More... | |
void | set_automation_parent (Automation< Ts... > *automation_parent) |
void | stop_action () |
Stop any action connected to this trigger. More... | |
bool | is_action_running () |
Returns true if any action connected to this trigger is running. More... | |
Protected Member Functions | |
bool | is_my_direction_ (UARTDirection direction) |
bool | is_recursive_ () |
void | store_byte_ (UARTDirection direction, uint8_t byte) |
void | trigger_after_direction_change_ (UARTDirection direction) |
void | trigger_after_delimiter_ (uint8_t byte) |
void | trigger_after_bytes_ () |
void | trigger_after_timeout_ () |
bool | has_buffered_bytes_ () |
void | fire_trigger_ () |
Protected Member Functions inherited from esphome::Component | |
virtual void | call_loop () |
virtual void | call_setup () |
virtual void | call_dump_config () |
void | set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f) |
Set an interval function with a unique name. More... | |
void | set_interval (uint32_t interval, std::function< void()> &&f) |
bool | cancel_interval (const std::string &name) |
Cancel an interval function. More... | |
void | set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f) |
Set an retry function with a unique name. More... | |
void | set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f) |
bool | cancel_retry (const std::string &name) |
Cancel a retry function. More... | |
void | set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f) |
Set a timeout function with a unique name. More... | |
void | set_timeout (uint32_t timeout, std::function< void()> &&f) |
bool | cancel_timeout (const std::string &name) |
Cancel a timeout function. More... | |
void | defer (const std::string &name, std::function< void()> &&f) |
Defer a callback to the next loop() call. More... | |
void | defer (std::function< void()> &&f) |
Defer a callback to the next loop() call. More... | |
bool | cancel_defer (const std::string &name) |
Cancel a defer callback using the specified name, name must not be empty. More... | |
Protected Attributes | |
UARTDirection | for_direction_ |
UARTDirection | last_direction_ {} |
std::vector< uint8_t > | bytes_ {} |
size_t | after_bytes_ |
uint32_t | after_timeout_ |
uint32_t | last_time_ {} |
std::vector< uint8_t > | after_delimiter_ {} |
size_t | after_delimiter_pos_ {} |
bool | is_triggering_ {false} |
Protected Attributes inherited from esphome::Component | |
uint32_t | component_state_ {0x0000} |
State of this component. More... | |
float | setup_priority_override_ {NAN} |
const char * | component_source_ {nullptr} |
Protected Attributes inherited from esphome::Trigger< UARTDirection, std::vector< uint8_t > > | |
Automation< Ts... > * | automation_parent_ |
The UARTDebugger class adds debugging support to a UART bus.
It accumulates bytes that travel over the UART bus and triggers one or more actions that can log the data at an appropriate time. What 'appropriate time' means exactly, is determined by a number of configurable constraints. E.g. when a given number of bytes is gathered and/or when no more data has been seen for a given time interval.
Definition at line 21 of file uart_debugger.h.
|
explicit |
Definition at line 14 of file uart_debugger.cpp.
|
inline |
Add a delimiter byte.
This can be called multiple times to setup a multi-byte delimiter (a typical example would be '
'). When the constructed byte sequence is found in the data stream, logging will be triggered.
Definition at line 43 of file uart_debugger.h.
|
protected |
Definition at line 76 of file uart_debugger.cpp.
|
protected |
Definition at line 74 of file uart_debugger.cpp.
|
protected |
Definition at line 28 of file uart_debugger.cpp.
|
protected |
Definition at line 32 of file uart_debugger.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 26 of file uart_debugger.cpp.
|
inline |
Set the maximum number of bytes to accumulate.
When the number of bytes is reached, logging will be triggered.
Definition at line 33 of file uart_debugger.h.
|
inline |
Set a timeout for the data stream.
When no new bytes are seen during this timeout, logging will be triggered.
Definition at line 37 of file uart_debugger.h.
|
inline |
Set the direction in which to inspect the bytes: incoming, outgoing or both.
When debugging in both directions, logging will be triggered when the direction of the data stream changes.
Definition at line 29 of file uart_debugger.h.
|
protected |
Definition at line 41 of file uart_debugger.cpp.
|
protected |
Definition at line 62 of file uart_debugger.cpp.
|
protected |
Definition at line 47 of file uart_debugger.cpp.
|
protected |
Definition at line 34 of file uart_debugger.cpp.
|
protected |
Definition at line 68 of file uart_debugger.cpp.
|
protected |
Definition at line 49 of file uart_debugger.h.
|
protected |
Definition at line 52 of file uart_debugger.h.
|
protected |
Definition at line 53 of file uart_debugger.h.
|
protected |
Definition at line 50 of file uart_debugger.h.
|
protected |
Definition at line 48 of file uart_debugger.h.
|
protected |
Definition at line 46 of file uart_debugger.h.
|
protected |
Definition at line 54 of file uart_debugger.h.
|
protected |
Definition at line 47 of file uart_debugger.h.
|
protected |
Definition at line 51 of file uart_debugger.h.