change code to be definition reliant

This commit is contained in:
reaw55 2024-02-24 16:53:42 +07:00
parent affdc4ddfc
commit 8fcd1b1ad7
3 changed files with 64 additions and 16 deletions

View file

@ -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)

View file

@ -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

View file

@ -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()