* Initial support for sending Pronto IR codes.
* Code for sendPronto().
* Enable it in the default build.
* Tweak calculating the period of the modulation frequency to be able to ignore the preset
offset.
* Unit tests for sendPronto().
* Tweak decodeSony() to use matchAtLeast, and thus remove some unit test-only code.
* Example code for using sendPronto()
- Version bump due to Issue #246
- Add library version as a #define in src/IRremoteESP8266.h
- Add check to Travis config to ensure version numbers all match.
The bug was tickled when the capture buffer overflowed.
Though, it probably also manifests when are large or garbage message is
captured, and writes data through out the buffer.
When a smaller message comes in, the last entry which is typically the
post message gap, is not cleared. This could caused the decoder(s) to get
confused as they would be reading previous messages (or garbage) data.
- Fixes Issue #246
- No unit tests for this bug is only tickled 'on device' due to interrupt
handling. Our unit tests don't really cover that aspect.
- [bug] Issue #243 uncovered an odd case where a zero length end gap is encountered.
- Add unit test to cover zero length space at the end.
- Add more debugging code for matchAtLeast()
- [bug] fix incorrect end of buffer calculation in decodes
* Fix decoding of real Panasonic codes.
- Should fix Issue #245
- Add tests to cover the issue found.
- [bugfix] Add real-life values for the gap at the end of a panasonic command when decoding.
- [bugfix] uint64 print routine in the examples was subtly broken.
* Adjust overflow warning in IRrecvDumpV2
- Fixes Issue #243
- [bugfix] Incorrect assumption on minimum entry length when decoding. Off by one.
- [bugfix] Make matching the trailing gap/space on commands optional if we run out of buffer.
- Fix a wayward Serial.println() debug statement that got missed.
- Add unit tests to add coverage for the bug found.
- Bump version to v2.0.1
* Move github related documentation to a .github directory.
* Create a issue template per Github examples.
* Create a contributing guide per Github suggestion. Influenced by the [Contributing to Atom](https://github.com/atom/atom/blob/master/CONTRIBUTING.md) docs.
* Update main README file to reflect a v2.0 launch.
- Merge PR #226 (@scop) upstream to the v2.0 branch.
- v2.0-ify sendGree() by adding repeat and different bit/byte size support.
- Unit tests for sendGree().
- As char[8] fits into a uint64, make a version of sendGree() that
supports being called with a uint64 rather than a char array. This gives
users a more traditional interface if desired.
- Add unit tests for decode(). Run every protocol we support decoding for through.
- [bugfix] Move the order of decodeDenon() so that it doesn't mis-match on Panasonic.
- Fix a comment in another file.
- Cleanup the unit test Makefile.
- Unit tests for sendSanyoLC7461(), encodeSanyoLC7461, & decodeSanyoLC7461.
- As the protocol appears to be a NEC 42-bit varient, use send/decode NEC.
- Disable the dodgy decodeSanyo() until it gets fixed.
- Add unit tests for sendDaikin() and the IRDaikinESP class.
- Add additional methods to the IRDaikinESP class to bring it inline with
similar A/C classes.
- Add some useful defines/constants for users and code style.
- Re-work how mode and temp are set.
- Support sending longer byte lengths, and repeats to sendDaikin().
i.e. v2.0 spec.
- Remove a C+11-ism compiler warning. (setting an array when declaring it.)
- Unit tests for send & decode.
- Fix incorrect used of non-inverted LIRC values.
- GlobalCache data indicates there is always a repeat, so set the default.
- Fix a typo.
- Testing based on simulated data from known okay source (GlobalCache)
- Status update for the methods.
- Unit tests for sendDenon & decodeDenon.
- Re-do sendDenon & decodeDenon to use Sharp & Panasonic protocols
as that is what the Denon documentation indicates and GlobalCache data
backs up. The previous Denon implementation was just a special case of
the Sharp protocol, and only half of the protocol.
- Add a flag to decodeSharp() to set if we are checking for the expansion bit.
This is something that differs between Denon and Sharp.
- Add setting the expected manufacturer to decodePanasonic()'s parameters.
The manufacturer code differs between Denon and Panasonic protocols.
- Add support for sending & decoding Kaseikyo-like Denon messages.
- Add support for sending/decoding the legacy (poorly implemented) Denon
implementation.
- Unit tests for sendDISH() and decodeDISH().
- Slightly change how the data bits are collected.
- Minor change to the repeat interval.
- Change how the HDR is sent to avoid duplication with the footer when
there are repeats.
- Unit tests for all Panasonic methods.
- Fix the Panasonic manufacturer code.
- Allow setting the manufacturer in encodePanasonic().
- Minor code & style cleanup.
- Test coverage for the RC-6 methods, and toggleRC5().
- Add helper functions for encoding, and toggling the required bit to simulate
key press/release state change.
- Support decoding of repeated messages.
- Fix a potential issue where matching the wide-bit in RC6 wasn't always
successful. Discovered in unit tests.
- Code cleanup.
- Confirmed support for RC-6 36-bit mode (i.e. Xbox-360) in simulation.
- Unit test coverage for sendSharp(), sendSharpRaw(), encodeSharp(), and
decodeSharp().
- [Testing Only] Turn on matching of the inverted code in unit tests in prep for
when it is used in the ESP8266 code.
- Tweak timing values based on Global Cache data.
- Improve matching by increasing the error tolerance on the bit marks for Sharp.
- [Testing Only] Add a handy debugging routine for the unit tests to see what
is in the rawbuf.
- Usual extra comments and code cleanup.
- Add unit tests.
- Add address/command/key press encoders for RC-5/RC-5X.
- Fix all the bugs found when unit testing. So so many bugs.
- Turn on strict decoding now we have unit tests and things pass etc.
- Unit test coverage for Mitsubishi "normal" devices, and Air-Conditioning.
- [bugfix] decodeMitsubishi() falsely matched RC-MM due to having no length
requirement. #21
- [bugfix] Unit tests uncovered failure to clear previous state in setFan() &
setVane().
- [Compiler warning] C++11-ism removed.
- Updated MitsubishiAC to v2.0 spec.
- Comments and style improvements.
- Turned on strict compliance in decodeMitsubishi() to help stop false
detecting on RC-MM messages. #21
- Unit test coverage for the various LG methods.
- Improve LG 32-bit protocol support.
- Minor LG protocol fixes along the way.
- Minor timing changes for the LG protocol time values.
- Add unit test to Travis.
- Unit test coverage for sendRCMM() and decodeRCMM()
- Update status for those to Beta as tests now work on them.
- Minor code/ordering optimisation.
- [Fix] Removed special tolerence for the bit mark which caused issues in
decoding.
- Bring RC-MM up to 64bit support.
- Add repeating to sendRCMM.
This should address issue #21 when v2.0 is released.
* Unit tests for Kelvinator A/C.
- Unit test coverage for sendKelvinator() and the message construction class.
- Add repeats to sendKelvinator(), make it look like a more standard call.
- White space and code style cleanups.
- Set the default temp for Dry mode.
- Minor cleanups.
* Add unit tests for the JVC protocol.
- Add unit test coverage for sendJVC(), encodeJVC(), & decodeJVC().
- Extend the unit test helper makeDecodeResults() to start from a given offset.
- [bug fix] decodeJVC() had the address & command values swapped.
- Test coverage for sendSAMSUNG(), encodeSAMSUNG(), & decodeSAMSUNG().
- [bug fix] Incorrect sizes for reverseBits calls.
- [bug fix] Incorrect ordering of the result for encodeSAMSUNG().
- [bug] Actually free up the dynamically allocated memory.
- Simplify the mess of malloc/reallocs. Make a single malloc instead.
- Add check for malloc failing. Report & reboot if failed.
- Change variables to match style guide.
- Basically re-write the parsing code.
- Add detailed instructions on how to use this sketch.
Fixes#33
* Initial check-in of Unit Testing for IRremoteESP8266.
TL;DR: \o/ for finally having (some) Unit Testing.
- Add googletest as a submodule.
- Create unit tests for IRutils as a first step.
- Create a Makefile under test/ which builds and uses the test framework.
- De-Arduino-ise some of the code with #ifndef UNIT_TEST guards to allow it
to compile and run outside of the Arduino Framework.
Note:
The Unit Tests are designed to run on a unix box. Not on the ESP8266.
This should allow them to be run under Travis. We can do this fairly safely
in v2.0 of the library, as everything now uses c98-style type definitions.
e.g. uint16_t etc.
Any Arduino/ESP8266 specific code needs to be neutered using #ifndef UNIT_TEST
lines.
* Update travis to build and run the unit tests.
* Unit tests for IRsend's sendData()
- Modify files to handle unit tests when compiled on non-arduino frameworks.
- Add unit tests to cover sendData()
- Fix an issue with sendData() when sending zero bit lengths.
- Update .gitignore for some generated content we don't want checked in.
* Add unit tests for sending NEC protocol.
- Unit tests for sendNEC() & encodeNEC()
- Make the unit test infrastructre for IRsend availble for other unit tests.
- Fix an issue with encodeNEC() which didn't count for address and command
being in LSB order in the protocol spec.
- Other changes to make the library more portable when not compiled against
the Arduino framework.
* Add Unit tests for decodeNEC().
- Add unit tests that cover most of decodeNEC().
- [Bug] Address and Command values needed to be reversed. LSB order etc.
- Change the way non-standard NEC messages handle address and command decoding.
- Add support methods for converting sendBlah() output into a decode_result.
- Include <stdint.h> modifier for Travis compilation.
- Update Travis for new unit tests to run.
* Update README.md with Unit Test info
Not sure what I was thinking when I wrote this originally.
It certainly didn't reverse the bits.
I stepped this version through with pen and paper, it should do the job.
Also added preserving the unreversed bits.
- Enable #define flags to enable/disable protocols as needed.
- No material changes to program flow etc were made.
- Tonnes & tonnes of modifications to support the new structure.
- Loads of comments added/changed.
- Changes to #include order, and correct mistaken usage of #include <> vs.
#include "" per c++ library writting guides.
- Move directories and location to make it work with both Platformio and
the Arduino IDE.
- Update platform.ini files for new dir structure.
- Update Travis for new path.
- Apply an external offset for the period calculation so we
allow for code/execution time in producing the software based PWM signal
in mark().
- Add a simple calibrate() method to IRsend().
- First check in of a routine to calculate the execution delays in mark()
and create an offset based on that for future mark() calls.
Note: Requires a user to call IRsend.calibrate() before sending a signal.
If not, defaults to '-3' as determined experimentally in Issue #62
WARNING: The calibrate() routine will generate a PWM pulse when called, thus
it is left as an optional step for users who are interested.
- Add support for 64 bit values.
- Add sending/decoding of RC-5X (Extended RC-5) protocol.
- Code clean up.
- Code style clean up.
- Function descriptions.
- More comments.
- Update examples to handle RC-5X protocol and minor clean up.
- Add strict compliance options for the protocols.
- Add repeat functionality, and calculate/obtain repeat timing data.
- Develop a deep loathing of Manchester code, and thus RC-5, RC-5X, & RC-6.
- Add sarcastic comments.
- Fix some compiler warnings.
- c99 data types.
- Fix lint errors.