From c5005f9c3fccf3658f3abf10ed7a1f9638653c03 Mon Sep 17 00:00:00 2001 From: GrKoR Date: Sun, 25 Feb 2024 00:24:21 +0300 Subject: [PATCH] ref: eliminating code duplication --- components/aux_ac/aircon.cpp | 56 ++--------------------------- components/aux_ac/aircon_common.cpp | 30 ++++++++++++++++ components/aux_ac/aircon_common.h | 1 + 3 files changed, 33 insertions(+), 54 deletions(-) diff --git a/components/aux_ac/aircon.cpp b/components/aux_ac/aircon.cpp index 6a49359..ccfadd7 100644 --- a/components/aux_ac/aircon.cpp +++ b/components/aux_ac/aircon.cpp @@ -733,33 +733,7 @@ namespace esphome // converts vertical louver state from hardware codes to frontend code vlouver_esphome_position_t AirCon::aux_vlouver_to_frontend(const ac_louver_V vLouver) { - switch (vLouver) - { - case AC_LOUVERV_SWING_UPDOWN: - return AC_VLOUVER_FRONTEND_SWING; - - case AC_LOUVERV_OFF: - return AC_VLOUVER_FRONTEND_STOP; - - case AC_LOUVERV_TOP: - return AC_VLOUVER_FRONTEND_TOP; - - case AC_LOUVERV_MIDDLE_ABOVE: - return AC_VLOUVER_FRONTEND_MIDDLE_ABOVE; - - case AC_LOUVERV_MIDDLE: - return AC_VLOUVER_FRONTEND_MIDDLE; - - case AC_LOUVERV_MIDDLE_BELOW: - return AC_VLOUVER_FRONTEND_MIDDLE_BELOW; - - case AC_LOUVERV_BOTTOM: - return AC_VLOUVER_FRONTEND_BOTTOM; - - default: - ESP_LOGW(TAG, "aux_vlouver_to_frontend: unknown vertical louver hardware state = %u", vLouver); - return AC_VLOUVER_FRONTEND_STOP; - } + return ac_louver_V_to_vlouver_frontend(vLouver); } // ************************************************************************************************** @@ -773,33 +747,7 @@ namespace esphome // converts vertical louver position from frontend codes to hardware code ac_louver_V AirCon::frontend_vlouver_to_aux(const vlouver_esphome_position_t vLouver) { - switch (vLouver) - { - case AC_VLOUVER_FRONTEND_SWING: - return AC_LOUVERV_SWING_UPDOWN; - - case AC_VLOUVER_FRONTEND_STOP: - return AC_LOUVERV_OFF; - - case AC_VLOUVER_FRONTEND_TOP: - return AC_LOUVERV_TOP; - - case AC_VLOUVER_FRONTEND_MIDDLE_ABOVE: - return AC_LOUVERV_MIDDLE_ABOVE; - - case AC_VLOUVER_FRONTEND_MIDDLE: - return AC_LOUVERV_MIDDLE; - - case AC_VLOUVER_FRONTEND_MIDDLE_BELOW: - return AC_LOUVERV_MIDDLE_BELOW; - - case AC_VLOUVER_FRONTEND_BOTTOM: - return AC_LOUVERV_BOTTOM; - - default: - ESP_LOGW(TAG, "frontend_vlouver_to_aux: unknown frontend vertical louver state = %u", vLouver); - return AC_LOUVERV_OFF; - } + return vlouver_frontend_to_ac_louver_V(vLouver); } } // namespace aux_airconditioner } // namespace esphome diff --git a/components/aux_ac/aircon_common.cpp b/components/aux_ac/aircon_common.cpp index 97013d9..2515f71 100644 --- a/components/aux_ac/aircon_common.cpp +++ b/components/aux_ac/aircon_common.cpp @@ -106,6 +106,36 @@ namespace esphome } } + vlouver_esphome_position_t ac_louver_V_to_vlouver_frontend(const ac_louver_V aux_vlouver) + { + switch (aux_vlouver) + { + case AC_LOUVERV_SWING_UPDOWN: + return AC_VLOUVER_FRONTEND_SWING; + + case AC_LOUVERV_OFF: + return AC_VLOUVER_FRONTEND_STOP; + + case AC_LOUVERV_TOP: + return AC_VLOUVER_FRONTEND_TOP; + + case AC_LOUVERV_MIDDLE_ABOVE: + return AC_VLOUVER_FRONTEND_MIDDLE_ABOVE; + + case AC_LOUVERV_MIDDLE: + return AC_VLOUVER_FRONTEND_MIDDLE; + + case AC_LOUVERV_MIDDLE_BELOW: + return AC_VLOUVER_FRONTEND_MIDDLE_BELOW; + + case AC_LOUVERV_BOTTOM: + return AC_VLOUVER_FRONTEND_BOTTOM; + + default: + return AC_VLOUVER_FRONTEND_STOP; + } + } + std::string ac_louver_V_to_string(ac_louver_V louver) { switch (louver) diff --git a/components/aux_ac/aircon_common.h b/components/aux_ac/aircon_common.h index 3b040f1..22f47da 100644 --- a/components/aux_ac/aircon_common.h +++ b/components/aux_ac/aircon_common.h @@ -47,6 +47,7 @@ namespace esphome }; ac_louver_V vlouver_frontend_to_ac_louver_V(const vlouver_esphome_position_t vlouver_frontend); + vlouver_esphome_position_t ac_louver_V_to_vlouver_frontend(const ac_louver_V aux_vlouver); std::string ac_louver_V_to_string(ac_louver_V louver);