mirror of
https://github.com/esphome/esphome.git
synced 2025-07-28 06:06:33 +00:00
[ld2450] More optimizing, fix copypasta (#9210)
This commit is contained in:
parent
92365f133d
commit
f7ac32ceda
@ -17,8 +17,9 @@ namespace esphome {
|
|||||||
namespace ld2450 {
|
namespace ld2450 {
|
||||||
|
|
||||||
static const char *const TAG = "ld2450";
|
static const char *const TAG = "ld2450";
|
||||||
static const char *const NO_MAC("08:05:04:03:02:01");
|
static const char *const NO_MAC = "08:05:04:03:02:01";
|
||||||
static const char *const UNKNOWN_MAC("unknown");
|
static const char *const UNKNOWN_MAC = "unknown";
|
||||||
|
static const char *const VERSION_FMT = "%u.%02X.%02X%02X%02X%02X";
|
||||||
|
|
||||||
// LD2450 UART Serial Commands
|
// LD2450 UART Serial Commands
|
||||||
static const uint8_t CMD_ENABLE_CONF = 0x00FF;
|
static const uint8_t CMD_ENABLE_CONF = 0x00FF;
|
||||||
@ -98,13 +99,6 @@ static inline std::string get_direction(int16_t speed) {
|
|||||||
return STATIONARY;
|
return STATIONARY;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline std::string format_version(uint8_t *buffer) {
|
|
||||||
return str_sprintf("%u.%02X.%02X%02X%02X%02X", buffer[13], buffer[12], buffer[17], buffer[16], buffer[15],
|
|
||||||
buffer[14]);
|
|
||||||
}
|
|
||||||
|
|
||||||
LD2450Component::LD2450Component() {}
|
|
||||||
|
|
||||||
void LD2450Component::setup() {
|
void LD2450Component::setup() {
|
||||||
ESP_LOGCONFIG(TAG, "Running setup");
|
ESP_LOGCONFIG(TAG, "Running setup");
|
||||||
#ifdef USE_NUMBER
|
#ifdef USE_NUMBER
|
||||||
@ -189,7 +183,7 @@ void LD2450Component::dump_config() {
|
|||||||
" Throttle: %ums\n"
|
" Throttle: %ums\n"
|
||||||
" MAC Address: %s\n"
|
" MAC Address: %s\n"
|
||||||
" Firmware version: %s",
|
" Firmware version: %s",
|
||||||
this->throttle_, const_cast<char *>(this->mac_.c_str()), const_cast<char *>(this->version_.c_str()));
|
this->throttle_, this->mac_ == NO_MAC ? UNKNOWN_MAC : this->mac_.c_str(), this->version_.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void LD2450Component::loop() {
|
void LD2450Component::loop() {
|
||||||
@ -596,7 +590,7 @@ bool LD2450Component::handle_ack_data_(uint8_t *buffer, uint8_t len) {
|
|||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case lowbyte(CMD_VERSION):
|
case lowbyte(CMD_VERSION):
|
||||||
this->version_ = ld2450::format_version(buffer);
|
this->version_ = str_sprintf(VERSION_FMT, buffer[13], buffer[12], buffer[17], buffer[16], buffer[15], buffer[14]);
|
||||||
ESP_LOGV(TAG, "Firmware version: %s", this->version_.c_str());
|
ESP_LOGV(TAG, "Firmware version: %s", this->version_.c_str());
|
||||||
#ifdef USE_TEXT_SENSOR
|
#ifdef USE_TEXT_SENSOR
|
||||||
if (this->version_text_sensor_ != nullptr) {
|
if (this->version_text_sensor_ != nullptr) {
|
||||||
@ -617,7 +611,7 @@ bool LD2450Component::handle_ack_data_(uint8_t *buffer, uint8_t len) {
|
|||||||
#endif
|
#endif
|
||||||
#ifdef USE_SWITCH
|
#ifdef USE_SWITCH
|
||||||
if (this->bluetooth_switch_ != nullptr) {
|
if (this->bluetooth_switch_ != nullptr) {
|
||||||
this->bluetooth_switch_->publish_state(this->mac_ != UNKNOWN_MAC);
|
this->bluetooth_switch_->publish_state(this->mac_ != NO_MAC);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
@ -141,7 +141,6 @@ class LD2450Component : public Component, public uart::UARTDevice {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
public:
|
public:
|
||||||
LD2450Component();
|
|
||||||
void setup() override;
|
void setup() override;
|
||||||
void dump_config() override;
|
void dump_config() override;
|
||||||
void loop() override;
|
void loop() override;
|
||||||
@ -197,17 +196,17 @@ class LD2450Component : public Component, public uart::UARTDevice {
|
|||||||
bool get_timeout_status_(uint32_t check_millis);
|
bool get_timeout_status_(uint32_t check_millis);
|
||||||
uint8_t count_targets_in_zone_(const Zone &zone, bool is_moving);
|
uint8_t count_targets_in_zone_(const Zone &zone, bool is_moving);
|
||||||
|
|
||||||
Target target_info_[MAX_TARGETS];
|
|
||||||
Zone zone_config_[MAX_ZONES];
|
|
||||||
uint8_t buffer_pos_ = 0; // where to resume processing/populating buffer
|
|
||||||
uint8_t buffer_data_[MAX_LINE_LENGTH];
|
|
||||||
uint32_t last_periodic_millis_ = 0;
|
uint32_t last_periodic_millis_ = 0;
|
||||||
uint32_t presence_millis_ = 0;
|
uint32_t presence_millis_ = 0;
|
||||||
uint32_t still_presence_millis_ = 0;
|
uint32_t still_presence_millis_ = 0;
|
||||||
uint32_t moving_presence_millis_ = 0;
|
uint32_t moving_presence_millis_ = 0;
|
||||||
uint16_t throttle_ = 0;
|
uint16_t throttle_ = 0;
|
||||||
uint16_t timeout_ = 5;
|
uint16_t timeout_ = 5;
|
||||||
|
uint8_t buffer_pos_ = 0; // where to resume processing/populating buffer
|
||||||
|
uint8_t buffer_data_[MAX_LINE_LENGTH];
|
||||||
uint8_t zone_type_ = 0;
|
uint8_t zone_type_ = 0;
|
||||||
|
Target target_info_[MAX_TARGETS];
|
||||||
|
Zone zone_config_[MAX_ZONES];
|
||||||
std::string version_{};
|
std::string version_{};
|
||||||
std::string mac_{};
|
std::string mac_{};
|
||||||
#ifdef USE_NUMBER
|
#ifdef USE_NUMBER
|
||||||
|
Loading…
x
Reference in New Issue
Block a user