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

SamsungAc: Redo/fix checksum calculations. #1554

Merged
merged 1 commit into from
Aug 10, 2021
Merged

Conversation

crankyoldgit
Copy link
Owner

@crankyoldgit crankyoldgit commented Aug 8, 2021

  • Refactor & Fix checksum calcs so it works per section & thus with extended states.
  • Add additional unit tests checking the section calcs.
  • Uncomment the failing unit test as it now works and is explained.
    • Mark TODO as done.
  • Cleanup code style & elements in ir_Samsung_test.cpp.

Huge kudos to @thermseekr for explaining the algorithm.

Fixes #1538
For #1484

* Refactor & Fix checksum calcs so it works per section & thus with extended states.
* Add additional unit tests checking the section calcs.
* Uncomment the failing unit test as it now works and is explained.
  - Mark TODO as done.
* Cleanup code style & elements in `ir_Samsung_test.cpp`.

Huge kudos to @thermseekr for explaining the algorithm.

Fixes #1538
@crankyoldgit
Copy link
Owner Author

Reviewer ping @NiKiZe

@NiKiZe
Copy link
Collaborator

NiKiZe commented Aug 10, 2021

Sorry, missed this one.

@crankyoldgit crankyoldgit merged commit 0ec49ff into master Aug 10, 2021
@crankyoldgit crankyoldgit deleted the samsung_checksum branch August 11, 2021 08:46
crankyoldgit added a commit that referenced this pull request Aug 12, 2021
* As the `checksum()` calculation for extended states has been fixed in #1554, use `sendExtended()` to calculate & send the extended state instead of the `sendOn()` & `sendOff()`.
  - This should allow for custom off messages. e.g. clean.
  - It should also reduce the number of messages sent, and the beeps generated by the A/C on receiving the message.
  - And make the intended transaction quicker.
* Update/adjust unit tests accordingly.
* Refactored `sendExtended()`
  - Use `memcpy()`.
  - Use less stack space / memory.

For #1484
crankyoldgit added a commit that referenced this pull request Aug 12, 2021
* As the `checksum()` calculation for extended states has been fixed in #1554, use `sendExtended()` to calculate & send the extended state instead of the `sendOn()` & `sendOff()`.
  - This should allow for custom off messages. e.g. clean.
  - It should also reduce the number of messages sent, and the beeps generated by the A/C on receiving the message.
  - And make the intended transaction quicker.
* Update/adjust unit tests accordingly.
* Refactored `sendExtended()`
  - Use `memcpy()`.
  - Use less stack space / memory.

For #1484
crankyoldgit added a commit that referenced this pull request Aug 14, 2021
* As the `checksum()` calculation for extended states has been fixed in #1554, use `sendExtended()` to calculate & send the extended state instead of the `sendOn()` & `sendOff()`.
  - This should allow for custom off messages. e.g. clean.
  - It should also reduce the number of messages sent, and the beeps generated by the A/C on receiving the message.
  - And make the intended transaction quicker.
* Update/adjust unit tests accordingly.
* Refactored `sendExtended()`
  - Use `memcpy()`.
  - Use less stack space / memory.

For #1484
crankyoldgit added a commit that referenced this pull request Aug 28, 2021
_v2.7.20 (20210828)_

**[Bug Fixes]**
- Make `strToSwingH()` match "Right Max" (#1550 #1551)

**[Features]**
- Experimental Bose remote support (#1579)
- Added MitsubishiAC VaneLeft (#1572 #1576)
- HAIER_AC176: Add experimental detailed support (#1480 #1571)
- Detailed support for Tornado/Sanyo 88-bit A/C protocol (#1503 #1568)
- Add support for new `TROTEC_3550` A/C protocol (#1563 #1566 #1507)
- SamsungAc: Use `sendExtended()` going forward. (#1484 #1562)
- SamsungAc: Redo/fix checksum calculations. (#1538 #1554)
- LG: Add support for `AKB73757604` model (#1531 #1545)
- Daikin176: Add support for Unit Id. (#1543 #1544)
- Daikin2: Add support for Humidity setting/operation. (#1535 #1540)
- TCL112AC: Add support for quiet/mute setting. (#1528 #1529)
- LG2: Add Fan speed, Swing, & Light support for new `AKB74955603` model (#1513 #1530)
- Add Mitsubishi AC "fan only" mode (#1527)

**[Misc]**
- Fix pylint issues due to pylint update. (#1569 #1570)
- DAIKIN216: Update supported models. (#1552 #1567)
- IRMQTTServer: Build a minimal OTA image via PlatformIO. (#1513 #1541)
- Reduce memory fragmentation cause by String usage. (#1493 #1536)
- Refactor `decodeMitsubishiAC()` (#1523 #1532)
- Fix incorrect comment.
- Migrate from Travis to GitHub Actions (#1522 #1526)
- Documentation update with additional supported Panasonic AC models (#1525)
@crankyoldgit crankyoldgit mentioned this pull request Aug 28, 2021
crankyoldgit added a commit that referenced this pull request Aug 28, 2021
_v2.7.20 (20210828)_

**[Bug Fixes]**
- Make `strToSwingH()` match "Right Max" (#1550 #1551)

**[Features]**
- Experimental Bose remote support (#1579)
- Added MitsubishiAC VaneLeft (#1572 #1576)
- HAIER_AC176: Add experimental detailed support (#1480 #1571)
- Detailed support for Tornado/Sanyo 88-bit A/C protocol (#1503 #1568)
- Add support for new `TROTEC_3550` A/C protocol (#1563 #1566 #1507)
- SamsungAc: Use `sendExtended()` going forward. (#1484 #1562)
- SamsungAc: Redo/fix checksum calculations. (#1538 #1554)
- LG: Add support for `AKB73757604` model (#1531 #1545)
- Daikin176: Add support for Unit Id. (#1543 #1544)
- Daikin2: Add support for Humidity setting/operation. (#1535 #1540)
- TCL112AC: Add support for quiet/mute setting. (#1528 #1529)
- LG2: Add Fan speed, Swing, & Light support for new `AKB74955603` model (#1513 #1530)
- Add Mitsubishi AC "fan only" mode (#1527)

**[Misc]**
- Change when some github workflows run (#1583)
- Add/update supported device info (#1580 #1581 #1585)
- Fix pylint issues due to pylint update. (#1569 #1570)
- DAIKIN216: Update supported models. (#1552 #1567)
- IRMQTTServer: Build a minimal OTA image via PlatformIO. (#1513 #1541)
- Reduce memory fragmentation cause by String usage. (#1493 #1536)
- Refactor `decodeMitsubishiAC()` (#1523 #1532)
- Fix incorrect comment.
- Migrate from Travis to GitHub Actions (#1522 #1526)
- Documentation update with additional supported Panasonic AC models (#1525)
crankyoldgit added a commit that referenced this pull request Aug 28, 2021
## _v2.7.20 (20210828)_

**[Bug Fixes]**
- Make `strToSwingH()` match "Right Max" (#1550 #1551)

**[Features]**
- Experimental Bose remote support (#1579)
- Added MitsubishiAC VaneLeft (#1572 #1576)
- HAIER_AC176: Add experimental detailed support (#1480 #1571)
- Detailed support for Tornado/Sanyo 88-bit A/C protocol (#1503 #1568)
- Add support for new `TROTEC_3550` A/C protocol (#1563 #1566 #1507)
- SamsungAc: Use `sendExtended()` going forward. (#1484 #1562)
- SamsungAc: Redo/fix checksum calculations. (#1538 #1554)
- LG: Add support for `AKB73757604` model (#1531 #1545)
- Daikin176: Add support for Unit Id. (#1543 #1544)
- Daikin2: Add support for Humidity setting/operation. (#1535 #1540)
- TCL112AC: Add support for quiet/mute setting. (#1528 #1529)
- LG2: Add Fan speed, Swing, & Light support for new `AKB74955603` model (#1513 #1530)
- Add Mitsubishi AC "fan only" mode (#1527)

**[Misc]**
- Change when some github workflows run (#1583)
- Add/update supported device info (#1580 #1581 #1585)
- Fix pylint issues due to pylint update. (#1569 #1570)
- DAIKIN216: Update supported models. (#1552 #1567)
- IRMQTTServer: Build a minimal OTA image via PlatformIO. (#1513 #1541)
- Reduce memory fragmentation cause by String usage. (#1493 #1536)
- Refactor `decodeMitsubishiAC()` (#1523 #1532)
- Fix incorrect comment.
- Migrate from Travis to GitHub Actions (#1522 #1526)
- Documentation update with additional supported Panasonic AC models (#1525)
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.

Information on Samsung AC IR protocol
2 participants