diff --git a/src/cud_display.hpp b/src/cud_display.hpp index 047d783..cc46116 100644 --- a/src/cud_display.hpp +++ b/src/cud_display.hpp @@ -1,3 +1,4 @@ +#pragma once #include class CUDDisplay : public ESPMegaDisplay { public: diff --git a/src/ir_codes.cpp b/src/ir_codes.cpp new file mode 100644 index 0000000..f843ba4 --- /dev/null +++ b/src/ir_codes.cpp @@ -0,0 +1,104 @@ +#include + +const uint16_t ir_code_cool[4][16][91] = { + // Fan Speed Auto + { + {8976, 4498, 562, 546, 589, 547, 588, 1649, 588, 548, 587, 1649, 588, 547, 589, 548, 587, 564, 589, 547, 588, 1649, 588, 548, 587, 547, 588, 548, 588, 548, 588, 547, 587, 566, 587, 548, 587, 548, 588, 548, 587, 548, 588, 548, 587, 549, 586, 548, 587, 565, 588, 549, 586, 548, 588, 548, 588, 548, 560, 577, 584, 549, 586, 551, 585, 565, 588, 549, 587, 548, 560, 576, 560, 574, 587, 549, 587, 550, 586, 548, 588, 570, 560, 576, 586, 549, 560, 575, 560, 1665, 560}, // 15C + {8976, 4498, 560, 548, 587, 549, 587, 1650, 587, 549, 587, 1649, 586, 550, 587, 548, 587, 565, 587, 549, 586, 1652, 586, 549, 586, 549, 587, 548, 587, 549, 586, 549, 587, 1667, 587, 548, 587, 548, 587, 549, 588, 547, 587, 549, 587, 549, 587, 548, 587, 565, 587, 549, 586, 549, 587, 549, 586, 548, 587, 549, 587, 549, 587, 547, 589, 564, 587, 548, 588, 548, 587, 548, 587, 549, 587, 550, 585, 549, 587, 549, 586, 570, 587, 548, 587, 550, 586, 549, 587, 536, 587}, // 16C + {8976, 4499, 531, 577, 558, 577, 559, 1678, 559, 577, 558, 1679, 559, 577, 558, 577, 558, 595, 558, 577, 558, 1679, 558, 577, 559, 576, 559, 578, 558, 576, 559, 1679, 558, 594, 558, 578, 558, 577, 559, 576, 558, 578, 558, 577, 558, 577, 558, 578, 558, 594, 559, 577, 558, 577, 558, 578, 557, 578, 558, 577, 559, 577, 557, 578, 559, 593, 559, 577, 558, 577, 559, 576, 559, 577, 558, 578, 557, 578, 559, 576, 559, 599, 558, 1678, 559, 1679, 559, 1678, 558, 1666, 560}, // 17C + {8977, 4498, 561, 549, 587, 547, 588, 1649, 588, 547, 589, 1648, 589, 547, 588, 548, 587, 565, 589, 547, 587, 1650, 587, 547, 589, 548, 588, 546, 589, 547, 588, 1649, 588, 1667, 587, 548, 588, 547, 588, 548, 588, 547, 588, 548, 588, 548, 587, 548, 587, 565, 587, 548, 588, 547, 588, 549, 587, 548, 587, 548, 588, 548, 587, 548, 588, 564, 588, 547, 588, 549, 586, 550, 587, 547, 588, 548, 587, 548, 588, 548, 587, 570, 587, 1649, 588, 1650, 588, 1649, 588, 536, 587}, // 18C + {8998, 4502, 534, 574, 587, 549, 585, 1652, 586, 550, 560, 1677, 560, 575, 586, 550, 561, 591, 587, 548, 586, 1651, 587, 549, 586, 549, 585, 550, 561, 1676, 563, 573, 560, 592, 587, 549, 561, 574, 586, 550, 586, 550, 559, 575, 561, 575, 561, 575, 560, 592, 560, 576, 560, 575, 560, 576, 560, 574, 561, 575, 560, 576, 560, 575, 560, 593, 559, 576, 560, 575, 560, 577, 558, 576, 560, 575, 562, 574, 560, 576, 560, 597, 560, 1676, 562, 1676, 559, 576, 561, 1665, 560}, // 19C + {8978, 4503, 562, 548, 586, 549, 588, 1649, 587, 547, 589, 1649, 588, 547, 588, 548, 587, 565, 590, 546, 587, 1649, 588, 548, 588, 548, 587, 548, 587, 1649, 588, 548, 588, 1666, 588, 547, 588, 547, 588, 549, 587, 548, 588, 547, 588, 547, 589, 547, 587, 565, 588, 547, 588, 549, 587, 548, 587, 549, 587, 547, 588, 548, 588, 547, 588, 564, 589, 547, 587, 549, 587, 548, 588, 548, 588, 547, 588, 547, 588, 547, 588, 570, 588, 1649, 588, 1649, 587, 548, 588, 535, 589}, // 20C + {8977, 4503, 560, 549, 587, 548, 560, 1677, 587, 548, 587, 1650, 587, 549, 586, 549, 586, 567, 587, 548, 587, 1650, 588, 547, 587, 549, 587, 548, 587, 1650, 587, 1650, 588, 565, 588, 547, 587, 549, 587, 548, 587, 548, 587, 548, 588, 548, 587, 549, 587, 565, 586, 549, 587, 548, 588, 548, 587, 549, 586, 549, 587, 548, 587, 548, 588, 565, 588, 547, 588, 548, 587, 548, 588, 548, 587, 548, 587, 548, 588, 548, 587, 570, 588, 1649, 588, 547, 588, 1650, 588, 1635, 589}, // 21C + {8996, 4503, 506, 603, 533, 603, 533, 1703, 534, 602, 532, 1705, 533, 602, 533, 602, 533, 619, 533, 603, 533, 1704, 533, 602, 533, 603, 533, 603, 531, 1705, 533, 1704, 532, 1722, 533, 602, 533, 603, 533, 602, 534, 602, 533, 602, 533, 602, 533, 603, 533, 619, 533, 602, 533, 603, 533, 603, 532, 603, 533, 602, 533, 602, 534, 602, 533, 620, 532, 603, 533, 602, 533, 603, 533, 602, 533, 602, 533, 603, 533, 602, 533, 624, 533, 1705, 533, 602, 533, 1704, 533, 590, 533}, // 22C + {8976, 4504, 560, 549, 587, 548, 587, 1650, 587, 548, 587, 1650, 587, 549, 587, 548, 587, 566, 587, 548, 587, 1649, 589, 548, 587, 548, 587, 1650, 587, 549, 587, 548, 588, 564, 588, 548, 587, 548, 587, 549, 587, 548, 587, 548, 587, 548, 588, 548, 588, 565, 587, 548, 588, 548, 587, 547, 588, 548, 587, 549, 586, 549, 587, 548, 588, 565, 587, 548, 587, 548, 588, 548, 586, 549, 587, 549, 587, 548, 588, 548, 587, 570, 587, 1650, 588, 547, 587, 549, 587, 1637, 588}, // 23C + {8976, 4504, 560, 549, 587, 549, 586, 1651, 586, 549, 586, 1651, 587, 548, 587, 548, 588, 565, 587, 548, 587, 1650, 587, 549, 586, 549, 587, 1650, 587, 549, 586, 549, 587, 1667, 587, 548, 587, 549, 587, 549, 586, 549, 586, 549, 587, 548, 588, 548, 587, 565, 587, 548, 587, 549, 587, 548, 587, 549, 587, 548, 587, 549, 587, 548, 586, 567, 586, 549, 586, 549, 586, 549, 587, 548, 588, 549, 586, 549, 586, 550, 587, 570, 586, 1650, 587, 549, 587, 548, 587, 537, 586}, // 24C + {8977, 4503, 531, 578, 534, 602, 556, 1680, 534, 602, 533, 1704, 556, 579, 557, 579, 533, 619, 533, 603, 532, 1704, 558, 578, 533, 603, 532, 1705, 555, 580, 532, 1705, 557, 595, 557, 579, 556, 579, 557, 579, 557, 578, 557, 579, 557, 578, 557, 578, 557, 596, 557, 578, 557, 579, 557, 577, 559, 577, 559, 576, 558, 578, 557, 578, 558, 594, 559, 577, 558, 578, 558, 577, 558, 577, 559, 577, 559, 576, 560, 575, 560, 598, 558, 578, 558, 1678, 559, 1679, 559, 1666, 558}, // 25C + {8976, 4498, 507, 602, 534, 602, 533, 1703, 534, 602, 533, 1704, 533, 602, 557, 579, 533, 619, 533, 602, 557, 1680, 534, 602, 533, 602, 534, 1703, 534, 602, 556, 1680, 534, 1720, 533, 602, 534, 602, 534, 602, 533, 602, 556, 580, 533, 601, 535, 601, 534, 619, 533, 602, 534, 602, 534, 601, 534, 602, 533, 602, 558, 577, 534, 602, 533, 619, 534, 602, 557, 578, 557, 578, 534, 602, 533, 603, 532, 603, 556, 579, 533, 624, 557, 579, 533, 1704, 533, 1704, 533, 590, 533}, // 26C + {8977, 4503, 533, 576, 560, 575, 559, 1679, 559, 577, 559, 1677, 559, 576, 559, 580, 556, 593, 559, 577, 559, 1677, 561, 575, 559, 576, 560, 1678, 559, 1678, 560, 575, 559, 593, 559, 577, 559, 576, 560, 575, 560, 576, 559, 576, 560, 576, 560, 576, 559, 592, 560, 576, 560, 575, 560, 576, 559, 576, 560, 576, 559, 577, 558, 576, 560, 593, 559, 576, 560, 575, 561, 575, 560, 575, 559, 577, 559, 576, 560, 576, 559, 598, 560, 576, 560, 1677, 558, 577, 559, 1667, 559}, // 27C + {8996, 4504, 483, 626, 533, 602, 510, 1727, 533, 602, 533, 1704, 533, 602, 534, 602, 510, 642, 533, 603, 533, 1704, 532, 602, 534, 602, 533, 1704, 533, 1704, 533, 603, 512, 1742, 531, 604, 532, 603, 533, 603, 531, 604, 532, 603, 532, 603, 533, 603, 532, 620, 532, 604, 531, 604, 531, 604, 533, 602, 511, 626, 532, 603, 509, 626, 510, 643, 531, 604, 532, 603, 533, 603, 532, 603, 531, 605, 532, 602, 533, 602, 533, 625, 531, 605, 532, 1704, 533, 603, 533, 590, 534}, // 28C + {8977, 4497, 508, 601, 534, 601, 535, 1702, 535, 601, 534, 1703, 534, 601, 535, 601, 534, 618, 534, 601, 535, 1702, 534, 602, 535, 600, 534, 1703, 534, 1703, 534, 1704, 534, 618, 534, 601, 534, 602, 534, 601, 534, 601, 535, 600, 535, 601, 535, 601, 534, 618, 534, 602, 534, 600, 535, 601, 535, 600, 535, 601, 534, 602, 533, 602, 534, 619, 534, 600, 535, 601, 534, 602, 533, 602, 535, 600, 535, 601, 534, 601, 535, 623, 533, 602, 534, 601, 534, 1703, 535, 1690, 534}, // 29C + {8978, 4503, 533, 575, 561, 575, 559, 1678, 559, 577, 559, 1678, 559, 577, 558, 576, 560, 593, 559, 576, 560, 1677, 560, 575, 559, 577, 560, 1677, 560, 1677, 559, 1679, 558, 1696, 559, 576, 559, 576, 560, 576, 559, 576, 559, 576, 560, 576, 560, 575, 559, 594, 559, 576, 560, 575, 560, 576, 560, 575, 560, 576, 559, 576, 560, 575, 560, 594, 558, 576, 560, 575, 559, 577, 560, 575, 560, 576, 559, 577, 561, 574, 559, 599, 559, 576, 559, 579, 557, 1677, 560, 564, 559} // 30C + }, + // Fan Speed High + { + {8978, 4504, 561, 548, 587, 549, 586, 1650, 587, 549, 586, 1650, 586, 550, 586, 549, 586, 566, 586, 550, 586, 1649, 587, 549, 585, 1651, 586, 550, 585, 550, 586, 550, 584, 568, 585, 550, 585, 550, 584, 552, 583, 552, 584, 550, 585, 551, 584, 551, 585, 568, 584, 550, 559, 576, 585, 551, 560, 576, 583, 551, 559, 577, 558, 577, 584, 568, 584, 551, 584, 552, 584, 551, 558, 577, 558, 577, 559, 577, 558, 577, 558, 599, 558, 577, 558, 577, 584, 552, 558, 564, 559}, // 15C + {8978, 4503, 563, 546, 588, 546, 590, 1647, 589, 546, 590, 1647, 589, 546, 590, 545, 590, 563, 589, 546, 589, 1647, 590, 545, 590, 1647, 589, 546, 589, 547, 589, 545, 589, 1665, 589, 546, 589, 546, 589, 547, 589, 546, 589, 546, 589, 547, 588, 547, 589, 563, 589, 545, 589, 547, 589, 546, 589, 547, 588, 546, 589, 547, 589, 546, 589, 563, 589, 546, 589, 547, 589, 545, 589, 547, 588, 547, 588, 548, 588, 546, 589, 568, 589, 1648, 589, 1647, 589, 1648, 589, 1635, 589}, // 16C + {8978, 4447, 561, 549, 587, 548, 588, 1648, 588, 547, 588, 1648, 589, 546, 589, 547, 588, 564, 588, 548, 588, 1648, 588, 548, 588, 1648, 588, 547, 588, 547, 589, 1648, 588, 564, 587, 548, 588, 548, 587, 548, 587, 548, 587, 549, 587, 547, 587, 549, 587, 564, 588, 547, 588, 548, 588, 548, 587, 547, 588, 548, 588, 547, 587, 552, 584, 565, 587, 548, 587, 547, 589, 547, 587, 548, 588, 547, 588, 547, 588, 548, 587, 569, 589, 1647, 589, 1649, 587, 1648, 589, 535, 589}, // 17C + {8978, 4523, 507, 602, 533, 602, 533, 1703, 534, 601, 534, 1704, 533, 601, 534, 601, 534, 618, 534, 601, 534, 1703, 534, 601, 534, 1703, 534, 601, 534, 601, 534, 1703, 534, 1719, 534, 601, 534, 602, 534, 601, 533, 602, 534, 602, 533, 602, 533, 602, 534, 618, 533, 602, 534, 602, 533, 601, 534, 602, 533, 602, 534, 601, 534, 601, 534, 618, 534, 601, 534, 602, 534, 601, 534, 601, 534, 601, 534, 602, 533, 601, 535, 623, 534, 1703, 533, 1703, 534, 601, 534, 1691, 533}, // 18C + {8978, 4502, 559, 550, 585, 551, 585, 1650, 587, 549, 586, 1649, 587, 549, 587, 549, 585, 567, 586, 549, 586, 1650, 586, 550, 585, 1652, 585, 550, 586, 1650, 586, 549, 586, 567, 586, 549, 586, 549, 587, 547, 587, 549, 587, 548, 587, 549, 586, 549, 586, 566, 586, 549, 586, 549, 586, 550, 585, 550, 586, 549, 586, 549, 586, 549, 586, 567, 585, 549, 586, 550, 585, 550, 586, 549, 586, 550, 587, 548, 586, 549, 586, 571, 586, 1650, 586, 1651, 586, 549, 586, 537, 586}, // 19C + {8978, 4502, 562, 547, 635, 500, 589, 1647, 589, 546, 589, 1648, 589, 546, 590, 545, 589, 563, 589, 547, 588, 1648, 589, 547, 588, 1648, 589, 547, 588, 1648, 589, 546, 589, 1664, 589, 547, 589, 546, 588, 547, 588, 547, 589, 546, 589, 547, 588, 547, 588, 564, 589, 547, 588, 546, 589, 546, 589, 547, 588, 548, 588, 546, 589, 546, 589, 564, 588, 547, 588, 547, 588, 547, 588, 547, 589, 546, 589, 546, 589, 547, 588, 568, 589, 1648, 589, 547, 588, 1648, 589, 1635, 589}, // 20C + {8978, 4502, 532, 577, 533, 602, 560, 1676, 560, 576, 559, 1677, 534, 602, 533, 601, 561, 592, 559, 576, 560, 1677, 558, 577, 560, 1676, 558, 578, 559, 1677, 560, 1677, 559, 594, 558, 577, 558, 577, 533, 602, 559, 576, 559, 576, 558, 577, 559, 577, 558, 594, 558, 577, 535, 600, 558, 577, 558, 577, 559, 576, 559, 577, 558, 577, 559, 593, 559, 576, 559, 576, 534, 601, 559, 577, 533, 601, 558, 578, 559, 577, 558, 598, 534, 1702, 534, 602, 558, 1679, 533, 590, 558}, // 21C + {8978, 4497, 562, 547, 588, 546, 589, 1648, 589, 546, 590, 1647, 589, 546, 589, 547, 589, 563, 588, 546, 590, 1648, 588, 547, 588, 1648, 589, 547, 588, 1647, 589, 1649, 589, 1664, 589, 546, 589, 547, 588, 547, 588, 546, 590, 546, 590, 546, 587, 547, 590, 562, 589, 546, 589, 547, 589, 546, 588, 547, 589, 547, 588, 546, 590, 546, 589, 563, 588, 547, 589, 546, 589, 547, 588, 548, 588, 546, 588, 547, 589, 547, 588, 569, 588, 1648, 589, 546, 589, 547, 588, 1636, 589}, // 22C + {8978, 4495, 564, 546, 589, 546, 589, 1648, 589, 546, 589, 1648, 588, 547, 589, 546, 589, 563, 589, 546, 590, 1646, 590, 546, 589, 1647, 590, 1646, 590, 546, 589, 546, 590, 563, 588, 547, 589, 546, 589, 546, 589, 546, 589, 546, 590, 545, 590, 546, 589, 563, 589, 546, 589, 547, 589, 545, 590, 545, 590, 546, 589, 546, 589, 546, 589, 564, 589, 545, 590, 545, 590, 546, 589, 546, 589, 546, 589, 546, 590, 546, 589, 568, 589, 1647, 590, 546, 589, 545, 590, 534, 589}, // 23C + {8978, 4501, 562, 547, 589, 546, 588, 1648, 589, 547, 588, 1649, 587, 548, 587, 547, 589, 564, 589, 546, 588, 1649, 588, 547, 588, 1649, 588, 1648, 589, 546, 588, 547, 588, 1665, 589, 547, 588, 548, 587, 548, 588, 547, 588, 547, 588, 547, 588, 548, 588, 564, 587, 547, 589, 547, 588, 547, 588, 547, 588, 548, 587, 548, 588, 547, 588, 564, 588, 547, 589, 546, 589, 547, 587, 547, 589, 547, 587, 548, 588, 548, 588, 569, 587, 548, 587, 1649, 588, 1649, 588, 1636, 588}, // 24C + {8978, 4502, 559, 548, 562, 574, 561, 1676, 560, 575, 561, 1676, 561, 574, 561, 574, 562, 590, 561, 575, 561, 1675, 586, 550, 560, 1676, 561, 1675, 560, 575, 561, 1676, 561, 592, 560, 575, 586, 548, 588, 548, 561, 574, 560, 575, 562, 573, 561, 574, 561, 591, 561, 575, 560, 576, 586, 548, 586, 550, 586, 548, 562, 574, 561, 574, 561, 592, 586, 548, 587, 548, 585, 551, 561, 574, 561, 574, 562, 574, 560, 575, 587, 569, 588, 548, 585, 1652, 585, 1651, 588, 535, 561}, // 25C + {8978, 4496, 507, 601, 534, 601, 534, 1703, 534, 602, 533, 1702, 534, 602, 534, 601, 533, 620, 533, 602, 533, 1703, 534, 601, 534, 1703, 533, 1704, 533, 602, 533, 1703, 533, 1720, 534, 602, 533, 602, 533, 602, 534, 601, 534, 602, 533, 601, 535, 600, 534, 619, 534, 601, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 534, 601, 534, 618, 534, 601, 534, 602, 533, 602, 534, 602, 533, 601, 534, 602, 534, 601, 534, 623, 533, 603, 533, 1702, 535, 601, 533, 1691, 534}, // 26C + {8978, 4501, 533, 576, 560, 575, 560, 1677, 560, 575, 559, 1677, 560, 575, 560, 576, 559, 592, 560, 576, 560, 1676, 561, 575, 559, 1677, 560, 1676, 561, 1676, 560, 576, 559, 593, 559, 576, 559, 576, 560, 575, 560, 575, 560, 576, 559, 575, 560, 576, 559, 593, 560, 575, 560, 576, 559, 575, 560, 576, 560, 575, 560, 576, 559, 576, 559, 593, 560, 575, 559, 575, 560, 576, 559, 576, 560, 575, 560, 576, 559, 576, 560, 597, 560, 575, 559, 1678, 559, 576, 559, 564, 560}, // 27C + {8978, 4496, 562, 547, 589, 547, 588, 1648, 589, 546, 589, 1647, 589, 547, 589, 546, 588, 565, 588, 546, 588, 1648, 590, 546, 588, 1649, 588, 1649, 588, 1648, 588, 547, 589, 1664, 588, 548, 588, 547, 592, 543, 588, 547, 589, 547, 588, 547, 588, 547, 588, 564, 588, 548, 588, 547, 588, 547, 588, 546, 589, 547, 588, 547, 589, 546, 589, 564, 588, 547, 588, 547, 588, 547, 588, 548, 588, 546, 589, 547, 588, 547, 588, 569, 588, 547, 588, 548, 588, 1648, 589, 1636, 588}, // 28C + {8978, 4503, 507, 601, 534, 601, 534, 1702, 534, 602, 534, 1703, 533, 602, 533, 602, 533, 619, 534, 601, 558, 1679, 534, 601, 557, 1680, 533, 1704, 533, 1703, 534, 1702, 534, 618, 534, 601, 534, 602, 534, 601, 534, 602, 533, 601, 534, 602, 533, 602, 533, 619, 534, 601, 534, 602, 533, 602, 534, 601, 533, 602, 534, 602, 533, 601, 535, 617, 534, 602, 534, 601, 534, 601, 534, 602, 533, 601, 534, 602, 557, 578, 534, 624, 533, 601, 559, 577, 533, 1703, 534, 590, 533}, // 29C + {8978, 4502, 534, 575, 562, 573, 561, 1675, 561, 575, 560, 1676, 561, 575, 560, 574, 562, 591, 560, 575, 560, 1676, 562, 574, 560, 1676, 561, 1675, 562, 1675, 561, 1676, 560, 1693, 561, 575, 561, 574, 560, 575, 561, 575, 560, 574, 561, 575, 560, 575, 561, 591, 561, 574, 561, 575, 560, 574, 561, 575, 563, 572, 560, 576, 560, 574, 561, 592, 560, 574, 561, 575, 561, 574, 561, 573, 562, 575, 561, 574, 560, 575, 560, 597, 560, 575, 561, 574, 561, 575, 560, 1664, 561} // 30C + + }, + // Fan Speed Med + { + {8978, 4497, 506, 602, 534, 602, 557, 1679, 534, 602, 533, 1703, 556, 579, 534, 602, 533, 618, 534, 601, 534, 1703, 534, 1703, 533, 602, 534, 601, 534, 601, 534, 601, 534, 618, 534, 602, 533, 603, 533, 601, 534, 602, 533, 602, 533, 602, 533, 603, 533, 618, 534, 602, 557, 577, 534, 601, 534, 602, 533, 602, 534, 601, 534, 602, 533, 619, 534, 601, 533, 602, 534, 602, 533, 601, 534, 602, 533, 602, 534, 602, 533, 623, 534, 1703, 534, 1702, 534, 1703, 534, 1691, 533}, // 15C + {8978, 4503, 560, 550, 585, 549, 587, 1650, 586, 549, 586, 1651, 585, 550, 585, 550, 586, 566, 586, 549, 587, 1650, 586, 1651, 585, 550, 585, 550, 586, 550, 585, 550, 585, 1668, 585, 550, 587, 548, 586, 549, 586, 549, 586, 549, 586, 550, 586, 549, 586, 566, 586, 549, 586, 549, 586, 549, 586, 550, 586, 549, 585, 550, 586, 549, 586, 567, 585, 550, 585, 550, 585, 550, 586, 549, 585, 551, 585, 550, 585, 550, 585, 572, 586, 1650, 586, 1651, 585, 1651, 586, 538, 586}, // 16C + {8978, 4529, 507, 601, 534, 601, 534, 1703, 534, 601, 534, 1703, 533, 602, 534, 602, 533, 618, 534, 602, 533, 1704, 533, 1703, 533, 601, 534, 602, 534, 601, 534, 1703, 534, 618, 533, 603, 533, 601, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 533, 619, 534, 601, 534, 601, 534, 602, 533, 602, 534, 601, 534, 601, 534, 601, 534, 618, 534, 602, 533, 602, 534, 602, 533, 602, 533, 602, 533, 602, 534, 601, 534, 623, 534, 1703, 533, 1703, 534, 602, 533, 1691, 534}, // 17C + {8978, 4496, 508, 600, 535, 601, 534, 1702, 535, 600, 535, 1701, 536, 600, 535, 601, 534, 618, 534, 601, 534, 1702, 535, 1702, 534, 601, 535, 600, 535, 601, 534, 1702, 534, 1719, 535, 601, 534, 601, 534, 602, 534, 601, 533, 601, 535, 601, 534, 601, 534, 618, 534, 601, 534, 602, 533, 602, 534, 601, 534, 601, 534, 602, 533, 601, 535, 617, 535, 601, 534, 601, 534, 601, 535, 600, 534, 601, 535, 600, 535, 601, 534, 623, 534, 1703, 533, 1703, 534, 601, 534, 589, 535}, // 18C + {8978, 4522, 508, 601, 534, 602, 533, 1703, 534, 602, 533, 1703, 533, 602, 534, 601, 534, 619, 533, 602, 533, 1703, 534, 1702, 534, 602, 535, 600, 534, 1702, 535, 601, 534, 618, 533, 602, 533, 603, 533, 602, 534, 601, 533, 602, 534, 601, 533, 602, 534, 619, 533, 602, 533, 602, 533, 602, 534, 602, 533, 602, 533, 601, 534, 601, 534, 619, 533, 601, 535, 601, 534, 601, 534, 602, 533, 602, 533, 602, 533, 602, 534, 624, 533, 1702, 535, 601, 534, 1702, 534, 1691, 533}, // 19C + {8978, 4523, 507, 602, 534, 601, 533, 1704, 533, 601, 534, 1703, 534, 601, 534, 601, 534, 619, 533, 601, 534, 1703, 534, 1703, 534, 601, 534, 601, 534, 1702, 535, 600, 535, 1719, 534, 601, 534, 602, 533, 602, 534, 601, 534, 602, 533, 602, 533, 602, 533, 619, 533, 602, 534, 601, 534, 601, 534, 601, 534, 602, 533, 603, 533, 601, 534, 618, 534, 602, 533, 601, 535, 601, 534, 601, 534, 601, 534, 602, 533, 602, 533, 624, 534, 1703, 533, 601, 534, 1702, 535, 589, 534}, // 20C + {8978, 4503, 562, 547, 588, 547, 589, 1647, 589, 546, 589, 1648, 588, 547, 589, 546, 589, 564, 588, 547, 589, 1648, 588, 1648, 588, 546, 590, 546, 589, 1648, 588, 1648, 589, 564, 588, 547, 589, 546, 588, 548, 588, 546, 589, 546, 589, 547, 588, 547, 589, 563, 589, 547, 587, 547, 589, 547, 588, 547, 588, 547, 588, 547, 589, 545, 590, 564, 588, 546, 589, 546, 589, 547, 589, 546, 589, 546, 589, 547, 588, 547, 589, 569, 587, 1648, 589, 547, 588, 546, 589, 1637, 588}, // 21C + {8978, 4497, 508, 601, 534, 601, 534, 1702, 535, 601, 534, 1702, 534, 602, 534, 601, 534, 617, 534, 602, 534, 1703, 533, 1703, 534, 602, 533, 602, 533, 1703, 534, 1703, 533, 1720, 534, 601, 534, 602, 533, 602, 534, 601, 534, 602, 533, 601, 534, 602, 533, 619, 533, 602, 534, 601, 534, 601, 534, 602, 533, 601, 535, 602, 532, 602, 534, 618, 534, 602, 533, 601, 535, 601, 533, 602, 534, 602, 533, 601, 534, 601, 534, 624, 533, 1703, 534, 602, 533, 602, 533, 590, 534}, // 22C + {8978, 4503, 507, 602, 534, 602, 533, 1703, 534, 601, 534, 1702, 534, 602, 533, 602, 533, 619, 533, 602, 534, 1703, 533, 1704, 533, 602, 533, 1703, 534, 600, 535, 601, 534, 619, 533, 601, 534, 602, 533, 602, 534, 601, 534, 601, 534, 602, 533, 602, 533, 619, 533, 602, 533, 603, 533, 602, 533, 602, 533, 602, 533, 603, 533, 601, 534, 619, 533, 602, 533, 602, 534, 601, 534, 602, 533, 601, 534, 602, 534, 601, 533, 624, 534, 601, 534, 1703, 533, 1703, 534, 1691, 533}, // 23C + {8978, 4495, 507, 602, 557, 581, 531, 1703, 533, 601, 559, 1679, 557, 578, 558, 577, 558, 594, 558, 578, 557, 1679, 533, 1704, 533, 601, 558, 1679, 557, 578, 534, 601, 534, 1720, 558, 577, 558, 577, 534, 601, 559, 577, 558, 577, 558, 577, 534, 602, 533, 619, 557, 578, 557, 577, 558, 578, 534, 601, 557, 578, 559, 576, 559, 577, 558, 593, 558, 578, 559, 577, 533, 601, 557, 579, 558, 577, 557, 578, 534, 601, 559, 598, 558, 577, 534, 1703, 559, 1678, 538, 585, 558}, // 24C + {8978, 4501, 507, 601, 558, 578, 534, 1702, 534, 601, 534, 1703, 558, 577, 534, 602, 533, 619, 558, 577, 534, 1702, 534, 1703, 534, 602, 557, 1679, 533, 602, 534, 1703, 533, 619, 533, 602, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 533, 602, 534, 619, 532, 602, 534, 601, 534, 602, 533, 602, 533, 602, 534, 602, 533, 601, 534, 619, 533, 602, 534, 601, 533, 602, 557, 578, 534, 601, 534, 602, 533, 602, 534, 623, 533, 602, 534, 1703, 534, 601, 534, 1691, 533}, // 25C + {8978, 4529, 531, 577, 533, 603, 558, 1678, 559, 576, 559, 1678, 558, 576, 561, 575, 558, 594, 559, 576, 559, 1677, 561, 1676, 559, 576, 560, 1677, 559, 577, 558, 1678, 533, 1721, 558, 576, 550, 586, 559, 576, 560, 575, 558, 577, 558, 577, 559, 577, 533, 619, 559, 576, 559, 577, 557, 577, 560, 575, 559, 577, 558, 577, 559, 576, 558, 594, 558, 578, 559, 575, 558, 578, 559, 576, 559, 576, 558, 577, 558, 578, 558, 599, 558, 576, 559, 1678, 558, 578, 559, 565, 556}, // 26C + {8978, 4495, 562, 547, 588, 547, 588, 1648, 589, 547, 588, 1648, 588, 547, 589, 547, 589, 563, 590, 544, 591, 1647, 588, 1648, 589, 545, 590, 1647, 590, 1647, 589, 546, 589, 564, 589, 546, 589, 546, 588, 547, 589, 546, 589, 547, 589, 545, 589, 546, 590, 563, 589, 546, 590, 545, 590, 546, 588, 547, 589, 546, 589, 546, 588, 547, 588, 564, 590, 546, 588, 547, 588, 547, 588, 548, 588, 547, 589, 546, 588, 547, 588, 570, 587, 547, 588, 548, 588, 1648, 589, 1634, 589}, // 27C + {8978, 4502, 562, 547, 587, 549, 587, 1649, 586, 549, 588, 1648, 588, 548, 588, 547, 561, 591, 587, 548, 562, 1675, 564, 1673, 587, 548, 587, 1649, 588, 1648, 588, 548, 562, 1691, 588, 548, 587, 548, 587, 548, 561, 575, 586, 548, 588, 547, 588, 548, 587, 564, 588, 548, 562, 573, 587, 549, 588, 546, 563, 572, 588, 548, 588, 548, 587, 564, 562, 573, 563, 572, 588, 548, 588, 548, 561, 574, 587, 547, 562, 574, 587, 570, 587, 547, 563, 573, 588, 1648, 588, 536, 561}, // 28C + {8978, 4495, 534, 575, 562, 573, 561, 1676, 561, 574, 561, 1675, 560, 576, 560, 574, 561, 592, 561, 574, 561, 1676, 561, 1676, 560, 574, 561, 1677, 559, 1676, 562, 1675, 560, 593, 560, 575, 560, 575, 560, 575, 560, 575, 561, 574, 561, 574, 560, 575, 561, 592, 561, 574, 560, 575, 561, 575, 559, 576, 559, 576, 560, 575, 561, 574, 561, 592, 560, 575, 560, 575, 560, 575, 560, 575, 561, 574, 560, 576, 560, 574, 561, 597, 559, 576, 560, 575, 560, 575, 561, 1664, 560}, // 29C + {8978, 4503, 534, 575, 559, 577, 560, 1676, 558, 577, 559, 1677, 560, 575, 560, 576, 560, 592, 559, 576, 561, 1675, 561, 1676, 560, 575, 559, 1678, 560, 1676, 559, 1677, 561, 1693, 560, 576, 558, 577, 560, 575, 558, 577, 560, 575, 559, 576, 560, 575, 559, 594, 559, 576, 560, 575, 559, 577, 559, 579, 556, 576, 559, 576, 560, 575, 560, 592, 559, 576, 559, 577, 559, 576, 559, 576, 560, 575, 560, 575, 559, 577, 559, 598, 560, 576, 557, 578, 559, 576, 559, 564, 559} // 30C + }, + // Fan Speed Low + { + {8978, 4502, 508, 600, 536, 600, 535, 1702, 534, 601, 534, 1703, 534, 601, 535, 599, 535, 618, 535, 600, 534, 1703, 534, 1702, 535, 1702, 534, 601, 534, 601, 535, 601, 534, 618, 533, 601, 535, 601, 534, 601, 534, 601, 535, 601, 534, 601, 534, 601, 534, 617, 536, 600, 535, 600, 535, 600, 535, 600, 535, 601, 535, 600, 536, 599, 534, 618, 535, 601, 534, 601, 535, 600, 534, 601, 535, 600, 535, 600, 535, 601, 534, 622, 535, 1702, 535, 1701, 535, 1703, 534, 589, 534}, // 15C + {8978, 4497, 508, 601, 533, 602, 535, 1701, 535, 601, 534, 1703, 534, 601, 536, 598, 535, 618, 534, 601, 534, 1703, 534, 1702, 535, 1702, 533, 602, 534, 602, 533, 601, 535, 1719, 534, 601, 534, 601, 535, 600, 535, 601, 534, 601, 535, 600, 534, 601, 535, 617, 535, 601, 533, 602, 534, 601, 534, 601, 534, 602, 534, 601, 535, 601, 533, 618, 535, 600, 535, 601, 533, 602, 534, 602, 532, 602, 534, 601, 535, 601, 534, 623, 535, 1701, 535, 1701, 536, 600, 534, 1690, 535}, // 16C + {8978, 4525, 507, 601, 534, 602, 533, 1704, 533, 602, 534, 1702, 534, 601, 534, 602, 533, 618, 535, 600, 535, 1702, 534, 1702, 535, 1702, 534, 601, 534, 602, 533, 1703, 534, 618, 534, 603, 532, 602, 533, 602, 534, 601, 533, 602, 534, 601, 535, 600, 534, 618, 535, 601, 534, 601, 534, 601, 534, 601, 535, 601, 534, 600, 535, 601, 534, 618, 534, 600, 536, 600, 535, 601, 533, 602, 534, 601, 534, 601, 535, 601, 534, 622, 535, 1702, 534, 1703, 534, 601, 534, 589, 534}, // 17C + {8978, 4504, 505, 603, 533, 603, 533, 1703, 533, 602, 533, 1704, 534, 601, 533, 602, 533, 620, 533, 601, 533, 1704, 533, 1703, 534, 1703, 533, 602, 533, 603, 532, 1704, 533, 1720, 534, 602, 533, 602, 532, 604, 534, 600, 534, 601, 534, 601, 533, 603, 533, 618, 534, 602, 533, 602, 534, 602, 533, 602, 533, 602, 533, 602, 533, 602, 533, 619, 533, 602, 534, 602, 533, 602, 533, 602, 533, 602, 533, 602, 534, 602, 533, 624, 532, 1704, 534, 601, 534, 1703, 533, 1692, 533}, // 18C + {8978, 4496, 508, 601, 534, 601, 534, 1703, 533, 602, 534, 1702, 534, 602, 534, 601, 533, 619, 534, 601, 534, 1703, 534, 1702, 534, 1703, 534, 601, 534, 1702, 535, 600, 534, 618, 535, 601, 533, 602, 534, 602, 533, 602, 533, 601, 534, 601, 534, 602, 534, 619, 533, 601, 534, 602, 534, 601, 534, 601, 534, 601, 534, 601, 534, 601, 534, 618, 535, 600, 535, 601, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 534, 623, 534, 1702, 535, 601, 534, 1702, 535, 589, 534}, // 19C + {8978, 4522, 508, 602, 533, 602, 533, 1703, 534, 602, 533, 1703, 533, 603, 533, 602, 533, 618, 534, 602, 533, 1704, 533, 1703, 533, 1703, 534, 602, 533, 1703, 533, 603, 533, 1719, 534, 602, 533, 602, 534, 601, 533, 602, 534, 601, 534, 602, 533, 602, 533, 619, 534, 601, 533, 603, 533, 602, 533, 602, 533, 602, 534, 602, 556, 578, 534, 618, 534, 602, 533, 602, 533, 602, 534, 601, 534, 602, 533, 601, 534, 602, 533, 624, 533, 1704, 533, 602, 533, 602, 533, 1691, 534}, // 20C + {8978, 4503, 506, 603, 533, 602, 533, 1703, 534, 602, 533, 1703, 533, 602, 533, 603, 532, 620, 533, 602, 533, 1703, 534, 1703, 533, 1703, 534, 601, 560, 1677, 533, 1704, 533, 619, 533, 602, 533, 602, 534, 601, 534, 601, 534, 602, 533, 602, 533, 602, 533, 619, 533, 603, 532, 603, 533, 602, 533, 602, 533, 602, 533, 602, 534, 601, 534, 618, 534, 602, 533, 602, 533, 602, 533, 602, 534, 602, 533, 602, 533, 602, 533, 625, 532, 1703, 534, 602, 533, 604, 531, 590, 533}, // 21C + {8978, 4523, 508, 601, 534, 601, 535, 1702, 534, 600, 535, 1702, 535, 600, 535, 600, 535, 618, 534, 603, 532, 1703, 534, 1702, 534, 1702, 535, 601, 534, 1702, 535, 1702, 535, 1719, 534, 601, 534, 601, 534, 601, 534, 601, 535, 600, 535, 600, 535, 601, 534, 618, 534, 601, 534, 601, 534, 601, 535, 601, 534, 600, 535, 601, 534, 602, 533, 618, 535, 601, 534, 601, 534, 601, 534, 601, 534, 601, 535, 600, 535, 600, 534, 623, 534, 602, 534, 1703, 534, 1702, 534, 1690, 535}, // 22C + {8978, 4504, 507, 601, 534, 601, 534, 1702, 534, 602, 534, 1702, 534, 602, 534, 600, 535, 618, 534, 601, 534, 1702, 535, 1702, 534, 1702, 534, 1703, 534, 601, 535, 600, 535, 618, 533, 601, 535, 601, 534, 601, 535, 600, 535, 600, 534, 602, 534, 600, 535, 618, 534, 601, 534, 602, 533, 601, 535, 601, 535, 600, 534, 601, 535, 600, 534, 618, 534, 601, 535, 601, 535, 600, 534, 601, 534, 601, 535, 600, 534, 601, 535, 622, 535, 601, 535, 1702, 534, 1703, 533, 590, 534}, // 23C + {8978, 4529, 507, 602, 534, 600, 535, 1702, 535, 600, 535, 1703, 533, 602, 533, 601, 535, 617, 535, 601, 534, 1702, 535, 1702, 534, 1702, 534, 1703, 534, 601, 535, 600, 534, 1720, 534, 601, 534, 601, 534, 602, 533, 601, 535, 601, 534, 601, 534, 601, 535, 617, 534, 602, 534, 601, 534, 601, 534, 601, 534, 601, 534, 602, 533, 602, 534, 618, 534, 601, 534, 601, 534, 601, 534, 602, 534, 600, 534, 601, 535, 601, 534, 623, 533, 602, 534, 1702, 534, 602, 534, 1691, 534}, // 24C + {8978, 4529, 506, 603, 533, 602, 533, 1703, 533, 602, 534, 1703, 533, 602, 533, 602, 533, 619, 533, 603, 533, 1703, 533, 1703, 534, 1703, 534, 1702, 534, 602, 533, 1703, 534, 619, 533, 601, 534, 602, 533, 602, 533, 602, 533, 602, 534, 602, 533, 601, 534, 619, 533, 602, 533, 601, 535, 601, 534, 601, 534, 602, 533, 602, 533, 603, 533, 620, 532, 602, 533, 602, 533, 602, 533, 602, 534, 601, 534, 601, 534, 601, 534, 623, 534, 602, 533, 1703, 534, 602, 533, 590, 533}, // 25C + {8978, 4504, 506, 603, 533, 602, 533, 1703, 534, 601, 534, 1703, 533, 602, 534, 602, 533, 619, 533, 602, 533, 1704, 532, 1704, 534, 1702, 533, 1704, 533, 602, 533, 1704, 533, 1720, 534, 602, 533, 601, 534, 602, 533, 602, 533, 602, 533, 603, 532, 602, 535, 617, 534, 602, 534, 601, 533, 602, 533, 602, 534, 601, 533, 603, 533, 602, 533, 620, 532, 602, 533, 603, 532, 603, 533, 602, 533, 601, 534, 602, 533, 602, 533, 624, 533, 602, 534, 601, 534, 1703, 534, 1691, 533}, // 26C + {8978, 4497, 507, 600, 534, 602, 533, 1704, 533, 602, 533, 1704, 533, 602, 533, 602, 533, 619, 533, 602, 533, 1704, 532, 1705, 533, 1703, 533, 1704, 533, 1703, 533, 602, 533, 620, 532, 603, 533, 602, 533, 602, 534, 601, 533, 602, 533, 603, 532, 603, 533, 619, 533, 602, 533, 602, 533, 602, 534, 601, 533, 603, 533, 601, 534, 602, 534, 618, 533, 602, 533, 603, 533, 602, 533, 602, 533, 602, 533, 603, 532, 603, 533, 623, 534, 601, 534, 602, 533, 1704, 532, 591, 533}, // 27C + {8978, 4503, 506, 602, 534, 603, 532, 1704, 532, 603, 532, 1704, 533, 602, 533, 603, 532, 620, 532, 603, 533, 1704, 531, 1705, 532, 1705, 532, 1704, 532, 1704, 533, 603, 532, 1721, 533, 602, 533, 603, 532, 602, 533, 603, 532, 603, 533, 602, 533, 602, 533, 619, 533, 603, 533, 601, 534, 602, 532, 603, 533, 602, 534, 601, 533, 603, 532, 620, 533, 602, 533, 602, 533, 603, 532, 603, 533, 602, 533, 602, 533, 602, 534, 623, 532, 603, 533, 603, 533, 602, 532, 1692, 534}, // 28C + {8978, 4497, 507, 602, 532, 603, 533, 1703, 534, 601, 533, 1704, 533, 603, 532, 602, 534, 619, 532, 603, 533, 1704, 532, 1704, 533, 1704, 532, 1704, 534, 1702, 533, 1704, 533, 619, 533, 602, 534, 602, 533, 602, 532, 602, 534, 603, 533, 601, 533, 602, 533, 619, 533, 602, 533, 603, 533, 602, 533, 602, 533, 602, 533, 603, 533, 602, 533, 619, 533, 602, 533, 602, 533, 603, 533, 602, 532, 603, 532, 603, 533, 602, 533, 624, 533, 602, 533, 603, 532, 603, 533, 589, 534}, // 29C + {8978, 4504, 507, 601, 533, 603, 533, 1703, 533, 602, 534, 1703, 533, 602, 533, 602, 534, 618, 533, 602, 534, 1703, 533, 1704, 533, 1703, 534, 1703, 533, 1704, 532, 1704, 533, 1720, 534, 602, 533, 602, 533, 602, 533, 602, 533, 602, 533, 602, 534, 601, 534, 619, 533, 602, 533, 602, 533, 602, 534, 601, 534, 602, 533, 601, 534, 602, 534, 619, 532, 602, 534, 602, 532, 603, 533, 602, 533, 602, 533, 602, 534, 601, 533, 624, 533, 1704, 533, 1703, 534, 1703, 533, 1691, 534} // 30C + }}; + +const uint16_t ir_code_fan[4][91] = { + {8976, 4498, 559, 551, 584, 550, 560, 1677, 586, 550, 584, 1652, 585, 551, 560, 575, 585, 568, 559, 576, 585, 551, 585, 550, 584, 552, 559, 1677, 584, 1653, 560, 1677, 585, 1669, 584, 551, 560, 576, 559, 576, 584, 554, 583, 550, 584, 551, 585, 551, 585, 567, 561, 575, 584, 551, 560, 576, 584, 551, 585, 550, 560, 576, 584, 551, 560, 593, 560, 576, 584, 550, 585, 551, 584, 551, 584, 552, 584, 551, 584, 551, 560, 598, 559, 576, 585, 1652, 583, 1654, 559, 565, 559}, // AUTO + {8990, 4500, 530, 579, 557, 578, 557, 1680, 557, 578, 557, 1680, 557, 579, 557, 578, 557, 595, 557, 579, 557, 578, 557, 579, 556, 1680, 558, 1679, 557, 1680, 558, 1680, 556, 1697, 558, 577, 558, 579, 555, 579, 558, 578, 557, 578, 557, 578, 557, 579, 556, 596, 557, 579, 556, 579, 557, 578, 557, 579, 556, 579, 557, 579, 556, 579, 557, 595, 557, 578, 558, 578, 557, 579, 556, 579, 557, 579, 556, 578, 557, 579, 557, 600, 557, 579, 556, 1680, 557, 579, 557, 1668, 557}, // HIGH + {8977, 4497, 508, 601, 533, 602, 535, 1702, 534, 602, 533, 1703, 535, 601, 534, 602, 533, 619, 534, 601, 533, 603, 533, 1703, 534, 602, 533, 1704, 533, 1704, 534, 1702, 534, 1721, 533, 601, 534, 602, 534, 602, 533, 602, 533, 602, 534, 601, 536, 600, 534, 618, 534, 602, 534, 601, 534, 602, 533, 601, 534, 602, 534, 602, 533, 602, 533, 619, 534, 602, 533, 602, 533, 602, 533, 603, 533, 602, 534, 602, 534, 601, 533, 624, 534, 602, 533, 1703, 534, 603, 534, 588, 533}, // MED + {8976, 4505, 506, 602, 534, 601, 534, 1703, 533, 603, 533, 1705, 532, 602, 534, 602, 533, 619, 534, 601, 533, 603, 533, 1704, 533, 1704, 533, 1703, 533, 1705, 533, 1704, 533, 1720, 534, 602, 533, 602, 534, 601, 534, 602, 533, 602, 534, 601, 534, 603, 532, 620, 532, 603, 532, 604, 532, 602, 534, 602, 532, 603, 534, 602, 533, 602, 534, 618, 534, 601, 534, 602, 534, 602, 534, 600, 534, 602, 533, 602, 534, 602, 533, 624, 534, 602, 533, 602, 534, 1703, 533, 1692, 534} // LOW +}; +const uint16_t ir_code_off[91] = {9004, 4475, 559, 552, 583, 578, 557, 1680, 557, 554, 582, 578, 557, 553, 582, 553, 583, 569, 583, 552, 584, 1679, 558, 552, 583, 578, 557, 1680, 557, 1655, 582, 1680, 557, 1697, 557, 553, 582, 578, 558, 577, 558, 578, 558, 552, 583, 578, 557, 579, 557, 569, 583, 553, 583, 578, 557, 552, 584, 577, 558, 553, 582, 553, 582, 553, 583, 594, 557, 579, 557, 579, 556, 552, 584, 579, 557, 578, 557, 552, 584, 578, 557, 600, 557, 1653, 584, 552, 584, 1679, 558, 539, 584}; + +size_t getInfraredCode(uint8_t mode, uint8_t fan_speed, uint8_t temperature_index, const uint16_t **codePtr) { + switch (mode) { + case 0: // Off + *codePtr = &(ir_code_off[0]); + return 91; + case 1: // Fan Only + *codePtr = &(ir_code_fan[fan_speed][0]); + return 91; + case 2: // Cool + *codePtr = &(ir_code_cool[fan_speed][temperature_index][0]); + return 91; + default: // Invalid mode + return 0; + } +} \ No newline at end of file diff --git a/src/ir_codes.hpp b/src/ir_codes.hpp new file mode 100644 index 0000000..4b02e08 --- /dev/null +++ b/src/ir_codes.hpp @@ -0,0 +1,11 @@ +#pragma once +#include +#include + +// IR codes for the remote control +extern const uint16_t ir_code_cool[4][16][91]; +extern const uint16_t ir_code_fan[4][91]; +extern const uint16_t ir_code_off[91]; + +// Function to retrieve the IR code for the given mode, fan speed and temperature +size_t getInfraredCode(uint8_t mode, uint8_t fan_speed, uint8_t temperature_index, const uint16_t **codePtr); \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 936d4a4..6eb0292 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,9 +1,23 @@ -#include +#include #include ESPMegaPRO espmega = ESPMegaPRO(); CUDDisplay external_display = CUDDisplay(); + +const char *mode_names[] = {"off", "fan_only", "cool"}; +const char *fan_speed_names[] = {"auto", "high", "medium", "low"}; + +AirConditioner ac = { + .max_temperature = 30, + .min_temperature = 15, + .modes = 3, + .mode_names = mode_names, + .fan_speeds = 4, + .fan_speed_names = fan_speed_names, + .getInfraredCode = &getInfraredCode +}; + void setup() { espmega.begin(); espmega.enableIotModule(); diff --git a/src/main.h b/src/main.hpp similarity index 69% rename from src/main.h rename to src/main.hpp index de70226..d3d02cc 100644 --- a/src/main.h +++ b/src/main.hpp @@ -1,5 +1,7 @@ #pragma once #include +#include +#include void setup(); void loop();