mirror of
https://github.com/esphome/esphome.git
synced 2024-11-27 09:18:00 +01:00
chore: local field
This commit is contained in:
parent
7c2bed7e08
commit
fb510abb25
2 changed files with 13 additions and 33 deletions
|
@ -37,11 +37,6 @@ void MR60FDA2Component::setup() {
|
||||||
this->current_frame_len_ = 0;
|
this->current_frame_len_ = 0;
|
||||||
this->current_data_frame_len_ = 0;
|
this->current_data_frame_len_ = 0;
|
||||||
this->current_frame_type_ = 0;
|
this->current_frame_type_ = 0;
|
||||||
this->current_install_height_int_ = 0;
|
|
||||||
this->current_height_threshold_int_ = 0;
|
|
||||||
this->current_sensitivity_ = 0;
|
|
||||||
this->select_index_ = 0;
|
|
||||||
|
|
||||||
this->get_radar_parameters();
|
this->get_radar_parameters();
|
||||||
|
|
||||||
memset(this->current_frame_buf_, 0, FRAME_BUF_MAX_SIZE);
|
memset(this->current_frame_buf_, 0, FRAME_BUF_MAX_SIZE);
|
||||||
|
@ -214,10 +209,6 @@ void MR60FDA2Component::split_frame_(uint8_t buffer) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MR60FDA2Component::process_frame_() {
|
void MR60FDA2Component::process_frame_() {
|
||||||
// Declare variables outside of the switch statement
|
|
||||||
float install_height_float = 0;
|
|
||||||
float height_threshold_float = 0;
|
|
||||||
|
|
||||||
switch (this->current_frame_type_) {
|
switch (this->current_frame_type_) {
|
||||||
case IS_FALL_TYPE_BUFFER:
|
case IS_FALL_TYPE_BUFFER:
|
||||||
if (this->fall_detected_binary_sensor_ != nullptr) {
|
if (this->fall_detected_binary_sensor_ != nullptr) {
|
||||||
|
@ -260,9 +251,14 @@ void MR60FDA2Component::process_frame_() {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RESULT_PARAMETERS:
|
case RESULT_PARAMETERS:
|
||||||
// Variables declared outside the switch statement will be initialized here
|
float install_height_float = 0;
|
||||||
|
float height_threshold_float = 0;
|
||||||
|
uint32_t current_install_height_int_ = 0;
|
||||||
|
uint32_t current_height_threshold_int_ = 0;
|
||||||
|
uint32_t current_sensitivity_ = 0;
|
||||||
|
uint32_t select_index_ = 0;
|
||||||
if (this->install_height_select_ != nullptr) {
|
if (this->install_height_select_ != nullptr) {
|
||||||
this->current_install_height_int_ =
|
current_install_height_int_ =
|
||||||
encode_uint32(current_data_buf_[3], current_data_buf_[2], current_data_buf_[1], current_data_buf_[0]);
|
encode_uint32(current_data_buf_[3], current_data_buf_[2], current_data_buf_[1], current_data_buf_[0]);
|
||||||
|
|
||||||
install_height_float = bit_cast<float>(current_install_height_int_);
|
install_height_float = bit_cast<float>(current_install_height_int_);
|
||||||
|
@ -271,7 +267,7 @@ void MR60FDA2Component::process_frame_() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->height_threshold_select_ != nullptr) {
|
if (this->height_threshold_select_ != nullptr) {
|
||||||
this->current_height_threshold_int_ =
|
current_height_threshold_int_ =
|
||||||
encode_uint32(current_data_buf_[7], current_data_buf_[6], current_data_buf_[5], current_data_buf_[4]);
|
encode_uint32(current_data_buf_[7], current_data_buf_[6], current_data_buf_[5], current_data_buf_[4]);
|
||||||
|
|
||||||
height_threshold_float = bit_cast<float>(current_height_threshold_int_);
|
height_threshold_float = bit_cast<float>(current_height_threshold_int_);
|
||||||
|
@ -280,10 +276,10 @@ void MR60FDA2Component::process_frame_() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->sensitivity_select_ != nullptr) {
|
if (this->sensitivity_select_ != nullptr) {
|
||||||
this->current_sensitivity_ =
|
current_sensitivity_ =
|
||||||
encode_uint32(current_data_buf_[11], current_data_buf_[10], current_data_buf_[9], current_data_buf_[8]);
|
encode_uint32(current_data_buf_[11], current_data_buf_[10], current_data_buf_[9], current_data_buf_[8]);
|
||||||
|
|
||||||
select_index_ = find_nearest_index(this->current_sensitivity_, SENSITIVITY, 3);
|
select_index_ = find_nearest_index(current_sensitivity_, SENSITIVITY, 3);
|
||||||
this->sensitivity_select_->publish_state(this->sensitivity_select_->at(select_index_).value());
|
this->sensitivity_select_->publish_state(this->sensitivity_select_->at(select_index_).value());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -344,30 +340,18 @@ void MR60FDA2Component::set_install_height(uint8_t index) {
|
||||||
|
|
||||||
void MR60FDA2Component::set_height_threshold(uint8_t index) {
|
void MR60FDA2Component::set_height_threshold(uint8_t index) {
|
||||||
uint8_t send_data[13] = {0x01, 0x00, 0x00, 0x00, 0x04, 0x0E, 0x08, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00};
|
uint8_t send_data[13] = {0x01, 0x00, 0x00, 0x00, 0x04, 0x0E, 0x08, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
uint8_t data_frame[4] = {0x00, 0x00, 0x00, 0x00};
|
float_to_bytes_(INSTALL_HEIGHT[index], &send_data[8]);
|
||||||
|
send_data[12] = calculate_checksum(send_data + 8, 4);
|
||||||
float_to_bytes_(HEIGHT_THRESHOLD[index], &send_data[8]);
|
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++) {
|
|
||||||
data_frame[i] = send_data[i + 8];
|
|
||||||
}
|
|
||||||
|
|
||||||
send_data[12] = calculate_checksum(data_frame, 4);
|
|
||||||
this->send_query_(send_data, 13);
|
this->send_query_(send_data, 13);
|
||||||
ESP_LOGV(TAG, "SEND HEIGHT THRESHOLD: %s", format_hex_pretty(send_data, 13).c_str());
|
ESP_LOGV(TAG, "SEND HEIGHT THRESHOLD: %s", format_hex_pretty(send_data, 13).c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MR60FDA2Component::set_sensitivity(uint8_t index) {
|
void MR60FDA2Component::set_sensitivity(uint8_t index) {
|
||||||
uint8_t send_data[13] = {0x01, 0x00, 0x00, 0x00, 0x04, 0x0E, 0x0A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00};
|
uint8_t send_data[13] = {0x01, 0x00, 0x00, 0x00, 0x04, 0x0E, 0x0A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
uint8_t data_frame[4] = {0x00, 0x00, 0x00, 0x00};
|
|
||||||
|
|
||||||
int_to_bytes_(SENSITIVITY[index], &send_data[8]);
|
int_to_bytes_(SENSITIVITY[index], &send_data[8]);
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++) {
|
send_data[12] = calculate_checksum(send_data + 8, 4);
|
||||||
data_frame[i] = send_data[i + 8];
|
|
||||||
}
|
|
||||||
|
|
||||||
send_data[12] = calculate_checksum(data_frame, 4);
|
|
||||||
this->send_query_(send_data, 13);
|
this->send_query_(send_data, 13);
|
||||||
ESP_LOGV(TAG, "SEND SET SENSITIVITY: %s", format_hex_pretty(send_data, 13).c_str());
|
ESP_LOGV(TAG, "SEND SET SENSITIVITY: %s", format_hex_pretty(send_data, 13).c_str());
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,10 +81,6 @@ class MR60FDA2Component : public Component,
|
||||||
size_t current_frame_len_;
|
size_t current_frame_len_;
|
||||||
size_t current_data_frame_len_;
|
size_t current_data_frame_len_;
|
||||||
uint16_t current_frame_type_;
|
uint16_t current_frame_type_;
|
||||||
uint32_t current_install_height_int_;
|
|
||||||
uint32_t current_height_threshold_int_;
|
|
||||||
uint8_t current_sensitivity_;
|
|
||||||
uint8_t select_index_;
|
|
||||||
|
|
||||||
void split_frame_(uint8_t buffer);
|
void split_frame_(uint8_t buffer);
|
||||||
void process_frame_();
|
void process_frame_();
|
||||||
|
|
Loading…
Reference in a new issue