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

v2.3.0 release #370

Merged
merged 51 commits into from
Dec 8, 2017
Merged

v2.3.0 release #370

merged 51 commits into from
Dec 8, 2017

Conversation

crankyoldgit
Copy link
Owner

Moving v2.3.0-dev branch into master to initiate the official release.

Note for reviewers:
Pretty much all of this code has been previously reviewed. Treat being added as a reviewer as a FYI. No review required.

Other people who probably should get FYIed:
@coolacid @bwze @glasruit @HolmaStudent @mwildbolz @waghekapil @sillyfrog @leobel96

sillyfrog and others added 30 commits November 15, 2017 08:39
* For v2.3
* General cleanup.
* More instructions and links.
* Add support for decoding Kelvinator A/C messages.
* Add a decodeKelvinator() method.
* Tweak Kelvinator timings to use a large-ish common tick size.
* Unit test(s) for decodeKelvinator().
* Use a union for state to use less memory.
* Add support for Kelvinator A/C decoding to the dump example code.
* Initial support for sending Toshiba A/C messages.
* Add known-working A/C unit model info.
* Initial support for sending Toshiba A/C messages.
* Add known-working A/C unit model info.
Fix a few linter/style issues as reported by cpplint.py
* Refactor checkheader() & readbits() to use a pointer for offset.
  This cleans up the code quite a lot & makes it more readable IMHO.
* Add some unit tests for decodeDaikin() using real and synthetic data.
  This allowed the refactoring above to happen without causing issues.
  Note: Not all (old) unit tests are passing at this point.
* Clean up some #define usage to make it more presentable and useful.
* General code clean up (lint and style etc)
Unit tests were failing because econo, quiet, & powerful modes were
not mutually exclusive. Previous code did this.
The manual confirms this is correct. i.e. setting one of these modes cancels
the other conflicting modes.

The relevant unit tests now pass again.
- Update test cases to reflect new usage etc.
- Minor code cleanup.
…Econo.

@sillyfrog correctly pointed out Econo mode & Quiet mode are not mutually
exclusive.
Created unit tests for those cases, as well as created unit tests for
Econo mode.
* Replace old formatted unit test data with data based on current sendDaikin()
* The unit test routines need more capacity to handle larger outputs.
  e.g. sendDaikin() with repeats has more than 1000 entries. Bumped to 10k.
crankyoldgit and others added 21 commits November 15, 2017 10:18
* Assigning 16bit values on to a char array caused issues on some architectures.
* Cleaned up time(r) methods and correctly cleared/masked bits.
* Unit Tests added for the time/timer related methods.
* Turned off the DAIKIN_DEBUG flag.
* Minor code quality cleanups.
- We were missing zero'ing of daikin[3].
This reverts/alters an earlier change.
* Initial support for decoding Toshiba A/C remote messages. For #339
* Update Toshiba timings based on user feedback.
* Toshiba A/C always has at least one repeat according to @mwildbolz

* Add outputing the state to a human readable format.

* Typo: Fix an indent issue.
* Add toString() & validChecksum() methods.
* Refactor the code for calculating state checksums.
* Add checksum verification in decodeDaikin()
* Unit test coverage for all of the above plus setRaw().
* Change the debug code to be platform neutral and use toString().
* Fix a typo.
* Make the example code more verbose.
* Update tools.
* Add RawToGlobalCache.sh bash script to convert rawData into Global Cache
* Update gc_decode to handle air conditioners.
* Fix a typo
* Value is now easily set at compile-time and/or run-time.
* Allow decodeHash() a.k.a. UNKNOWN message decoding to be completely removed.

Ref: Issue #341
* Unit tests for Toshiba based on captures from a remote.
Data provided by @mwildbolz

* Update unit test for a 'real' power off example.

* Update working status and known-working models etc.

* Update Toshiba compatiablity list.
@mwildbolz reported it works these particular models.
* Add setRaw(), toString(), & validChecksum() methods.
* Refactor the code for calculating state checksums.
* Add checksum verification in decodeKelvinator()
* Unit test coverage for all of the above.
* New AutoAnalyseRawData tool
A bash script that attempts to automatically analyse raw data to
find key values and details needed to aid writing appropriate
sendXYZ() and decodeXYZ() routines.

Very ALPHA code, only supports common space encoded message formats.

* Improve AutoAnalyseRawData.sh
* Provide more detail output and values in hex/dec/bin and MSB/LSB order
* Remove some unused code.
* Use 'bc' to do the base conversion, rather than my hacky attempt.

* Add generation of suggested code to AutoAnalyseRawData

* More improvements to AutoAnalyseRawData

* Warn on > 64bit values
* Duplicate/repeate detection.
* Handle protocols without HDRs. e.g. Sharp.
* Initial check-in of Midea A/C support.
Per Issue #354

* Midea protocol improvements.
* Add IRMideaAC class to enable message construction for Midea A/C
* Support basic settings (power, fan, standard temp, mode, sleep)
* Unit tests for the class.
* Add checksum verification to decode.
* Update real example to a cleaner one. Re-tune tolerance lower.
See issue #356 for more details.
We were short by approx. 33.7mSecs.
Send and decode support for MagiQuest wands.
* Simplify & improve IRrecvDumpV2 example code.
* Bump version to v0.3
* Display human-readable out of compatible A/C messages.
* Move display code to IRutils.cpp
* Add unit tests for parts moved to IRutils.
* Fix a number of minor display issues.
* Layout of code in dumpV2 improved.
* Set the UNKNOWN minimum threashold to 12 to reduce noise.
* General housekeeping
* Tidy up the parameter section and add more comments/help text.

* [Bug] Fix an underlying off-by-one error in unit test helper code.
  This lead to correcting some off-by-one errors in other protocols.
The unit test `reset()` function could allow data from previous
unit tests to leak through. So, don't use a short-cut, do a full
zero of the arrays.
This also exposed situations where a `decode()` would still work after
a `reset()`, hence a need to re-order some of the unit tests as
`IRsendTest::outputStr()` does an `implicit reset()`.
@bwze advised different timings in #354 (comment)
Using the same final result as suggested, but with a smaller common factor for the tick to aid the automatic timing corrections.
Ref #354
* Improve Fujitsu A/C support
* Fujitsu AR-DB1 support.
* add decodeFujitsuAC().
* Improve code quality.
* More unit tests.
* Add a lot of the 2.3.0 features for A/Cs to Fujitsu.
* Update IRMQTTServer.ino to support the new state sizes.
* Update IRrecvDumpV2.ino for Fujitsu A/C decoding.
* Update IRutils.ino for Fujitsu decoding.
* Add appropriate #ifdef's for A/C decoding to example code.
@crankyoldgit crankyoldgit self-assigned this Dec 8, 2017
@crankyoldgit crankyoldgit merged commit 2a427c7 into master Dec 8, 2017
@crankyoldgit crankyoldgit deleted the v2.3.0-dev branch December 17, 2017 06:12
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.

3 participants