From 8fcd1b1ad72e5b9fee484f45c24173ef91418539 Mon Sep 17 00:00:00 2001 From: reaw55 <58457329+reaw55@users.noreply.github.com> Date: Sat, 24 Feb 2024 16:53:42 +0700 Subject: [PATCH] change code to be definition reliant --- src/ise_display.cpp | 10 ++++-- src/ise_display_definitions.hpp | 13 ++++++++ src/main.cpp | 57 +++++++++++++++++++++++++-------- 3 files changed, 64 insertions(+), 16 deletions(-) diff --git a/src/ise_display.cpp b/src/ise_display.cpp index beefcca..40a2c6a 100644 --- a/src/ise_display.cpp +++ b/src/ise_display.cpp @@ -274,9 +274,13 @@ void ISEDisplay::handlePWMChange(uint8_t pin, bool state, uint16_t value) // NEED to switch case for different page uint8_t current_page = this->currentPage; + + //uint8_t first_pin = *(light_array); + //uint8_t last_pin = *(light_array + 7); + if (current_page == PAGE_STANDBY) { - if ((pin >= 0 && pin <= 3) ||(pin >= 8 && pin <= 11)) + if (LIGHT_ROW1_COLUMN1 || LIGHT_ROW1_COLUMN2 || LIGHT_ROW2_COLUMN1 || LIGHT_ROW2_COLUMN2 || LIGHT_ROW3_COLUMN1 || LIGHT_ROW3_COLUMN2 || LIGHT_ROW4_COLUMN1 || LIGHT_ROW4_COLUMN2) //change { // Light updateLightGroupStatePageStandby(); @@ -285,7 +289,7 @@ void ISEDisplay::handlePWMChange(uint8_t pin, bool state, uint16_t value) } else if (current_page == PAGE_DASHBOARD) { - if ((pin >= 0 && pin <= 3) ||(pin >= 8 && pin <= 11)) + if (LIGHT_ROW1_COLUMN1 || LIGHT_ROW1_COLUMN2 || LIGHT_ROW2_COLUMN1 || LIGHT_ROW2_COLUMN2 || LIGHT_ROW3_COLUMN1 || LIGHT_ROW3_COLUMN2 || LIGHT_ROW4_COLUMN1 || LIGHT_ROW4_COLUMN2) //change { // Light updateLightGroupStatePageDashboard(); @@ -716,6 +720,8 @@ bool ISEDisplay::calculateLightGroupState() { // Check if all lights are on bool lightOn = false; + // uint_8 first_pin = *(light_array); + // uint_8 last_pin = *(light_array + 7); for (uint8_t i = 1; i <= 4; i++) { if (getLightLevel(i) != 0) diff --git a/src/ise_display_definitions.hpp b/src/ise_display_definitions.hpp index 6b45c45..cfd9920 100644 --- a/src/ise_display_definitions.hpp +++ b/src/ise_display_definitions.hpp @@ -42,6 +42,19 @@ lights have 4 states 3: high */ +#define COMPUTER_DESK_SWITCH_OUT 12 + +#define COMPUTER_DESK_SWITCH_IN 8 + +#define LIGHT_ROW1_COLUMN1_IN 0 +#define LIGHT_ROW1_COLUMN2_IN 1 +#define LIGHT_ROW2_COLUMN1_IN 2 +#define LIGHT_ROW2_COLUMN2_IN 3 +#define LIGHT_ROW3_COLUMN1_IN 4 +#define LIGHT_ROW3_COLUMN2_IN 5 +#define LIGHT_ROW4_COLUMN1_IN 6 +#define LIGHT_ROW4_COLUMN2_IN 7 + // #define DISPLAY_TIMEOUT 5*60*1000 // 5 minutes diff --git a/src/main.cpp b/src/main.cpp index 9398aa3..e0e1147 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -286,21 +286,50 @@ void on_pin_change(uint8_t pin, uint8_t value) // For input pin 4-7, map it with output pin 8-11 // For input pin 12, map it with output pin 12 // When Input pin change, Toggle the output pin - if (pin < 4) - { - bool new_value = !espmega.outputs.getState(pin); - espmega.outputs.setState(pin, new_value); - } - else if (pin < 8) - { - bool new_value = !espmega.outputs.getState(pin + 4); - espmega.outputs.setState(pin + 4, new_value); - } - else if (pin == 12) - { - bool new_value = !espmega.outputs.getState(12); - espmega.outputs.setState(12, new_value); + Switch (pin){ + case LIGHT_ROW1_COLUMN1_IN: + espmega.outputs.setState(LIGHT_ROW1_COLUMN1, !espmega.outputs.getState(LIGHT_ROW1_COLUMN1)); + break; + case LIGHT_ROW1_COLUMN2_IN: + espmega.outputs.setState(LIGHT_ROW1_COLUMN2, !espmega.outputs.getState(LIGHT_ROW1_COLUMN2)); + break; + case LIGHT_ROW2_COLUMN1_IN: + espmega.outputs.setState(LIGHT_ROW2_COLUMN1, !espmega.outputs.getState(LIGHT_ROW2_COLUMN1)); + break; + case LIGHT_ROW2_COLUMN2_IN: + espmega.outputs.setState(LIGHT_ROW2_COLUMN2, !espmega.outputs.getState(LIGHT_ROW2_COLUMN2)); + break; + case LIGHT_ROW3_COLUMN1_IN: + espmega.outputs.setState(LIGHT_ROW3_COLUMN1, !espmega.outputs.getState(LIGHT_ROW3_COLUMN1)); + break; + case LIGHT_ROW3_COLUMN2_IN: + espmega.outputs.setState(LIGHT_ROW3_COLUMN2, !espmega.outputs.getState(LIGHT_ROW3_COLUMN2)); + break; + case LIGHT_ROW4_COLUMN1_IN: + espmega.outputs.setState(LIGHT_ROW4_COLUMN1, !espmega.outputs.getState(LIGHT_ROW4_COLUMN1)); + break; + case LIGHT_ROW4_COLUMN2_IN: + espmega.outputs.setState(LIGHT_ROW4_COLUMN2, !espmega.outputs.getState(LIGHT_ROW4_COLUMN2)); + break; + case COMPUTER_DESK_SWITCH_IN: + espmega.outputs.setState(COMPUTER_DESK_SWITCH_OUT, !espmega.outputs.getState(COMPUTER_DESK_SWITCH_OUT)); + break; } + // if (pin < 4) + // { + // bool new_value = !espmega.outputs.getState(pin); + // espmega.outputs.setState(pin, new_value); + // } + // else if (pin < 8) + // { + // bool new_value = !espmega.outputs.getState(pin + 4); + // espmega.outputs.setState(pin + 4, new_value); + // } + // else if (pin == 12) + // { + // bool new_value = !espmega.outputs.getState(12); + // espmega.outputs.setState(12, new_value); + // } } uint16_t get_pm25_out()