Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce example code size and complexity #790

Merged
merged 10 commits into from
Jul 4, 2019
Merged

Conversation

crankyoldgit
Copy link
Owner

  • IRrecvDumpV2
    • Move generation of A/C text to IRac.cpp.
      • Allows unit test coverage
      • Removes need to change IRrecvDumpV2 every time a new A/C gets added.
      • Reduces size and complexity from example code.
    • Use new code to describe A/Cs in unit tests. Modify tests accordingly.
  • IRMQTTServer
    • Allow disabling of examples. Allows saving of ~2.5k of program space.
    • Remove duplicate code that is elsewhere in the library.
    • Move min repeat and default bit logic to the library so it can be tested.
    • Simplify IR sending logic a bit.
    • Simplify setting the state size for ac-like messages.
    • Add ability to disable MQTT discovery message for aircon. saves ~1.5k if needed.
    • Consolidate calls to ESP.restart().

* Move generation of A/C text to IRac.cpp.
  - Allows unit test coverage
  - Removes need to change IRrecvDumpV2 every time a new A/C gets added.
  - Reduces size and complexity from example code.

* Use new code to describe A/Cs in unit tests. Modify tests accordingly.
* Remove duplicate code that is elsewhere in the library.
* Move min repeat and default bit logic to the library so it can be tested.
* Simplify IR sending logic a bit.
* Simplify setting the state size for ac-like messages.
* Add ability to disable MQTT discovery message for aircon. saves 1.5k if needed.
* Deduplicate code around restarts.
* Change mqttLog() to use `char *` instead of String(). Saves a few bytes.
@crankyoldgit crankyoldgit force-pushed the reduce_example_code branch from ba8cf45 to 4fbc842 Compare July 1, 2019 09:11
crankyoldgit and others added 3 commits July 2, 2019 18:35
* Tests for `defaultBits()`
  - Fix/add RC5X and RC5.
* Tests for `strToDecodeType()` & `typeToString()`
  - Add missing Mitsubishi Heavy protocols
  - Handle NEC_LIKE correctly.
* Tests to ensure every real protocol has a corresponding `IRsend::send()` entry.
@crankyoldgit crankyoldgit merged commit 1b34ce4 into master Jul 4, 2019
crankyoldgit added a commit that referenced this pull request Jul 4, 2019
_v2.6.3 (20190704)_

**[Bug Fixes]**
- IRMQTTServer: REPLAY_DECODED_AC_MESSAGE not working. (#784, #797)
- ESP32: Ensure `IRrecv`'s GPIO is set to input mode. (#774)

**[Features]**
- IRMQTTServer: Show available sketch space for OTA uploads. (#795)
- Experimental detailed support for Electra/AUX protocol (#788)
- IRMQTTServer: Ability to resend existing climate state via MQTT & HTTP (#784)
- Daikin160: Add detailed & common a/c support. (#777)
- Experimental detailed support for Neoclima protocol. (#767)
- Gree: add WiFi and IFeel bits (#770)
- Handle A/Cs with toggles better. (#758)
- IRMQTTServer: Allow sending/receiving climate via JSON over MQTT. (#763)

**[Misc]**
- Move converting of IR A/C messages out of example code. (#798)
- Reduce example code size and complexity (#790)
- Change `ControlSamsungAC` example to not use `sendExtended()` (#792)
- IRMQTTServer: Add MQTT_CLIMATE_IR_SEND_ON_RESTART compile-time flag. (#784)
- Refactor A/C's toString()'s to reduce code size. Saves ~3.5k (#782)
- Add sanity tests for unexpected conditions in IRrecv. (#773)
- IRMQTTServer: Fixed the HA config documentation (missing '-') (#776)
- Improve `mkkeywords` tool. (#766)
- Refactor with generic decode routines in `IRrecv` class. Saves ~7k. (#765)
@crankyoldgit crankyoldgit mentioned this pull request Jul 4, 2019
@crankyoldgit crankyoldgit deleted the reduce_example_code branch July 4, 2019 08:13
crankyoldgit added a commit that referenced this pull request Jul 4, 2019
## _v2.6.3 (20190704)_

**[Bug Fixes]**
- IRMQTTServer: REPLAY_DECODED_AC_MESSAGE not working. (#784, #797)
- ESP32: Ensure `IRrecv`'s GPIO is set to input mode. (#774)

**[Features]**
- IRMQTTServer: Show available sketch space for OTA uploads. (#795)
- Experimental detailed support for Electra/AUX protocol (#788)
- IRMQTTServer: Ability to resend existing climate state via MQTT & HTTP (#784)
- Daikin160: Add detailed & common a/c support. (#777)
- Experimental detailed support for Neoclima protocol. (#767)
- Gree: add WiFi and IFeel bits (#770)
- Handle A/Cs with toggles better. (#758)
- IRMQTTServer: Allow sending/receiving climate via JSON over MQTT. (#763)

**[Misc]**
- Move converting of IR A/C messages out of example code. (#798)
- Reduce example code size and complexity (#790)
- Change `ControlSamsungAC` example to not use `sendExtended()` (#792)
- IRMQTTServer: Add MQTT_CLIMATE_IR_SEND_ON_RESTART compile-time flag. (#784)
- Refactor A/C's toString()'s to reduce code size. Saves ~3.5k (#782)
- Add sanity tests for unexpected conditions in IRrecv. (#773)
- IRMQTTServer: Fixed the HA config documentation (missing '-') (#776)
- Improve `mkkeywords` tool. (#766)
- Refactor with generic decode routines in `IRrecv` class. Saves ~7k. (#765)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant