mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-24 11:16:34 +00:00
Merge branch 'development' into pre-release-9.3.0
This commit is contained in:
commit
d37b9db08d
18
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
18
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
@ -1,6 +1,6 @@
|
||||
---
|
||||
name: Problem report
|
||||
about: Create a report to help us improve
|
||||
name: Problem Report
|
||||
about: Create a Report to help us improve
|
||||
---
|
||||
|
||||
<!-- Thanks for reporting a problem for this project. READ THIS FIRST:
|
||||
@ -29,36 +29,34 @@ _Make sure your have performed every step and checked the applicable boxes befor
|
||||
|
||||
- [ ] Read the [Contributing Guide and Policy](https://github.com/arendst/Tasmota/blob/development/CONTRIBUTING.md) and [the Code of Conduct](https://github.com/arendst/Tasmota/blob/development/CODE_OF_CONDUCT.md)
|
||||
- [ ] Searched the problem in [issues](https://github.com/arendst/Tasmota/issues)
|
||||
- [ ] Searched the problem in [discussions](https://github.com/arendst/Tasmota/discussions)
|
||||
- [ ] Searched the problem in the [docs](https://tasmota.github.io/docs/FAQ)
|
||||
- [ ] Searched the problem in the [forum](https://groups.google.com/d/forum/sonoffusers)
|
||||
- [ ] Searched the problem in the [chat](https://discord.gg/Ks2Kzd4)
|
||||
- [ ] Device used (e.g., Sonoff Basic): _____
|
||||
- [ ] Tasmota binary firmware version number used: _____
|
||||
- [ ] Pre-compiled
|
||||
- [ ] Self-compiled
|
||||
- [ ] IDE / Compiler used: _____
|
||||
- [ ] Flashing tools used: _____
|
||||
- [ ] Provide the output of command: `Backlog Template; Module; GPIO 255`:
|
||||
```
|
||||
```lua
|
||||
Configuration output here:
|
||||
|
||||
|
||||
```
|
||||
- [ ] If using rules, provide the output of this command: `Backlog Rule1; Rule2; Rule3`:
|
||||
```
|
||||
```lua
|
||||
Rules output here:
|
||||
|
||||
|
||||
```
|
||||
- [ ] Provide the output of this command: `Status 0`:
|
||||
```
|
||||
```lua
|
||||
STATUS 0 output here:
|
||||
|
||||
|
||||
```
|
||||
- [ ] Provide the output of the Console log output when you experience your issue; if applicable:
|
||||
_(Please use_ `weblog 4` _for more debug information)_
|
||||
```
|
||||
- [ ] Set `weblog` to 4 and then, when you experience your issue, provide the output of the Console log:
|
||||
```lua
|
||||
Console output here:
|
||||
|
||||
|
||||
|
27
.github/ISSUE_TEMPLATE/Feature_request.md
vendored
27
.github/ISSUE_TEMPLATE/Feature_request.md
vendored
@ -1,27 +0,0 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
---
|
||||
|
||||
<!-- Thanks for suggesting an idea for this project. READ THIS FIRST:
|
||||
|
||||
Please take a few minutes to complete the requested information below. Our ability to provide assistance is greatly hampered without it. The details requested potentially affect which options to pursue. The small amount of time you spend completing the template will also help the volunteers providing the assistance to you to reduce the time required to help you.
|
||||
|
||||
DO NOT DELETE ANY TEXT from this template! Otherwise the issue will be auto-closed.
|
||||
-->
|
||||
|
||||
**Have you looked for this feature in other issues and in the docs?**
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
_A clear and concise description of what the problem is._
|
||||
|
||||
**Describe the solution you'd like**
|
||||
_A clear and concise description of what you want to happen._
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
_A clear and concise description of any alternative solutions or features you've considered._
|
||||
|
||||
**Additional context**
|
||||
_Add any other context or screenshots about the feature request here._
|
||||
|
||||
**(Please, remember to close the issue when the problem has been addressed)**
|
7
.github/ISSUE_TEMPLATE/config.yml
vendored
7
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -2,7 +2,10 @@ blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Tasmota Docs
|
||||
url: https://tasmota.github.io/docs
|
||||
about: All the information related to Tasmota
|
||||
- name: Tasmota Support Chat
|
||||
about: All the information related to Tasmota.
|
||||
- name: Tasmota Discussions and Support
|
||||
url: https://github.com/arendst/Tasmota/discussions
|
||||
about: Tasmota usage Questions, Feature Requests and Projects.
|
||||
- name: Tasmota Users Chat
|
||||
url: https://discord.gg/Ks2Kzd4
|
||||
about: Chat for feedback, questions and troubleshooting.
|
||||
|
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -3,11 +3,11 @@
|
||||
**Related issue (if applicable):** fixes #<Tasmota issue number goes here>
|
||||
|
||||
## Checklist:
|
||||
- [ ] The pull request is done against the latest dev branch
|
||||
- [ ] The pull request is done against the latest development branch
|
||||
- [ ] Only relevant files were touched
|
||||
- [ ] Only one feature/fix was added per PR and the code change compiles without warnings
|
||||
- [ ] The code change is tested and works on Tasmota core ESP8266 V.2.7.4.9
|
||||
- [ ] The code change is tested and works on Tasmota core ESP32 V.1.0.4.2
|
||||
- [ ] The code change is tested and works on Tasmota core ESP32 V.1.0.5-rc6
|
||||
- [ ] I accept the [CLA](https://github.com/arendst/Tasmota/blob/development/CONTRIBUTING.md#contributor-license-agreement-cla).
|
||||
|
||||
_NOTE: The code change must pass CI tests. **Your PR cannot be merged unless tests pass**_
|
||||
|
16
.github/issue-close-app.yml
vendored
16
.github/issue-close-app.yml
vendored
@ -5,7 +5,7 @@
|
||||
|
||||
# Comment that will be sent if an issue is judged to be closed.
|
||||
comment: >-
|
||||
This issue has been automatically closed because the issue template is missing or incomplete.
|
||||
This issue has been automatically closed because the PROBLEM REPORT TEMPLATE is missing or incomplete.
|
||||
|
||||
Filling the template is required so standard questions don't need to be asked again each time.
|
||||
Our ability to provide assistance is greatly hampered if few minutes are not taken to complete the issue template
|
||||
@ -13,19 +13,17 @@ comment: >-
|
||||
of time you will spend completing the template will also help the volunteers, providing assistance to you, to reduce
|
||||
the time required to help you.
|
||||
|
||||
Please, could you be so kind on completing the [issue template](https://github.com/arendst/Tasmota/issues/new/choose) in order to have more information so as to properly help you?
|
||||
Please, could you be so kind on completing the [PROBLEM REPORT TEMPLATE](https://github.com/arendst/Tasmota/issues/new/choose) in order to have more information so as to properly help you?
|
||||
|
||||
Thank you for taking the time to report, hopefully it can be resolved soon.
|
||||
|
||||
[Wiki](https://tasmota.github.io/docs/) for more information.
|
||||
[Docs](https://tasmota.github.io/docs/) for more information.
|
||||
|
||||
[Chat](https://discord.gg/Ks2Kzd4) for more user experience.
|
||||
[Discussions](https://github.com/arendst/Tasmota/discussions) for Questions, Feature Requests and Projects.
|
||||
|
||||
[Community](https://groups.google.com/d/forum/sonoffusers) for forum.
|
||||
|
||||
[Code of Conduct](https://github.com/arendst/Tasmota/blob/development/CODE_OF_CONDUCT.md)
|
||||
|
||||
[Contributing Guideline and Policy](https://github.com/arendst/Tasmota/blob/development/CONTRIBUTING.md)
|
||||
[Chat](https://discord.gg/Ks2Kzd4) for more users experience.
|
||||
|
||||
Please check the [Code of Conduct](https://github.com/arendst/Tasmota/blob/development/CODE_OF_CONDUCT.md) and the [Contributing Guideline and Policy](https://github.com/arendst/Tasmota/blob/development/CONTRIBUTING.md)
|
||||
|
||||
issueConfigs:
|
||||
# There can be several configs for different kind of issues.
|
||||
|
120
.github/workflows/CI_github.yml
vendored
120
.github/workflows/CI_github.yml
vendored
@ -1,6 +1,6 @@
|
||||
name: Tasmota CI
|
||||
|
||||
on:
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
@ -16,12 +16,12 @@ jobs:
|
||||
pip install -U platformio
|
||||
platformio upgrade --dev
|
||||
platformio update
|
||||
- name: Run PlatformIO
|
||||
- name: Run PlatformIO
|
||||
run: platformio run -e tasmota
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-minimal:
|
||||
runs-on: ubuntu-latest
|
||||
@ -40,7 +40,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-lite:
|
||||
runs-on: ubuntu-latest
|
||||
@ -59,7 +59,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-knx:
|
||||
runs-on: ubuntu-latest
|
||||
@ -78,8 +78,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota-sensors:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -97,7 +97,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-display:
|
||||
runs-on: ubuntu-latest
|
||||
@ -116,7 +116,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-ir:
|
||||
runs-on: ubuntu-latest
|
||||
@ -135,7 +135,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-zbbridge:
|
||||
runs-on: ubuntu-latest
|
||||
@ -154,7 +154,26 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-AF:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v1
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -U platformio
|
||||
platformio upgrade --dev
|
||||
platformio update
|
||||
- name: Run PlatformIO
|
||||
run: platformio run -e tasmota-AF
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-BG:
|
||||
runs-on: ubuntu-latest
|
||||
@ -173,8 +192,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota-BR:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -192,7 +211,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-CN:
|
||||
runs-on: ubuntu-latest
|
||||
@ -211,7 +230,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-CZ:
|
||||
runs-on: ubuntu-latest
|
||||
@ -230,7 +249,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-DE:
|
||||
runs-on: ubuntu-latest
|
||||
@ -249,8 +268,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota-ES:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -268,8 +287,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota-FR:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -287,7 +306,26 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-FY:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v1
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -U platformio
|
||||
platformio upgrade --dev
|
||||
platformio update
|
||||
- name: Run PlatformIO
|
||||
run: platformio run -e tasmota-FY
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-GR:
|
||||
runs-on: ubuntu-latest
|
||||
@ -306,7 +344,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-HE:
|
||||
runs-on: ubuntu-latest
|
||||
@ -325,8 +363,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota-HU:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -344,7 +382,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-IT:
|
||||
runs-on: ubuntu-latest
|
||||
@ -363,7 +401,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-KO:
|
||||
runs-on: ubuntu-latest
|
||||
@ -382,7 +420,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-NL:
|
||||
runs-on: ubuntu-latest
|
||||
@ -401,8 +439,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota-PL:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -420,7 +458,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-PT:
|
||||
runs-on: ubuntu-latest
|
||||
@ -439,7 +477,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-RO:
|
||||
runs-on: ubuntu-latest
|
||||
@ -458,7 +496,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-RU:
|
||||
runs-on: ubuntu-latest
|
||||
@ -477,8 +515,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota-SE:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -496,7 +534,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-SK:
|
||||
runs-on: ubuntu-latest
|
||||
@ -515,7 +553,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-TR:
|
||||
runs-on: ubuntu-latest
|
||||
@ -534,7 +572,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-TW:
|
||||
runs-on: ubuntu-latest
|
||||
@ -553,8 +591,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota-UK:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -572,7 +610,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota-VN:
|
||||
runs-on: ubuntu-latest
|
||||
@ -591,4 +629,4 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
158
.github/workflows/CI_github_ESP32.yml
vendored
158
.github/workflows/CI_github_ESP32.yml
vendored
@ -22,8 +22,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-webcam:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -42,7 +42,47 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-odroidgo:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v1
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -U platformio
|
||||
platformio upgrade --dev
|
||||
platformio update
|
||||
- name: Run PlatformIO
|
||||
run: |
|
||||
platformio run -e tasmota32-odroidgo
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-core2:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v1
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -U platformio
|
||||
platformio upgrade --dev
|
||||
platformio update
|
||||
- name: Run PlatformIO
|
||||
run: |
|
||||
platformio run -e tasmota32-core2
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-minimal:
|
||||
runs-on: ubuntu-latest
|
||||
@ -62,7 +102,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-lite:
|
||||
runs-on: ubuntu-latest
|
||||
@ -82,7 +122,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-knx:
|
||||
runs-on: ubuntu-latest
|
||||
@ -102,8 +142,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-sensors:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -122,7 +162,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-display:
|
||||
runs-on: ubuntu-latest
|
||||
@ -142,7 +182,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-ir:
|
||||
runs-on: ubuntu-latest
|
||||
@ -162,7 +202,27 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-AF:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v1
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -U platformio
|
||||
platformio upgrade --dev
|
||||
platformio update
|
||||
- name: Run PlatformIO
|
||||
run: |
|
||||
platformio run -e tasmota32-AF
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-BG:
|
||||
runs-on: ubuntu-latest
|
||||
@ -182,8 +242,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-BR:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -202,7 +262,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-CN:
|
||||
runs-on: ubuntu-latest
|
||||
@ -222,7 +282,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-CZ:
|
||||
runs-on: ubuntu-latest
|
||||
@ -242,7 +302,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-DE:
|
||||
runs-on: ubuntu-latest
|
||||
@ -262,8 +322,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-ES:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -282,7 +342,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-FR:
|
||||
runs-on: ubuntu-latest
|
||||
@ -302,7 +362,27 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-FY:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v1
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -U platformio
|
||||
platformio upgrade --dev
|
||||
platformio update
|
||||
- name: Run PlatformIO
|
||||
run: |
|
||||
platformio run -e tasmota32-FY
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-GR:
|
||||
runs-on: ubuntu-latest
|
||||
@ -322,7 +402,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-HE:
|
||||
runs-on: ubuntu-latest
|
||||
@ -342,8 +422,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-HU:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -362,7 +442,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-IT:
|
||||
runs-on: ubuntu-latest
|
||||
@ -382,7 +462,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-KO:
|
||||
runs-on: ubuntu-latest
|
||||
@ -402,7 +482,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-NL:
|
||||
runs-on: ubuntu-latest
|
||||
@ -422,8 +502,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-PL:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -442,7 +522,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-PT:
|
||||
runs-on: ubuntu-latest
|
||||
@ -462,7 +542,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-RO:
|
||||
runs-on: ubuntu-latest
|
||||
@ -482,7 +562,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-RU:
|
||||
runs-on: ubuntu-latest
|
||||
@ -502,8 +582,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-SE:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -522,7 +602,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-SK:
|
||||
runs-on: ubuntu-latest
|
||||
@ -542,7 +622,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-TR:
|
||||
runs-on: ubuntu-latest
|
||||
@ -562,7 +642,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-TW:
|
||||
runs-on: ubuntu-latest
|
||||
@ -582,8 +662,8 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-UK:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -602,7 +682,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
||||
tasmota32-VN:
|
||||
runs-on: ubuntu-latest
|
||||
@ -622,4 +702,4 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: firmware
|
||||
path: ./build_output/firmware
|
||||
path: ./build_output
|
||||
|
465
.github/workflows/Tasmota_build.yml
vendored
465
.github/workflows/Tasmota_build.yml
vendored
File diff suppressed because it is too large
Load Diff
465
.github/workflows/Tasmota_build_master.yml
vendored
465
.github/workflows/Tasmota_build_master.yml
vendored
File diff suppressed because it is too large
Load Diff
4
.github/workflows/stale-actions.yml
vendored
4
.github/workflows/stale-actions.yml
vendored
@ -2,13 +2,13 @@ name: "Mark or close stale issues and PRs"
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "15 05 * * *"
|
||||
- cron: "30 * * * *"
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v3.0.14
|
||||
- uses: actions/stale@v3.0.15
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
days-before-stale: 25
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -9,6 +9,8 @@
|
||||
.clang_complete
|
||||
.gcc-flags.json
|
||||
.cache
|
||||
data
|
||||
unpacked_fs
|
||||
tasmota/user_config_override.h
|
||||
build
|
||||
build_output
|
||||
|
@ -1,4 +1,5 @@
|
||||
tasks:
|
||||
- before: platformio upgrade
|
||||
- command: platformio run -e tasmota
|
||||
|
||||
image:
|
||||
|
11
API.md
11
API.md
@ -14,8 +14,8 @@ Callback Id | Bool | xdrv | xsns | xnrg | xlgt | Description
|
||||
----------------------------|------|------|------|------|------|----------------------------------
|
||||
FUNC_SETTINGS_OVERRIDE | | x | | | | Override start-up settings
|
||||
FUNC_PIN_STATE | x | 1 | 2 | | | At GPIO configuration
|
||||
FUNC_MODULE_INIT | x | 1 | | | 2 | Init module specific parameters
|
||||
FUNC_PRE_INIT | | 1 | | 2 | | Once GPIO have been established
|
||||
FUNC_MODULE_INIT | x | 3 | 1 | | 2 | Init module specific parameters
|
||||
FUNC_PRE_INIT | | 1 | 3 | 2 | | Once GPIO have been established
|
||||
FUNC_INIT | | 1 | 3 | 2 | | At end of initialisation
|
||||
FUNC_LOOP | | 1 | 2 | | | In main loop
|
||||
FUNC_EVERY_50_MSECOND | | 1 | 2 | | |
|
||||
@ -34,7 +34,7 @@ FUNC_COMMAND_SENSOR | x | | x | | | When command Se
|
||||
FUNC_MQTT_SUBSCRIBE | | x | | | | At end of MQTT subscriptions
|
||||
FUNC_MQTT_INIT | | x | | | | Once at end of MQTT connection
|
||||
FUNC_MQTT_DATA | x | x | | | | Before decoding command
|
||||
FUNC_SET_POWER | | x | | | | Before setting relays
|
||||
FUNC_SET_POWER | | 1 | 2 | | | Before setting relays
|
||||
FUNC_SET_DEVICE_POWER | x | x | | | | Set relay
|
||||
FUNC_SHOW_SENSOR | | x | | | | When FUNC_JSON_APPEND completes
|
||||
FUNC_ANY_KEY | | x | | | |
|
||||
@ -49,6 +49,8 @@ FUNC_WEB_ADD_MAIN_BUTTON | | 1 | 2 | | | Add a main butt
|
||||
FUNC_WEB_ADD_HANDLER | | 1 | 2 | | | Add a webserver handler
|
||||
FUNC_SET_CHANNELS | | 2 | | | 1 |
|
||||
FUNC_SET_SCHEME | | | | | x |
|
||||
FUNC_HOTPLUG_SCAN | | | x | | |
|
||||
FUNC_DEVICE_GROUP_ITEM | | x | | | |
|
||||
|
||||
The numbers represent the sequence of execution
|
||||
|
||||
@ -89,12 +91,15 @@ CFG: Loaded from flash at FB, Count 1581
|
||||
xdrv - FUNC_SETTINGS_OVERRIDE
|
||||
xdrv - FUNC_PIN_STATE
|
||||
xsns - FUNC_PIN_STATE
|
||||
xsns - FUNC_MODULE_INIT
|
||||
xdrv - FUNC_MODULE_INIT
|
||||
xlgt - FUNC_MODULE_INIT
|
||||
xdrv - FUNC_PRE_INIT
|
||||
xnrg - FUNC_PRE_INIT
|
||||
xsns - FUNC_PRE_INIT
|
||||
SRC: Restart
|
||||
xdrv - FUNC_SET_POWER
|
||||
xsns - FUNC_SET_POWER
|
||||
xlgt - FUNC_SET_CHANNELS
|
||||
xdrv - FUNC_SET_DEVICE_POWER
|
||||
Project tasmota Wemos 2 Version 7.0.0.3(tasmota)-STAGE
|
||||
|
34
BUILDS.md
34
BUILDS.md
@ -3,6 +3,7 @@
|
||||
| Feature or Sensor | minimal | lite | tasmota | knx | sensors | ir | display | Remarks
|
||||
|-----------------------|---------|-------|--------|-----|---------|----|---------|--------
|
||||
| MY_LANGUAGE en_GB | x | x | x | x | x | x | x |
|
||||
| USE_UFILESYS | - | - | - | - | - | - | - |
|
||||
| USE_ARDUINO_OTA | - | - | - | - | - | - | - |
|
||||
| USE_DOMOTICZ | - | - | x | x | x | x | - |
|
||||
| USE_HOME_ASSISTANT | - | - | x | x | x | x | - |
|
||||
@ -49,7 +50,7 @@
|
||||
| USE_PWM_DIMMER | - | - | x | x | - | - | - |
|
||||
| USE_KEELOQ | - | - | - | - | - | - | - |
|
||||
| USE_SONOFF_D1 | - | - | x | x | - | - | - |
|
||||
| USE_SHELLY_DIMMER | - | - | - | - | - | - | - |
|
||||
| USE_SHELLY_DIMMER | - | - | x | - | - | - | - |
|
||||
| | | | | | | | |
|
||||
| Feature or Sensor | minimal | lite | tasmota | knx | sensors | ir | display | Remarks
|
||||
| USE_LIGHT | - | x | x | x | x | x | x |
|
||||
@ -66,6 +67,7 @@
|
||||
| USE_PZEM_AC | - | - | x | x | x | - | - |
|
||||
| USE_PZEM_DC | - | - | x | x | x | - | - |
|
||||
| USE_MCP39F501 | - | x | x | x | x | - | - |
|
||||
| USE_SDM72 | - | - | - | - | x | - | - |
|
||||
| USE_SDM120 | - | - | - | - | x | - | - |
|
||||
| USE_SDM630 | - | - | - | - | x | - | - |
|
||||
| USE_DDS2382 | - | - | - | - | x | - | - |
|
||||
@ -147,6 +149,8 @@
|
||||
| USE_EZOPRS | - | - | - | - | - | - | - |
|
||||
| USE_EZORGB | - | - | - | - | - | - | - |
|
||||
| USE_EZORTD | - | - | - | - | - | - | - |
|
||||
| USE_SEESAW_SOIL | - | - | - | - | - | - | - |
|
||||
| USE_TOF10120 | - | - | - | - | - | - | - |
|
||||
| | | | | | | | |
|
||||
| Feature or Sensor | minimal | lite | tasmota | knx | sensors | ir | display | Remarks
|
||||
| USE_SPI | - | - | - | - | - | - | x |
|
||||
@ -191,6 +195,7 @@
|
||||
| USE_RF_SENSOR | - | - | - | - | x | - | - | AlectoV2 only
|
||||
| USE_HRE | - | - | - | - | x | - | - |
|
||||
| USE_A4988_STEPPER | - | - | - | - | - | - | - |
|
||||
| USE_NEOPOOL | - | - | - | - | - | - | - |
|
||||
| | | | | | | | |
|
||||
| Feature or Sensor | minimal | lite | tasmota | knx | sensors | ir | display | Remarks
|
||||
| USE_DISPLAY | - | - | - | - | - | - | x |
|
||||
@ -201,16 +206,23 @@
|
||||
| USE_DISPLAY_ILI9341 | - | - | - | - | - | - | x |
|
||||
| USE_DISPLAY_EPAPER_29 | - | - | - | - | - | - | x |
|
||||
| USE_DISPLAY_EPAPER_42 | - | - | - | - | - | - | x |
|
||||
| USE_DISPLAY_ILI9488 | - | - | - | - | - | - | - |
|
||||
| USE_DISPLAY_SSD1351 | - | - | - | - | - | - | - |
|
||||
| USE_DISPLAY_RA8876 | - | - | - | - | - | - | - |
|
||||
| USE_DISPLAY_ILI9488 | - | - | - | - | - | - | x |
|
||||
| USE_DISPLAY_SSD1351 | - | - | - | - | - | - | x |
|
||||
| USE_DISPLAY_RA8876 | - | - | - | - | - | - | x |
|
||||
| USE_DISPLAY_ST7789 | - | - | - | - | - | - | x |
|
||||
| | | | | | | | |
|
||||
| USE_FT5206 | - | - | - | - | - | - | - |
|
||||
| USE_FTC532 | - | - | - | - | - | - | - |
|
||||
| USE_BS814A2 | - | - | - | - | - | - | - |
|
||||
|
||||
## Additional Features and Sensors on ESP32
|
||||
|
||||
| Feature or Sensor | minimal | lite | tasmota | knx | sensors | ir | display | webcam | Remarks
|
||||
|-----------------------|---------|-------|--------|-----|---------|----|---------|--------|--------
|
||||
| USE_MI_ESP32 | - | - | - | - | - | - | - | - |
|
||||
| USE_WEBCAM | - | - | - | - | - | - | - | x |
|
||||
| USE_ETHERNET | - | - | - | - | - | - | - | - |
|
||||
| USE_I2S_AUDIO | - | - | - | - | - | - | - | - |
|
||||
| USE_TTGO_WATCH | - | - | - | - | - | - | - | - |
|
||||
| Feature or Sensor | lite | tasmota | knx | sensors | ir | display | webcam | Remarks
|
||||
|-----------------------|-------|--------|-----|---------|----|---------|--------|--------
|
||||
| USE_UFILESYS | x | x | x | x | x | x | x |
|
||||
| USE_MI_ESP32 | - | x | - | x | - | - | - | See SetOption115
|
||||
| USE_IBEACON_ESP32 | - | - | - | - | - | - | - |
|
||||
| USE_WEBCAM | - | - | - | - | - | - | x |
|
||||
| USE_ETHERNET | - | - | - | - | - | - | - |
|
||||
| USE_I2S_AUDIO | - | - | - | - | - | - | - |
|
||||
| USE_TTGO_WATCH | - | - | - | - | - | - | - |
|
||||
|
121
CHANGELOG.md
121
CHANGELOG.md
@ -3,6 +3,127 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
## [Released]
|
||||
|
||||
## [9.3.0] 20210218
|
||||
- Release Kenneth
|
||||
|
||||
## [9.2.0.7]
|
||||
### Added
|
||||
- Support for Device Groups Device Map (#10898)
|
||||
- Support for Eastron SDM72D-M three phase 100A Modbus energy meter (#10862)
|
||||
- Support for Frysk language translations by Christiaan Heerze
|
||||
|
||||
## [9.2.0.6] 20210210
|
||||
### Changed
|
||||
- Removed migration support for versions before v8.1.0 (Doris)
|
||||
- ESP32 Increase number of switch GPIOs from 8 to 28
|
||||
- ESP32 Increase number of interlock groups from 4 to 14
|
||||
- Increase number of button GPIOs from 4 to 8
|
||||
- Preview of Berry language for Tasmota32
|
||||
|
||||
## [9.2.0.5] 20210205
|
||||
### Changed
|
||||
- ESP32 increase number of relay GPIOs from 8 to 28
|
||||
|
||||
## [9.2.0.4] 20210204
|
||||
### Added
|
||||
- Function ``AddLog`` to provide logging for up to 128 (LOGSZ) characters to save stack space
|
||||
- Commands ``ChannelRemap``, ``MultiPWM``, ``AlexaCTRange``, ``PowerOnFade``, ``PWMCT``, ``WhiteBlend`` and ``VirtualCT`` as synonyms for ``SetOption37, 68, 82, 91, 92, 105`` and ``106``
|
||||
- Commands ``ZbNameKey``, ``ZbDeviceTopic``, ``ZbNoPrefix``, ``ZbEndpointSuffix``, ``ZbNoAutoBind`` and ``ZbNameTopic`` as synonyms for ``SetOption83, 89, 100, 101, 110`` and ``112``
|
||||
- Commands ``ZbNoAutoBind``, ``ZbReceivedTopic`` and ``ZbOmitDevice`` as synonyms for ``SetOption116, 118`` and ``119``
|
||||
- Commands ``BuzzerActive`` and ``BuzzerPwm`` as synonyms for ``SetOption67`` and ``111``
|
||||
- Support for ESP32 ``Module 5`` Wireless Tag Eth01 (#9496)
|
||||
- Support trailing silence in buzzer tune (#10694)
|
||||
- Command ``L1MusicSync <0|Off>|<1|On>|<2|Toggle>, 1..10, 1..100>`` to control Sonoff L1 Music Sync mode sensitivity and speed (#10722)
|
||||
- Command ``Speed2`` to control a once off fade (#10741)
|
||||
- Zigbee command ``SetOption120 1`` or ``ZbEndpointTopic 1`` to add the endpoint as suffix in topic when using ``SetOption89 1``
|
||||
- Zigbee command ``ZbScan`` to do an energy scan on each radio channel
|
||||
|
||||
### Changed
|
||||
- Maximum chars in ``AddLog_P`` logging restored from 128 to 700 (MAX_LOGSZ) to solve broken error messages
|
||||
|
||||
## [9.2.0.3] 20210122
|
||||
### Added
|
||||
- Support for time proportioned (``#define USE_TIMEPROP``) and optional PID (``#define USE_PID``) relay control (#10412)
|
||||
- Support rotary encoder on Shelly Dimmer (#10407)
|
||||
- Command ``SetOption43 1..255`` to control Rotary step (#10407)
|
||||
- Support for BS814A-2 8-button touch buttons by Peter Franck (#10447)
|
||||
- Support for up to 4 I2C SEESAW_SOIL Capacitance & Temperature sensors by Peter Franck (#10481)
|
||||
- ESP8266 Support for 2MB and up linker files with 1MB and up LittleFS
|
||||
- ESP32 support for TLS MQTT using BearSSL (same as ESP8266)
|
||||
- Support for 24/26/32/34 bit RFID Wiegand interface (D0/D1) by Sigurd Leuther (#3647)
|
||||
- Compile time option ``USE_MQTT_TLS_DROP_OLD_FINGERPRINT`` to drop old (less secure) TLS fingerprint
|
||||
- Command ``SetOption40 0..250`` to disable button functionality if activated for over 0.1 second re-introduced
|
||||
- Support for SM2135 current selection using GPIO ``SM2135 DAT`` index (#10634)
|
||||
- Support for ESP32 ``Module 7`` M5stack core2 16MB binary tasmota32-core2.bin (#10635)
|
||||
- Support for Sugar Valley NeoPool Controller by Norbert Richter (#10637)
|
||||
- Rule trigger string comparisons for EndsWith ``$>``, StartsWith ``$<`` and Contains ``$|`` (#10538)
|
||||
- Support for TOF10120 time of flight sensor by Cyril Pawelko (#10190)
|
||||
|
||||
### Breaking Changed
|
||||
- ESP32 switch from default SPIFFS to default LittleFS file system loosing current (zigbee) files
|
||||
- ESP8266 until now NOT SUPPORTED linker files 2MB and up. Current settings will be overwritten once LittleFS is enabled
|
||||
|
||||
### Changed
|
||||
- Force initial default state ``SetOption57 1`` to scan wifi network every 44 minutes for strongest signal (#10395)
|
||||
- Command ``Sleep 0`` removes any sleep from wifi modem except when ESP32 BLE is active
|
||||
- PubSubClient MQTT_SOCKET_TIMEOUT from 15 to 4 seconds
|
||||
- Domoticz fixed 2 decimals resolution by user selectable ``TempRes``, ``HumRes`` and ``PressRes`` resolutions
|
||||
|
||||
## [9.2.0.2] 20210105
|
||||
### Added
|
||||
- Support for ESP32 ``Module 3`` Odroid Go 16MB binary tasmota32-odroidgo.bin (#8630)
|
||||
- Command ``CTRange`` to specify the visible CT range the bulb is capable of (#10311)
|
||||
- Command ``VirtualCT`` to simulate or fine tune CT bulbs with 3,4,5 channels (#10311)
|
||||
- Command ``SetOption118 1`` to move ZbReceived from JSON message and into the subtopic replacing "SENSOR" default (#10353)
|
||||
- Command ``SetOption119 1`` to remove the device addr from json payload, can be used with zb_topic_fname where the addr is already known from the topic (#10355)
|
||||
- Command ``RuleTimer0`` to access all RuleTimers at once (#10352)
|
||||
- SPI display driver SSD1331 Color oled by Jeroen Vermeulen (#10376)
|
||||
- IRremoteESP8266 library from v2.7.13 to v2.7.14
|
||||
- Rotary No Pullup GPIO selection ``Rotary A/B_n`` (#10407)
|
||||
|
||||
### Breaking Changed
|
||||
- Replaced MFRC522 13.56MHz rfid card reader GPIO selection from ``SPI CS`` by ``RC522 CS``
|
||||
- Replaced NRF24L01 GPIO selection from ``SPI CS`` by ``NRF24 CS`` and ``SPI DC`` by ``NRF24 DC``
|
||||
- Replaced ILI9341 GPIO selection from ``SPI CS`` by ``ILI9341 CS`` and ``SPI DC`` by ``ILI9341 DC``
|
||||
- Replaced ST7789 GPIO selection from ``SPI CS`` by ``ST7789 CS`` and ``SPI DC`` by ``ST7789 DC``
|
||||
- Replaced ILI9488 GPIO selection from ``SPI CS`` by ``ILI9488_CS``
|
||||
- Replaced EPaper29 GPIO selection from ``SPI CS`` by ``EPaper29 CS``
|
||||
- Replaced EPaper42 GPIO selection from ``SPI CS`` by ``EPaper42 CS``
|
||||
- Replaced SSD1351 GPIO selection from ``SPI CS`` by ``SSD1351 CS``
|
||||
- Replaced RA8876 GPIO selection from ``SPI CS`` by ``RA8876 CS``
|
||||
|
||||
### Changed
|
||||
- Maximum chars in ``AddLog_P`` logging reduced from 700 to 128 (LOGSZ) to enhance stability
|
||||
- Disabled ``USE_LIGHT`` light support for ZBBridge saving 17.6kB (#10374)
|
||||
|
||||
## [9.2.0.1] 20201229
|
||||
### Added
|
||||
- Milliseconds to console output (#10152)
|
||||
- Support for P9813 RGB Led MOSFET controller (#10104)
|
||||
- Support for GPIO option selection
|
||||
- Gpio ``Option_a1`` enabling PWM2 high impedance if powered off as used by Wyze bulbs (#10196)
|
||||
- Support for FTC532 8-button touch controller by Peter Franck (#10222)
|
||||
- Support character `#` to be replaced by `space`-character in command ``Publish`` topic (#10258)
|
||||
- BSSID and Signal Strength Indicator to GUI wifi scan result (#10253)
|
||||
- Support for Afrikaans language translations by Christiaan Heerze
|
||||
- Support for IR inverted leds using ``#define IR_SEND_INVERTED true`` (#10301)
|
||||
- Support for disabling 38kHz IR modulation using ``#define IR_SEND_USE_MODULATION false`` (#10301)
|
||||
- Support for SPI display driver for ST7789 TFT by Gerhard Mutz (#9037)
|
||||
|
||||
### Changed
|
||||
- Logging from heap to stack freeing 700 bytes RAM
|
||||
|
||||
### Fixed
|
||||
- Redesign syslog and mqttlog using log buffer (#10164)
|
||||
- Shutter stop issue (#10170)
|
||||
- Scripter script_sub_command (#10181)
|
||||
- Scripter JSON variable above 32 chars (#10193)
|
||||
- Shelly Dimmer power on state (#10154, #10182)
|
||||
- Wemo emulation for single devices (#10165, #10194)
|
||||
- ESP32 LoadStoreError when using ``#define USER_TEMPLATE`` (#9506)
|
||||
- Compile error when ``#ifdef USE_IR_RECEIVE`` is disabled regression from 9.1.0.2
|
||||
- Prometheus memory leak (#10221)
|
||||
|
||||
## [9.2.0] 20201221
|
||||
### Fixed Backported
|
||||
- Shutter stop issue (#10170)
|
||||
|
@ -47,13 +47,13 @@ The process is straight-forward.
|
||||
- Fork the Tasmota Repository [git repository](https://github.com/arendst/Tasmota).
|
||||
- Write/Change the code in your Fork for a new feature, bug fix, new sensor, optimization, etc.
|
||||
- Ensure tests work.
|
||||
- Create a Pull Request against the [**dev**](https://github.com/arendst/Tasmota/tree/dev) branch of Tasmota.
|
||||
- Create a Pull Request against the [**development**](https://github.com/arendst/Tasmota/tree/development) branch of Tasmota.
|
||||
|
||||
1. All pull requests must be done against the dev branch.
|
||||
1. All pull requests must be done against the development branch.
|
||||
2. Only relevant files should be touched (Also beware if your editor has auto-formatting feature enabled).
|
||||
3. Only one feature/fix should be added per PR.
|
||||
4. If adding a new functionality (new hardware, new library support) not related to an existing component move it to it's own modules (.ino file).
|
||||
5. PRs that don't compile (fail in CI Tests) or cause coding errors will not be merged. Please fix the issue. Same goes for PRs that are raised against older commit in dev - you might need to rebase and resolve conflicts.
|
||||
5. PRs that don't compile (fail in CI Tests) or cause coding errors will not be merged. Please fix the issue. Same goes for PRs that are raised against older commit in development - you might need to rebase and resolve conflicts.
|
||||
6. All pull requests should undergo peer review by at least one contributor other than the creator, excepts for the owner.
|
||||
7. All pull requests should consider updates to the documentation.
|
||||
8. Pull requests that address an outstanding issue, particularly an issue deemed to be severe, should be given priority.
|
||||
|
@ -75,7 +75,7 @@ Index | Define | Driver | Device | Address(es) | Description
|
||||
50 | USE_VEML7700 | xsns_71 | VEML7700 | 0x10 | Ambient light intensity sensor
|
||||
51 | USE_MCP9808 | xsns_72 | MCP9808 | 0x18 - 0x1F | Temperature sensor
|
||||
52 | USE_HP303B | xsns_73 | HP303B | 0x76 - 0x77 | Pressure and temperature sensor
|
||||
53 | USE_MLX90640 | xdrv_84 | MLX90640 | 0x33 | IR array temperature sensor
|
||||
53 | USE_MLX90640 | xdrv_43 | MLX90640 | 0x33 | IR array temperature sensor
|
||||
54 | USE_VL53L1X | xsns_77 | VL53L1X | 0x29 | Time-of-flight (ToF) distance sensor
|
||||
55 | USE_EZOPH | xsns_78 | EZOPH | 0x61 - 0x70 | pH sensor
|
||||
55 | USE_EZOORP | xsns_78 | EZOORP | 0x61 - 0x70 | ORP sensor
|
||||
@ -89,3 +89,5 @@ Index | Define | Driver | Device | Address(es) | Description
|
||||
55 | USE_EZODO | xsns_78 | EZODO | 0x61 - 0x70 | Disolved Oxygen sensor
|
||||
55 | USE_EZORGB | xsns_78 | EZORGB | 0x61 - 0x70 | Color sensor
|
||||
55 | USE_EZOPMP | xsns_78 | EZOPMP | 0x61 - 0x70 | Peristaltic Pump
|
||||
56 | USE_SEESAW_SOIL | xsns_81 | SEESOIL | 0x36 - 0x39 | Adafruit seesaw soil moisture sensor
|
||||
57 | USE_TOF10120 | xsns_84 | TOF10120 | 0x52 | Time-of-flight (ToF) distance sensor
|
||||
|
20
README.md
20
README.md
@ -97,24 +97,18 @@ If you're looking for support on **Tasmota** there are some options available:
|
||||
|
||||
### Support's Community
|
||||
|
||||
* [Tasmota Forum](https://groups.google.com/d/forum/sonoffusers): For usage and discussions.
|
||||
* [Tasmota Support Chat](https://discord.gg/Ks2Kzd4): For support, troubleshooting and general questions. You have better chances to get fast answers from members of the Tasmota Community.
|
||||
* [Tasmota Discussions](https://github.com/arendst/Tasmota/discussions): For Tasmota usage questions, Feature Requests and Projects.
|
||||
* [Tasmota Users Chat](https://discord.gg/Ks2Kzd4): For support, troubleshooting and general questions. You have better chances to get fast answers from members of the Tasmota Community.
|
||||
* [Search in Issues](https://github.com/arendst/Tasmota/issues): You might find an answer to your question by searching current or closed issues.
|
||||
|
||||
### Developers' Community
|
||||
|
||||
* [Bug Report](https://github.com/arendst/Tasmota/issues/new?template=Bug_report.md): For reporting Bugs of Tasmota Software.
|
||||
* [Feature Request](https://github.com/arendst/Tasmota/issues/new?template=Feature_request.md): For requesting features/functions to Tasmota Software.
|
||||
* [Troubleshooting](https://github.com/arendst/Tasmota/issues/new?template=Custom.md): As a last resort, you can open new *Troubleshooting* issue on GitHub if the solution could not be found using the other channels. Just remember: the more info you provide the more chances you'll have to get an accurate answer.
|
||||
* [Issue a question](https://github.com/arendst/Tasmota/issues/new/choose): As a last resort, you can open a new *Question* issue on GitHub if the answer could not be found using the other channels. Just remember: the more info you provide the more chances you'll have to get an accurate answer.
|
||||
* [Software Problem Report](https://github.com/arendst/Tasmota/issues/new?template=Bug_report.md): For reporting problems of Tasmota Software.
|
||||
|
||||
## Contribute
|
||||
|
||||
You can contribute to Tasmota by
|
||||
- providing Pull Requests (Features, Proof of Concepts, Language files or Fixes)
|
||||
- testing new released features and report issues
|
||||
- donating to acquire hardware for testing and implementing or out of gratitude
|
||||
- contributing missing [documentation](https://tasmota.github.io/docs) for features and devices
|
||||
- Providing Pull Requests (Features, Proof of Concepts, Language files or Fixes)
|
||||
- Testing new released features and report issues
|
||||
- Donating to acquire hardware for testing and implementing or out of gratitude
|
||||
- Contributing missing [documentation](https://tasmota.github.io/docs) for features and devices
|
||||
|
||||
[](https://paypal.me/tasmota)
|
||||
|
||||
|
129
RELEASENOTES.md
129
RELEASENOTES.md
@ -4,6 +4,8 @@
|
||||
|
||||
## Migration Information
|
||||
|
||||
This version removes migration support for versions before v8.1.0 (Doris)
|
||||
|
||||
See [migration path](https://tasmota.github.io/docs/Upgrading#migration-path) for instructions how to migrate to a major version. Pay attention to the following version breaks due to dynamic settings updates:
|
||||
|
||||
1. Migrate to **Sonoff-Tasmota 3.9.x**
|
||||
@ -56,71 +58,86 @@ The attached binaries can also be downloaded from http://ota.tasmota.com/tasmota
|
||||
|
||||
[Complete list](BUILDS.md) of available feature and sensors.
|
||||
|
||||
## Changelog v9.2.0 Julie
|
||||
## Changelog v9.3.0 Kenneth
|
||||
### Added
|
||||
- Command ``SetOption115 1`` to enable ESP32 MiBle
|
||||
- Command ``SetOption116 1`` to disable auto-query of zigbee light devices (avoids network storms with large groups)
|
||||
- Command ``SetOption117 1`` for light fading to be fixed duration instead of fixed slew rate [#10109](https://github.com/arendst/Tasmota/issues/10109)
|
||||
- Command ``RfProtocol`` to control RcSwitch receive protocols by BBBits [#10063](https://github.com/arendst/Tasmota/issues/10063)
|
||||
- Commands ``TuyaRGB``, ``TuyaEnum`` and ``TuyaEnumList`` [#9769](https://github.com/arendst/Tasmota/issues/9769)
|
||||
- Zigbee command ``ZbInfo`` and prepare support for EEPROM
|
||||
- Zigbee command ``ZbLeave`` to unpair a device
|
||||
- Zigbee support for Mi Door and Contact [#9759](https://github.com/arendst/Tasmota/issues/9759)
|
||||
- Zigbee alarm persistence [#9785](https://github.com/arendst/Tasmota/issues/9785)
|
||||
- Zigbee persistence of device/sensor data in EEPROM (only ZBBridge)
|
||||
- Zigbee better support for Tuya Protocol [#10074](https://github.com/arendst/Tasmota/issues/10074)
|
||||
- Zigbee visual map of network
|
||||
- TyuaMcu update 2/3 by Federico Leoni [#10004](https://github.com/arendst/Tasmota/issues/10004)
|
||||
- Support for additional EZO sensors by Christopher Tremblay
|
||||
- Support for AS608 optical and R503 capacitive fingerprint sensor
|
||||
- Support for Shelly Dimmer 1 and 2 by James Turton [#9854](https://github.com/arendst/Tasmota/issues/9854)
|
||||
- Support for common anode sevenseg displays by adding ``#define USE_DISPLAY_SEVENSEG_COMMON_ANODE`` by Ken Sanislo [#9963](https://github.com/arendst/Tasmota/issues/9963)
|
||||
- Support for multiple WeMo devices by Magic73 [#9208](https://github.com/arendst/Tasmota/issues/9208)
|
||||
- Support for SPI connected MFRC522 13.56MHz rfid card reader [#9916](https://github.com/arendst/Tasmota/issues/9916)
|
||||
- Support ESP32 SPIFFS for internal use
|
||||
- KNX read reply for Power (#9236, #9891)
|
||||
- Fallback NTP server from x.pool.ntp.org if no ntpservers are configured
|
||||
- Optional CCloader support for CC25xx Zigbee or CC26xx BLE by Christian Baars [#9970](https://github.com/arendst/Tasmota/issues/9970)
|
||||
- Letsencrypt R3 in addition to X3 CA [#10086](https://github.com/arendst/Tasmota/issues/10086)
|
||||
- Command ``CTRange`` to specify the visible CT range the bulb is capable of [#10311](https://github.com/arendst/Tasmota/issues/10311)
|
||||
- Command ``L1MusicSync <0|Off>|<1|On>|<2|Toggle>, 1..10, 1..100>`` to control Sonoff L1 Music Sync mode sensitivity and speed [#10722](https://github.com/arendst/Tasmota/issues/10722)
|
||||
- Command ``RuleTimer0`` to access all RuleTimers at once [#10352](https://github.com/arendst/Tasmota/issues/10352)
|
||||
- Command ``Speed2`` to control a once off fade [#10741](https://github.com/arendst/Tasmota/issues/10741)
|
||||
- Command ``VirtualCT`` to simulate or fine tune CT bulbs with 3,4,5 channels [#10311](https://github.com/arendst/Tasmota/issues/10311)
|
||||
- Command ``SetOption40 0..250`` to disable button functionality if activated for over 0.1 second re-introduced
|
||||
- Command ``SetOption43 1..255`` to control Rotary step (#10407)
|
||||
- Command ``SetOption118 1`` to move ZbReceived from JSON message and into the subtopic replacing "SENSOR" default [#10353](https://github.com/arendst/Tasmota/issues/10353)
|
||||
- Command ``SetOption119 1`` to remove the device addr from json payload, can be used with zb_topic_fname where the addr is already known from the topic [#10355](https://github.com/arendst/Tasmota/issues/10355)
|
||||
- Zigbee command ``SetOption120 1`` or ``ZbEndpointTopic 1`` to add the zigbee endpoint as suffix in topic when using ``SetOption89 1``
|
||||
- Zigbee command ``ZbScan`` to do an energy scan on each radio channel
|
||||
- Commands ``ChannelRemap``, ``MultiPWM``, ``AlexaCTRange``, ``PowerOnFade``, ``PWMCT``, ``WhiteBlend`` and ``VirtualCT`` as synonyms for ``SetOption37, 68, 82, 91, 92, 105`` and ``106``
|
||||
- Commands ``ZbNameKey``, ``ZbDeviceTopic``, ``ZbNoPrefix``, ``ZbEndpointSuffix``, ``ZbNoAutoBind`` and ``ZbNameTopic`` as synonyms for ``SetOption83, 89, 100, 101, 110`` and ``112``
|
||||
- Commands ``ZbNoAutoBind``, ``ZbReceivedTopic`` and ``ZbOmitDevice`` as synonyms for ``SetOption116, 118`` and ``119``
|
||||
- Commands ``BuzzerActive`` and ``BuzzerPwm`` as synonyms for ``SetOption67`` and ``111``
|
||||
- Milliseconds to console output [#10152](https://github.com/arendst/Tasmota/issues/10152)
|
||||
- Gpio ``Option_a1`` enabling PWM2 high impedance if powered off as used by Wyze bulbs [#10196](https://github.com/arendst/Tasmota/issues/10196)
|
||||
- Rotary No Pullup GPIO selection ``Rotary A/B_n`` [#10407](https://github.com/arendst/Tasmota/issues/10407)
|
||||
- BSSID and Signal Strength Indicator to GUI wifi scan result [#10253](https://github.com/arendst/Tasmota/issues/10253)
|
||||
- Support for P9813 RGB Led MOSFET controller [#10104](https://github.com/arendst/Tasmota/issues/10104)
|
||||
- Support for GPIO option selection
|
||||
- Support for FTC532 8-button touch controller by Peter Franck [#10222](https://github.com/arendst/Tasmota/issues/10222)
|
||||
- Support for BS814A-2 8-button touch buttons by Peter Franck [#10447](https://github.com/arendst/Tasmota/issues/10447)
|
||||
- Support for up to 4 I2C SEESAW_SOIL Capacitance & Temperature sensors by Peter Franck [#10481](https://github.com/arendst/Tasmota/issues/10481)
|
||||
- Support for TOF10120 time of flight sensor by Cyril Pawelko [#10190](https://github.com/arendst/Tasmota/issues/10190)
|
||||
- Support for Afrikaans language translations by Christiaan Heerze
|
||||
- Support for Frysk language translations by Christiaan Heerze
|
||||
- Support for IR inverted leds using ``#define IR_SEND_INVERTED true`` [#10301](https://github.com/arendst/Tasmota/issues/10301)
|
||||
- Support for disabling 38kHz IR modulation using ``#define IR_SEND_USE_MODULATION false`` [#10301](https://github.com/arendst/Tasmota/issues/10301)
|
||||
- Support for SPI display driver for ST7789 TFT by Gerhard Mutz [#9037](https://github.com/arendst/Tasmota/issues/9037)
|
||||
- Support for time proportioned (``#define USE_TIMEPROP``) and optional PID (``#define USE_PID``) relay control [#10412](https://github.com/arendst/Tasmota/issues/10412)
|
||||
- Support for 24/26/32/34 bit RFID Wiegand interface (D0/D1) by Sigurd Leuther [#3647](https://github.com/arendst/Tasmota/issues/3647)
|
||||
- Support for SM2135 current selection using GPIO ``SM2135 DAT`` index [#10634](https://github.com/arendst/Tasmota/issues/10634)
|
||||
- Support for Sugar Valley NeoPool Controller by Norbert Richter [#10637](https://github.com/arendst/Tasmota/issues/10637)
|
||||
- Support for Device Groups Device Map [#10898](https://github.com/arendst/Tasmota/issues/10898)
|
||||
- Support for Eastron SDM72D-M three phase 100A Modbus energy meter [#10862](https://github.com/arendst/Tasmota/issues/10862)
|
||||
- Support for ESP32 ``Module 3`` Odroid Go 16MB binary tasmota32-odroidgo.bin [#8630](https://github.com/arendst/Tasmota/issues/8630)
|
||||
- Support for ESP32 ``Module 5`` Wireless Tag Eth01 [#9496](https://github.com/arendst/Tasmota/issues/9496)
|
||||
- Support for ESP32 ``Module 7`` M5stack core2 16MB binary tasmota32-core2.bin [#10635](https://github.com/arendst/Tasmota/issues/10635)
|
||||
- Support rotary encoder on Shelly Dimmer [#10407](https://github.com/arendst/Tasmota/issues/10407#issuecomment-756240920)
|
||||
- Support character `#` to be replaced by `space`-character in command ``Publish`` topic [#10258](https://github.com/arendst/Tasmota/issues/10258)
|
||||
- Support trailing silence in buzzer tune [#10694](https://github.com/arendst/Tasmota/issues/10694)
|
||||
- Rule trigger string comparisons for EndsWith ``$>``, StartsWith ``$<`` and Contains ``$|`` [#10538](https://github.com/arendst/Tasmota/issues/10538)
|
||||
- SPI display driver SSD1331 Color oled by Jeroen Vermeulen [#10376](https://github.com/arendst/Tasmota/issues/10376)
|
||||
- Compile time option ``USE_MQTT_TLS_DROP_OLD_FINGERPRINT`` to drop old (less secure) TLS fingerprint
|
||||
|
||||
### Breaking Changed
|
||||
- KNX DPT9 (16-bit float) to DPT14 (32-bit float) by Adrian Scillato [#9811](https://github.com/arendst/Tasmota/issues/9811) [#9888](https://github.com/arendst/Tasmota/issues/9888)
|
||||
- ESP32 switch from default SPIFFS to default LittleFS file system loosing current (zigbee) files
|
||||
- Replaced MFRC522 13.56MHz rfid card reader GPIO selection from ``SPI CS`` by ``RC522 CS``
|
||||
- Replaced NRF24L01 GPIO selection from ``SPI CS`` by ``NRF24 CS`` and ``SPI DC`` by ``NRF24 DC``
|
||||
- Replaced ILI9341 GPIO selection from ``SPI CS`` by ``ILI9341 CS`` and ``SPI DC`` by ``ILI9341 DC``
|
||||
- Replaced ST7789 GPIO selection from ``SPI CS`` by ``ST7789 CS`` and ``SPI DC`` by ``ST7789 DC``
|
||||
- Replaced ILI9488 GPIO selection from ``SPI CS`` by ``ILI9488_CS``
|
||||
- Replaced EPaper29 GPIO selection from ``SPI CS`` by ``EPaper29 CS``
|
||||
- Replaced EPaper42 GPIO selection from ``SPI CS`` by ``EPaper42 CS``
|
||||
- Replaced SSD1351 GPIO selection from ``SPI CS`` by ``SSD1351 CS``
|
||||
- Replaced RA8876 GPIO selection from ``SPI CS`` by ``RA8876 CS``
|
||||
|
||||
### Changed
|
||||
- Core library from v2.7.4.5 to v2.7.4.9
|
||||
- IRremoteESP8266 library from v2.7.12 to v2.7.13
|
||||
- Shelly Dimmer 1 and 2 stm32 firmware from v51.4 to v51.5
|
||||
- mDNS has been disabled from all pre-compiled binaries to allow new features
|
||||
- Sonoff L1 color up scaling and color margin detection [#9545](https://github.com/arendst/Tasmota/issues/9545)
|
||||
- MQTT Wifi connection timeout from 5000 to 200 mSec [#9886](https://github.com/arendst/Tasmota/issues/9886)
|
||||
- Force bigger Thunk Stack if 4K RSA even without EC ciphers [#10075](https://github.com/arendst/Tasmota/issues/10075)
|
||||
- Removed migration support for versions before v8.1.0 (Doris)
|
||||
- Command ``Sleep 0`` removes any sleep from wifi modem except when ESP32 BLE is active
|
||||
- Logging from heap to stack freeing 700 bytes RAM
|
||||
- Disabled ``USE_LIGHT`` light support for ZBBridge saving 17.6kB [#10374](https://github.com/arendst/Tasmota/issues/10374)
|
||||
- Force initial default state ``SetOption57 1`` to scan wifi network every 44 minutes for strongest signal [#10395](https://github.com/arendst/Tasmota/issues/10395)
|
||||
- PubSubClient MQTT_SOCKET_TIMEOUT from 15 to 4 seconds
|
||||
- Domoticz fixed 2 decimals resolution by user selectable ``TempRes``, ``HumRes`` and ``PressRes`` resolutions
|
||||
- Increase number of button GPIOs from 4 to 8
|
||||
- ESP32 Increase number of switch GPIOs from 8 to 28
|
||||
- ESP32 increase number of relay GPIOs from 8 to 28
|
||||
- ESP32 Increase number of interlock groups from 4 to 14
|
||||
|
||||
### Fixed
|
||||
- Command ``gpio`` using non-indexed functions regression from v9.1.0 [#9962](https://github.com/arendst/Tasmota/issues/9962)
|
||||
- NTP fallback server functionality [#9739](https://github.com/arendst/Tasmota/issues/9739)
|
||||
- Telegram group chatid not supported [#9831](https://github.com/arendst/Tasmota/issues/9831)
|
||||
- KNX buttons, switches and sensors detection regression from v9.1.0 [#9811](https://github.com/arendst/Tasmota/issues/9811)
|
||||
- KNX ESP32 UDP mulicastpackage [#9811](https://github.com/arendst/Tasmota/issues/9811)
|
||||
- GUI MqttUser and MqttPassword updates when TLS is compiled in [#9825](https://github.com/arendst/Tasmota/issues/9825)
|
||||
- ESP32 TasmotaClient firmware upgrade [#9218](https://github.com/arendst/Tasmota/issues/9218)
|
||||
- Reset to defaults after 6 hours of DeepSleep [#9993](https://github.com/arendst/Tasmota/issues/9993)
|
||||
- Backlog timing wraparound [#9995](https://github.com/arendst/Tasmota/issues/9995)
|
||||
- First LED in addressable string does not fade when using scheme [#10088](https://github.com/arendst/Tasmota/issues/10088)
|
||||
- Improved Opentherm error handling [#10055](https://github.com/arendst/Tasmota/issues/10055)
|
||||
- Shutter motordelay stop issue [#10033](https://github.com/arendst/Tasmota/issues/10033)
|
||||
- Shutter fix overflow on runtime over 100 seconds [#9800](https://github.com/arendst/Tasmota/issues/9800)
|
||||
- ESP32 CC2530 heap corruption [#10121](https://github.com/arendst/Tasmota/issues/10121)
|
||||
- ESP32 Analog input div10 rule trigger [#10149](https://github.com/arendst/Tasmota/issues/10149)
|
||||
|
||||
### Fixed Backported
|
||||
- Redesign syslog and mqttlog using log buffer [#10164](https://github.com/arendst/Tasmota/issues/10164)
|
||||
- Shutter stop issue [#10170](https://github.com/arendst/Tasmota/issues/10170)
|
||||
- Scripter script_sub_command [#10181](https://github.com/arendst/Tasmota/issues/10181)
|
||||
- Scripter JSON variable above 32 chars [#10193](https://github.com/arendst/Tasmota/issues/10193)
|
||||
- Shelly Dimmer power on state [#10182](https://github.com/arendst/Tasmota/issues/10182)
|
||||
- Wemo emulation for single devices [#10194](https://github.com/arendst/Tasmota/issues/10194)
|
||||
- Shelly Dimmer power on state [#10154](https://github.com/arendst/Tasmota/issues/10154) [#10182](https://github.com/arendst/Tasmota/issues/10182)
|
||||
- Wemo emulation for single devices [#10165](https://github.com/arendst/Tasmota/issues/10165) [#10194](https://github.com/arendst/Tasmota/issues/10194)
|
||||
- ESP32 LoadStoreError when using ``#define USER_TEMPLATE`` [#9506](https://github.com/arendst/Tasmota/issues/9506)
|
||||
- Compile error when ``#ifdef USE_IR_RECEIVE`` is disabled regression from 9.1.0.2
|
||||
|
||||
### Removed
|
||||
- Version compatibility check
|
||||
- PN532 define USE_PN532_CAUSE_EVENTS replaced by generic rule trigger `on pn532#uid=`
|
||||
- Prometheus memory leak [#10221](https://github.com/arendst/Tasmota/issues/10221)
|
||||
|
31
boards/esp32s2.json
Normal file
31
boards/esp32s2.json
Normal file
@ -0,0 +1,31 @@
|
||||
{
|
||||
"build": {
|
||||
"arduino":{
|
||||
"ldscript": "esp32s2_out.ld"
|
||||
},
|
||||
"core": "esp32",
|
||||
"mcu": "esp32s2",
|
||||
"extra_flags": "-Desp32S2_dev_module",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "qio",
|
||||
"mcu": "esp32s2",
|
||||
"variant": "esp32s2"
|
||||
},
|
||||
"connectivity": [
|
||||
"wifi"
|
||||
],
|
||||
"frameworks": [
|
||||
"arduino"
|
||||
],
|
||||
"name": "ESP32S2 Dev Module",
|
||||
"upload": {
|
||||
"flash_size": "4MB",
|
||||
"maximum_ram_size": 327680,
|
||||
"maximum_size": 4194304,
|
||||
"require_upload_port": true,
|
||||
"speed": 460800
|
||||
},
|
||||
"url": "https://espressif.com",
|
||||
"vendor": "espressif"
|
||||
}
|
@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x5000,
|
||||
otadata, data, ota, 0xe000, 0x2000,
|
||||
app0, app, ota_0, 0x10000, 0x180000,
|
||||
app1, app, ota_1, 0x190000, 0x180000,
|
||||
ffat, data, fat, 0x310000,0x0F0000,
|
||||
spiffs, data, spiffs, 0x310000,0x0F0000,
|
|
@ -3,4 +3,4 @@ nvs, data, nvs, 0x9000, 0x5000,
|
||||
otadata, data, ota, 0xe000, 0x2000,
|
||||
app0, app, ota_0, 0x10000, 0x1F0000,
|
||||
app1, app, ota_1, 0x200000, 0x1F0000,
|
||||
ffat, data, fat, 0x3F0000,0xC10000,
|
||||
spiffs, data, spiffs, 0x3F0000,0xC10000,
|
|
@ -1,8 +0,0 @@
|
||||
# ESP-IDF Partition Table
|
||||
# Name, Type, SubType, Offset, Size, Flags
|
||||
nvs,data,nvs,0x9000,20K,
|
||||
otadata,data,ota,0xe000,8K,
|
||||
app0,app,ota_0,0x10000,1984K,
|
||||
app1,app,ota_1,0x200000,1984K,
|
||||
spiffs,data,spiffs,0x3f0000,60K,
|
||||
eeprom,data,nvs,0x3ff000,4K,
|
|
7
lib/default/Ext-printf/library.properties
Normal file
7
lib/default/Ext-printf/library.properties
Normal file
@ -0,0 +1,7 @@
|
||||
name=Ext-printf
|
||||
version=1.0
|
||||
author=Stephan Hadinger
|
||||
maintainer=Stephan <stephan.hadinger@gmail.com>
|
||||
sentence=Extension of snprintf() and vsnprintf()
|
||||
paragraph=This library provides extended types support for snprintf (float, uint64_t)
|
||||
architectures=esp8266, esp32
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
support_buffer.ino - Static binary buffer for Zigbee on Tasmota
|
||||
|
||||
Copyright (C) 2020 Theo Arends and Stephan Hadinger
|
||||
Copyright (C) 2021 Theo Arends and Stephan Hadinger
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -52,6 +52,20 @@ public:
|
||||
delete[] _buf;
|
||||
}
|
||||
|
||||
// increase the internal buffer if needed
|
||||
// do nothing if the buffer is big enough
|
||||
void reserve(const size_t size) {
|
||||
if (size > _buf->size) {
|
||||
// we need to increase the buffer size
|
||||
SBuffer_impl * new_buf = (SBuffer_impl*) new char[size+4]; // add 4 bytes for size and len
|
||||
new_buf->size = size;
|
||||
new_buf->len = _buf->len;
|
||||
memmove(&new_buf->buf, &_buf->buf, _buf->len); // copy buffer
|
||||
delete[] _buf;
|
||||
_buf = new_buf;
|
||||
}
|
||||
}
|
||||
|
||||
inline void setLen(const size_t len) {
|
||||
uint16_t old_len = _buf->len;
|
||||
_buf->len = (len <= _buf->size) ? len : _buf->size;
|
||||
@ -118,6 +132,13 @@ public:
|
||||
return _buf->len;
|
||||
}
|
||||
|
||||
void replace(const SBuffer &buf2) {
|
||||
uint32_t len = buf2.len();
|
||||
reserve(len);
|
||||
setLen(0); // clear buffer
|
||||
addBuffer(buf2);
|
||||
}
|
||||
|
||||
size_t addBuffer(const SBuffer &buf2) {
|
||||
if (len() + buf2.len() <= size()) {
|
||||
for (uint32_t i = 0; i < buf2.len(); i++) {
|
||||
@ -237,6 +258,21 @@ public:
|
||||
return buf2;
|
||||
}
|
||||
|
||||
// nullptr accepted
|
||||
static bool equalsSBuffer(const class SBuffer * buf1, const class SBuffer * buf2) {
|
||||
if (buf1 == buf2) { return true; }
|
||||
if (!buf1 && (buf2->len() == 0)) { return true; }
|
||||
if (!buf2 && (buf1->len() == 0)) { return true; }
|
||||
if (!buf1 || !buf2) { return false; } // at least one buf is not empty
|
||||
// we know that both buf1 and buf2 are non-null
|
||||
if (buf1->len() != buf2->len()) { return false; }
|
||||
size_t len = buf1->len();
|
||||
for (uint32_t i=0; i<len; i++) {
|
||||
if (buf1->get8(i) != buf2->get8(i)) { return false; }
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
static uint8_t asc2byte(char chr) {
|
||||
@ -269,18 +305,3 @@ public:
|
||||
_buf = nullptr;
|
||||
}
|
||||
} PreAllocatedSBuffer;
|
||||
|
||||
// nullptr accepted
|
||||
bool equalsSBuffer(const class SBuffer * buf1, const class SBuffer * buf2) {
|
||||
if (buf1 == buf2) { return true; }
|
||||
if (!buf1 && (buf2->len() == 0)) { return true; }
|
||||
if (!buf2 && (buf1->len() == 0)) { return true; }
|
||||
if (!buf1 || !buf2) { return false; } // at least one buf is not empty
|
||||
// we know that both buf1 and buf2 are non-null
|
||||
if (buf1->len() != buf2->len()) { return false; }
|
||||
size_t len = buf1->len();
|
||||
for (uint32_t i=0; i<len; i++) {
|
||||
if (buf1->get8(i) != buf2->get8(i)) { return false; }
|
||||
}
|
||||
return true;
|
||||
}
|
399
lib/default/Ext-printf/src/ext_printf.cpp
Normal file
399
lib/default/Ext-printf/src/ext_printf.cpp
Normal file
@ -0,0 +1,399 @@
|
||||
/*
|
||||
ext_printf.ino - Extended printf for Arduino objects
|
||||
|
||||
Copyright (C) 2021 Stephan Hadinger
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "ext_printf.h"
|
||||
#include <Arduino.h>
|
||||
#include <IPAddress.h>
|
||||
#include <SBuffer.hpp>
|
||||
|
||||
/*********************************************************************************************\
|
||||
* va_list extended support
|
||||
*
|
||||
* va_list allows to get the next argument but not to get the address of this argument in the stack.
|
||||
*
|
||||
* We add `va_cur_ptr(va, TYPE)` to get a pointer to the current argument.
|
||||
* This will allow to modify it in place and call back printf with altered arguments
|
||||
\*********************************************************************************************/
|
||||
|
||||
#if defined(__XTENSA__) // this works only for xtensa, other platforms needs va_list to be adapted
|
||||
|
||||
// This code is heavily inspired by the gcc implementation of va_list
|
||||
// https://github.com/gcc-mirror/gcc/blob/master/gcc/config/xtensa/xtensa.c
|
||||
|
||||
// Here is the va_list structure:
|
||||
// struct va_list {
|
||||
// void * __va_stk; // offset 0 - pointer to arguments on the stack
|
||||
// void * __va_reg; // offset 4 - pointer to arguments from registers
|
||||
// uint32_t __va_ndx; // offset 8 - index in bytes of the argument (overshoot by sizeof(T))
|
||||
// }
|
||||
//
|
||||
// When `va_start()` is called, the first 6 arguments are passed through registers r2-r7 and
|
||||
// are saved on the stack like local variables
|
||||
|
||||
// The algorightm used by `va_arg()` is the following:
|
||||
// /* Implement `va_arg'. */
|
||||
// /* First align __va_ndx if necessary for this arg:
|
||||
// orig_ndx = (AP).__va_ndx;
|
||||
// if (__alignof__ (TYPE) > 4 )
|
||||
// orig_ndx = ((orig_ndx + __alignof__ (TYPE) - 1)
|
||||
// & -__alignof__ (TYPE)); */
|
||||
// /* Increment __va_ndx to point past the argument:
|
||||
// (AP).__va_ndx = orig_ndx + __va_size (TYPE); */
|
||||
// /* Check if the argument is in registers:
|
||||
// if ((AP).__va_ndx <= __MAX_ARGS_IN_REGISTERS * 4
|
||||
// && !must_pass_in_stack (type))
|
||||
// __array = (AP).__va_reg; */
|
||||
// /* ...otherwise, the argument is on the stack (never split between
|
||||
// registers and the stack -- change __va_ndx if necessary):
|
||||
// else
|
||||
// {
|
||||
// if (orig_ndx <= __MAX_ARGS_IN_REGISTERS * 4)
|
||||
// (AP).__va_ndx = 32 + __va_size (TYPE);
|
||||
// __array = (AP).__va_stk;
|
||||
// } */
|
||||
// /* Given the base array pointer (__array) and index to the subsequent
|
||||
// argument (__va_ndx), find the address:
|
||||
// __array + (AP).__va_ndx - (BYTES_BIG_ENDIAN && sizeof (TYPE) < 4
|
||||
// ? sizeof (TYPE)
|
||||
// : __va_size (TYPE))
|
||||
// The results are endian-dependent because values smaller than one word
|
||||
// are aligned differently. */
|
||||
|
||||
// So we can simply get the argument address
|
||||
#define MAX_ARGS_IN_REGISTERS 6 // ESP8266 passes 6 arguments by register, then on stack
|
||||
|
||||
// #define va_cur_ptr(va,T) ( (T*) __va_cur_ptr(va,sizeof(T)) ) // we only support 4 bytes aligned arguments, so we don't need this one
|
||||
|
||||
// void * __va_cur_ptr(va_list &va, size_t size) {
|
||||
// size = (size + 3) & 0xFFFFFFFC; // round to upper 4 bytes boundary
|
||||
|
||||
// uintptr_t * va_stk = (uintptr_t*) &va;
|
||||
// uintptr_t * va_reg = 1 + (uintptr_t*) &va;
|
||||
// uintptr_t * va_ndx = 2 + (uintptr_t*) &va;
|
||||
// uintptr_t arr;
|
||||
|
||||
// if (*va_ndx <= MAX_ARGS_IN_REGISTERS * 4) {
|
||||
// arr = *va_reg;
|
||||
// } else {
|
||||
// arr = *va_stk;
|
||||
// }
|
||||
// return (void*) (arr + *va_ndx - size);
|
||||
// }
|
||||
|
||||
// reduced version when arguments are always 4 bytes
|
||||
#define va_cur_ptr4(va,T) ( (T*) __va_cur_ptr4(va) )
|
||||
void * __va_cur_ptr4(va_list &va) {
|
||||
uintptr_t * va_stk = (uintptr_t*) &va;
|
||||
uintptr_t * va_reg = 1 + (uintptr_t*) &va;
|
||||
uintptr_t * va_ndx = 2 + (uintptr_t*) &va;
|
||||
uintptr_t arr;
|
||||
|
||||
if (*va_ndx <= MAX_ARGS_IN_REGISTERS * 4) {
|
||||
arr = *va_reg;
|
||||
} else {
|
||||
arr = *va_stk;
|
||||
}
|
||||
return (void*) (arr + *va_ndx - 4);
|
||||
}
|
||||
|
||||
// Example of logs with 8 arguments (+1 static argument)
|
||||
// We see that the first 5 are from low in the stack (local variables)
|
||||
// while the last 8 are upper in the stack pushed by caller
|
||||
//
|
||||
// Note 64 bits arguments cannot be split between registers and stack
|
||||
//
|
||||
// >>> Reading a_ptr=0x3FFFFD44 *a_ptr=1
|
||||
// >>> Reading a_ptr=0x3FFFFD48 *a_ptr=2
|
||||
// >>> Reading a_ptr=0x3FFFFD4C *a_ptr=3
|
||||
// >>> Reading a_ptr=0x3FFFFD50 *a_ptr=4
|
||||
// >>> Reading a_ptr=0x3FFFFD54 *a_ptr=5
|
||||
// >>> Reading a_ptr=0x3FFFFD70 *a_ptr=6
|
||||
// >>> Reading a_ptr=0x3FFFFD74 *a_ptr=7
|
||||
// >>> Reading a_ptr=0x3FFFFD78 *a_ptr=8
|
||||
#elif defined(__RISC_V__)
|
||||
// #define __va_argsiz_tas(t) (((sizeof(t) + sizeof(int) - 1) / sizeof(int)) * sizeof(int))
|
||||
#define va_cur_ptr4(va,T) ( (T*) __va_cur_ptr4(va) )
|
||||
void * __va_cur_ptr4(va_list &va) {
|
||||
uintptr_t * va_ptr = (uintptr_t*) &va;
|
||||
void * cur_ptr = (void*) *va_ptr;
|
||||
*va_ptr += 4;
|
||||
return cur_ptr;
|
||||
}
|
||||
#else // __XTENSA__, __RISCV__
|
||||
#error "ext_printf is not suppoerted on this platform"
|
||||
#endif // __XTENSA__, __RISCV__
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Genral function to convert u64 to hex
|
||||
\*********************************************************************************************/
|
||||
// Simple function to print a 64 bits unsigned int
|
||||
/*
|
||||
char * U64toHex(uint64_t value, char *str) {
|
||||
// str must be at least 17 bytes long
|
||||
str[16] = 0; // end of string
|
||||
for (uint32_t i=0; i<16; i++) { // 16 digits
|
||||
uint32_t n = value & 0x0F;
|
||||
str[15 - i] = (n < 10) ? (char)n+'0' : (char)n-10+'A';
|
||||
value = value >> 4;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
*/
|
||||
|
||||
char * U64toHex(uint64_t value, char *str, uint32_t zeroleads) {
|
||||
// str must be at least 17 bytes long
|
||||
str[16] = 0; // end of string
|
||||
for (uint32_t i=0; i<16; i++) { // 16 digits
|
||||
uint32_t n = value & 0x0F;
|
||||
str[15 - i] = (n < 10) ? (char)n+'0' : (char)n-10+'A';
|
||||
value = value >> 4;
|
||||
}
|
||||
if (zeroleads < 16) {
|
||||
uint32_t max_zeroes = 16 - zeroleads;
|
||||
while (max_zeroes) {
|
||||
if (str[0] == '0') {
|
||||
memmove(str, str +1, strlen(str));
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
max_zeroes--;
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
// see https://stackoverflow.com/questions/6357031/how-do-you-convert-a-byte-array-to-a-hexadecimal-string-in-c
|
||||
// char* ToHex_P(unsigned char * in, size_t insz, char * out, size_t outsz, char inbetween = '\0'); in tasmota_globals.h
|
||||
char* ToHex_P(const unsigned char * in, size_t insz, char * out, size_t outsz, char inbetween = '\0') {
|
||||
// ToHex_P(in, insz, out, outz) -> "12345667"
|
||||
// ToHex_P(in, insz, out, outz, ' ') -> "12 34 56 67"
|
||||
// ToHex_P(in, insz, out, outz, ':') -> "12:34:56:67"
|
||||
static const char * hex PROGMEM = "0123456789ABCDEF";
|
||||
int between = (inbetween) ? 3 : 2;
|
||||
const unsigned char * pin = in;
|
||||
char * pout = out;
|
||||
for (; pin < in+insz; pout += between, pin++) {
|
||||
pout[0] = pgm_read_byte(&hex[(pgm_read_byte(pin)>>4) & 0xF]);
|
||||
pout[1] = pgm_read_byte(&hex[ pgm_read_byte(pin) & 0xF]);
|
||||
if (inbetween) { pout[2] = inbetween; }
|
||||
if (pout + 3 - out > outsz) { break; } // Better to truncate output string than overflow buffer
|
||||
}
|
||||
pout[(inbetween && insz) ? -1 : 0] = 0; // Discard last inbetween if any input
|
||||
return out;
|
||||
}
|
||||
|
||||
/*********************************************************************************************\
|
||||
* snprintf extended
|
||||
*
|
||||
\*********************************************************************************************/
|
||||
|
||||
// get a fresh malloc allocated string based on the current pointer (can be in PROGMEM)
|
||||
// It is the caller's responsibility to free the memory
|
||||
char * copyStr(const char * str) {
|
||||
if (str == nullptr) { return nullptr; }
|
||||
char * cpy = (char*) malloc(strlen_P(str) + 1);
|
||||
strcpy_P(cpy, str);
|
||||
return cpy;
|
||||
}
|
||||
|
||||
int32_t ext_vsnprintf_P(char * buf, size_t buf_len, const char * fmt_P, va_list va) {
|
||||
va_list va_cpy;
|
||||
va_copy(va_cpy, va);
|
||||
|
||||
// iterate on fmt to extract arguments and patch them in place
|
||||
char * fmt_cpy = copyStr(fmt_P);
|
||||
if (fmt_cpy == nullptr) { return 0; }
|
||||
char * fmt = fmt_cpy;
|
||||
|
||||
const uint32_t ALLOC_SIZE = 12;
|
||||
static char * allocs[ALLOC_SIZE] = {}; // initialized to zeroes
|
||||
uint32_t alloc_idx = 0;
|
||||
static char hex[20]; // buffer used for 64 bits, favor RAM instead of stack to remove pressure
|
||||
|
||||
for (; *fmt != 0; ++fmt) {
|
||||
int32_t decimals = -2; // default to 2 decimals and remove trailing zeros
|
||||
int32_t * decimals_ptr = nullptr;
|
||||
if (alloc_idx >= ALLOC_SIZE) { break; } // buffer is full, don't continue parsing
|
||||
if (*fmt == '%') {
|
||||
fmt++;
|
||||
char * fmt_start = fmt;
|
||||
if (*fmt == '\0') { break; } // end of string
|
||||
if (*fmt == '%') { continue; } // actual '%' char
|
||||
if (*fmt == '*') {
|
||||
decimals = va_arg(va, int32_t); // skip width argument as int
|
||||
decimals_ptr = va_cur_ptr4(va, int32_t); // pointer to value on stack
|
||||
const char ** cur_val_ptr = va_cur_ptr4(va, const char*); // pointer to value on stack
|
||||
fmt++;
|
||||
// Serial.printf("> decimals=%d, decimals_ptr=0x%08X\n", decimals, decimals_ptr);
|
||||
}
|
||||
if (*fmt < 'A') {
|
||||
decimals = strtol(fmt, nullptr, 10);
|
||||
}
|
||||
while (*fmt < 'A') { // brutal way to munch anything that is not a letter or '-' (or anything else)
|
||||
// while ((*fmt >= '0' && *fmt <= '9') || (*fmt == '.') || (*fmt == '*') || (*fmt == '-' || (*fmt == ' ' || (*fmt == '+') || (*fmt == '#')))) {
|
||||
fmt++;
|
||||
}
|
||||
|
||||
if (*fmt == '_') { // extension
|
||||
if (decimals_ptr) {
|
||||
// Serial.printf(">2 decimals=%d, decimals_ptr=0x%08X\n", decimals, decimals_ptr);
|
||||
*decimals_ptr = 0; // if '*' was used, make sure we replace the value with zero for snprintf()
|
||||
*(fmt_start++) = '-'; // in this case replace with `%-*s`
|
||||
*(fmt_start++) = '*';
|
||||
}
|
||||
for (; fmt_start <= fmt; fmt_start++) {
|
||||
*fmt_start = '0';
|
||||
}
|
||||
// *fmt = '0';
|
||||
fmt++;
|
||||
uint32_t cur_val = va_arg(va, uint32_t); // current value
|
||||
const char ** cur_val_ptr = va_cur_ptr4(va, const char*); // pointer to value on stack
|
||||
char * new_val_str = (char*) "";
|
||||
switch (*fmt) {
|
||||
case 'H': // Hex, decimals indicates the length, default 2
|
||||
{
|
||||
if (decimals < 0) { decimals = 0; }
|
||||
if (decimals > 0) {
|
||||
char * hex_char = (char*) malloc(decimals*2 + 2);
|
||||
ToHex_P((const uint8_t *)cur_val, decimals, hex_char, decimals*2 + 2);
|
||||
new_val_str = hex_char;
|
||||
allocs[alloc_idx++] = new_val_str;
|
||||
// Serial.printf("> hex=%s\n", hex_char);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'B': // Pointer to SBuffer
|
||||
{
|
||||
const SBuffer & buf = *(const SBuffer*)cur_val;
|
||||
size_t buf_len = (&buf != nullptr) ? buf.len() : 0;
|
||||
if (buf_len) {
|
||||
char * hex_char = (char*) malloc(buf_len*2 + 2);
|
||||
ToHex_P(buf.getBuffer(), buf_len, hex_char, buf_len*2 + 2);
|
||||
new_val_str = hex_char;
|
||||
allocs[alloc_idx++] = new_val_str;
|
||||
}
|
||||
}
|
||||
break;
|
||||
// case 'D':
|
||||
// decimals = *(int32_t*)cur_val_ptr;
|
||||
// break;
|
||||
|
||||
// `%_I` ouputs an IPv4 32 bits address passed as u32 into a decimal dotted format
|
||||
case 'I': // Input is `uint32_t` 32 bits IP address, output is decimal dotted address
|
||||
{
|
||||
char * ip_str = (char*) malloc(16);
|
||||
snprintf_P(ip_str, 16, PSTR("%u.%u.%u.%u"), cur_val & 0xFF, (cur_val >> 8) & 0xFF, (cur_val >> 16) & 0xFF, (cur_val >> 24) & 0xFF);
|
||||
new_val_str = ip_str;
|
||||
allocs[alloc_idx++] = new_val_str;
|
||||
}
|
||||
break;
|
||||
|
||||
// `%_f` or `%*_f` outputs a float with optionan number of decimals passed as first argument if `*` is present
|
||||
// positive number of decimals means an exact number of decimals, can be `0` terminate
|
||||
// negative number of decimals will suppress
|
||||
// Ex:
|
||||
// char c[128];
|
||||
// float f = 3.141f;
|
||||
// ext_vsnprintf_P(c; szeof(c), "%_f %*_f %*_f", &f, 4, 1f, -4, %f);
|
||||
// --> c will be "3.14 3.1410 3.141"
|
||||
// Note: float MUST be passed by address, because C alsays promoted float to double when in vararg
|
||||
case 'f': // input is `float`, printed to float with 2 decimals
|
||||
{
|
||||
bool truncate = false;
|
||||
if (decimals < 0) {
|
||||
decimals = -decimals;
|
||||
truncate = true;
|
||||
}
|
||||
float number = *(float*)cur_val;
|
||||
if (isnan(number) || isinf(number)) {
|
||||
new_val_str = (char*) "null";
|
||||
} else {
|
||||
dtostrf(*(float*)cur_val, (decimals + 2), decimals, hex);
|
||||
|
||||
if (truncate) {
|
||||
uint32_t last = strlen(hex) - 1;
|
||||
// remove trailing zeros
|
||||
while (hex[last] == '0') {
|
||||
hex[last--] = 0; // remove last char
|
||||
}
|
||||
// remove trailing dot
|
||||
if (hex[last] == '.') {
|
||||
hex[last] = 0;
|
||||
}
|
||||
}
|
||||
new_val_str = copyStr(hex);
|
||||
allocs[alloc_idx++] = new_val_str;
|
||||
}
|
||||
}
|
||||
break;
|
||||
// '%_X' outputs a 64 bits unsigned int to uppercase HEX with 16 digits
|
||||
case 'X': // input is `uint64_t*`, printed as 16 hex digits (no prefix 0x)
|
||||
{
|
||||
if ((decimals < 0) || (decimals > 16)) { decimals = 16; }
|
||||
U64toHex(*(uint64_t*)cur_val, hex, decimals);
|
||||
new_val_str = copyStr(hex);
|
||||
allocs[alloc_idx++] = new_val_str;
|
||||
}
|
||||
break;
|
||||
// Trying to do String allocation alternatives, but not as interesting as I thought in the beginning
|
||||
// case 's':
|
||||
// {
|
||||
// new_val_str = copyStr(((String*)cur_val)->c_str());
|
||||
// allocs[alloc_idx++] = new_val_str;
|
||||
// }
|
||||
// break;
|
||||
// case 'S':
|
||||
// {
|
||||
// funcString_t * func_str = (funcString_t*) cur_val;
|
||||
// new_val_str = copyStr((*func_str)().c_str());
|
||||
// allocs[alloc_idx++] = new_val_str;
|
||||
// }
|
||||
// break;
|
||||
}
|
||||
*cur_val_ptr = new_val_str;
|
||||
*fmt = 's'; // replace `%_X` with `%0s` to display a string instead
|
||||
|
||||
} else {
|
||||
va_arg(va, int32_t); // munch one 32 bits argument and leave it unchanged
|
||||
// we take the hypothesis here that passing 64 bits arguments is always unsupported in ESP8266
|
||||
}
|
||||
}
|
||||
}
|
||||
// Serial.printf("> format_final=%s\n", fmt_cpy); Serial.flush();
|
||||
int32_t ret = vsnprintf_P(buf, buf_len, fmt_cpy, va_cpy);
|
||||
|
||||
va_end(va_cpy);
|
||||
|
||||
// disallocated all temporary strings
|
||||
for (uint32_t i = 0; i < alloc_idx; i++) {
|
||||
free(allocs[i]); // it is ok to call free() on nullptr so we don't test for nullptr first
|
||||
allocs[i] = nullptr;
|
||||
}
|
||||
free(fmt_cpy); // free the local copy of the format string
|
||||
return ret;
|
||||
}
|
||||
|
||||
int32_t ext_snprintf_P(char * buf, size_t buf_len, const char * fmt, ...) {
|
||||
va_list va;
|
||||
va_start(va, fmt);
|
||||
|
||||
int32_t ret = ext_vsnprintf_P(buf, buf_len, fmt, va);
|
||||
va_end(va);
|
||||
return ret;
|
||||
}
|
34
lib/default/Ext-printf/src/ext_printf.h
Normal file
34
lib/default/Ext-printf/src/ext_printf.h
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
ext_printf.ino - Extended printf for Arduino objects
|
||||
|
||||
Copyright (C) 2021 Stephan Hadinger
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef EXT_PRINTF_H
|
||||
#define EXT_PRINTF_H
|
||||
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <cstdarg>
|
||||
|
||||
int32_t ext_vsnprintf_P(char * buf, size_t buf_len, const char * fmt_P, va_list va);
|
||||
int32_t ext_snprintf_P(char * buf, size_t buf_len, const char * fmt, ...);
|
||||
|
||||
char* ToHex_P(const unsigned char * in, size_t insz, char * out, size_t outsz, char inbetween);
|
||||
|
||||
// void test_ext_snprintf_P(void);
|
||||
|
||||
#endif // EXT_PRINTF_H
|
110
lib/default/Ext-printf/test/test_ext_printf.cpp
Normal file
110
lib/default/Ext-printf/test/test_ext_printf.cpp
Normal file
@ -0,0 +1,110 @@
|
||||
/*
|
||||
ext_printf.ino - Extended printf for Arduino objects
|
||||
|
||||
Copyright (C) 2021 Stephan Hadinger
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "ext_printf.h"
|
||||
#include <Arduino.h>
|
||||
|
||||
// DEBUG only
|
||||
|
||||
// String test_string(void) {
|
||||
// String s("This is the string");
|
||||
|
||||
// return s;
|
||||
// }
|
||||
|
||||
// String f_str(void) { return String("foobar"); }
|
||||
// String k_str("foobar");
|
||||
|
||||
// void f1(String s) {
|
||||
// Serial.printf("> %s\n", s.c_str());
|
||||
// }
|
||||
// void f2(void) {
|
||||
// f1(f_str());
|
||||
// }
|
||||
|
||||
// void test_snprintf1(void) {
|
||||
// char c[100];
|
||||
// snprintf_P(c, sizeof(c), PSTR("s1=%s, s2=%s"), k_str.c_str(), f_str().c_str());
|
||||
// }
|
||||
// void test_snprintf2(void) {
|
||||
// char c[100];
|
||||
// ext_snprintf_P(c, sizeof(c), PSTR("s1=%_s, s2=%_S"), &k_str, &f_str, &ResponseAppendTHD);
|
||||
// }
|
||||
void test_ext_snprintf_P(void) {
|
||||
// test_snprintf1();
|
||||
// test_snprintf2();
|
||||
// if (0) {
|
||||
// // testVarArg2("", 1, 2, 3, 4, 5, 6, 7, 8);
|
||||
|
||||
char c[128];
|
||||
float fpi=-3333.1415926535f;
|
||||
float f3 = 3333;
|
||||
float f31 = 3333.1;
|
||||
ext_snprintf_P(c, sizeof(c), "Int1 = %d, ip=%_I", 1, 0x10203040);
|
||||
Serial.printf("--> out=%s\n", c);
|
||||
|
||||
ext_snprintf_P(c, sizeof(c), "Float default=%_f %_f", &f3, &fpi);
|
||||
Serial.printf("--> out=%s\n", c);
|
||||
|
||||
ext_snprintf_P(c, sizeof(c), "Float default=%1_f, int(3)=%4_f, int(3)=%-4_f, int(3)=%-4_f, 6dec=%-8_f", &fpi, &f3, &f3, &f31, &fpi);
|
||||
Serial.printf("--> out=%s\n", c);
|
||||
ext_snprintf_P(c, sizeof(c), "Float default=%*_f, int(3)=%*_f, int(3)=%*_f, int(3)=%*_f, 6dec=%*_f", 1, &fpi, 4, &f3, -4, &f3, -4, &f31, -8, &fpi);
|
||||
Serial.printf("--> out=%s\n", c);
|
||||
uint64_t u641 = 0x1122334455667788LL;
|
||||
uint64_t u642 = 0x0123456789ABCDEFLL;
|
||||
uint64_t u643 = 0xFEDCBA9876543210LL;
|
||||
ext_snprintf_P(c, sizeof(c), "Int64 0x%_X 0x%_X 0x%_X", &u641, &u642, &u643);
|
||||
Serial.printf("--> out=%s\n", c);
|
||||
|
||||
// ext_snprintf_P(c, sizeof(c), "Float default=%*_f, int(3)=%*_f, int(3)=%*_f, int(3)=%*_f, 6dec=%*_f", &fpi, &f3, &f3, &f31, &fpi);
|
||||
|
||||
// String string("Foobar");
|
||||
// ext_snprintf_P(c, sizeof(c), "String 0x%08X %_s", &string, &string);
|
||||
// Serial.printf("--> out=%s\n", c);
|
||||
|
||||
// ext_snprintf_P(c, sizeof(c), "StringFunc 0x%08X %_S", &test_string, &test_string);
|
||||
// Serial.printf("--> out=%s\n", c);
|
||||
|
||||
// uint64_t u64 = 0x123456789ABCDEFLL;
|
||||
// testVarArg2("", u64, 2, 3, 4, 5, 6, 7, 8);
|
||||
|
||||
// // Serial.printf("+++ ld=%ld, lld=%lld\n", 1,2,3,4);
|
||||
// // testVarArg("", 1, 2, 3, 4, 5, 6, 7, 8);
|
||||
// }
|
||||
// tprintf("%s", 12, "14");
|
||||
}
|
||||
|
||||
|
||||
// void tprintf(const char* format) // base function
|
||||
// {
|
||||
// Serial.printf("%s\n", format);
|
||||
// }
|
||||
|
||||
// template<typename T, typename... Targs>
|
||||
// void tprintf(const char* format, T value, Targs... Fargs) // recursive variadic function
|
||||
// {
|
||||
// for ( ; *format != '\0'; format++ ) {
|
||||
// if ( *format == '%' ) {
|
||||
// Serial.printf("%d", (uint32_t) value);
|
||||
// tprintf(format+1, Fargs...); // recursive call
|
||||
// return;
|
||||
// }
|
||||
// Serial.printf("%s", format);
|
||||
// }
|
||||
// }
|
@ -10,8 +10,5 @@
|
||||
"exclude": "tests",
|
||||
"examples": "examples/*/*.ino",
|
||||
"frameworks": "arduino",
|
||||
"platforms": [
|
||||
"atmelavr",
|
||||
"espressif"
|
||||
]
|
||||
"platforms": ["espressif8266", "espressif32"]
|
||||
}
|
||||
|
@ -25,19 +25,20 @@
|
||||
#ifndef MQTT_MAX_PACKET_SIZE
|
||||
//#define MQTT_MAX_PACKET_SIZE 128
|
||||
//#define MQTT_MAX_PACKET_SIZE 1000 // Tasmota v5.11.1c
|
||||
#define MQTT_MAX_PACKET_SIZE 1200 // Tasmota v8.1.0.8
|
||||
#define MQTT_MAX_PACKET_SIZE 1200 // Tasmota v8.1.0.8
|
||||
#endif
|
||||
|
||||
// MQTT_KEEPALIVE : keepAlive interval in Seconds
|
||||
// Keepalive timeout for default MQTT Broker is 10s
|
||||
#ifndef MQTT_KEEPALIVE
|
||||
//#define MQTT_KEEPALIVE 10
|
||||
#define MQTT_KEEPALIVE 30 // Tasmota v6.5.0.14 enabling AWS-iot
|
||||
#define MQTT_KEEPALIVE 30 // Tasmota v6.5.0.14 enabling AWS-iot
|
||||
#endif
|
||||
|
||||
// MQTT_SOCKET_TIMEOUT: socket timeout interval in Seconds
|
||||
#ifndef MQTT_SOCKET_TIMEOUT
|
||||
#define MQTT_SOCKET_TIMEOUT 15
|
||||
//#define MQTT_SOCKET_TIMEOUT 15
|
||||
#define MQTT_SOCKET_TIMEOUT 4 // Tasmota 20210120
|
||||
#endif
|
||||
|
||||
// MQTT_MAX_TRANSFER_SIZE : limit how much data is passed to the network client
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
Implementation of software serial with hardware serial fallback library for the ESP8266
|
||||
Implementation of dual UART hardware serial for the ESP32
|
||||
Implementation of single UART hardware serial for the ESP32-S2
|
||||
|
||||
Allows for several instances to be active at the same time.
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "TasmotaSerial",
|
||||
"version": "3.1.0",
|
||||
"version": "3.2.0",
|
||||
"keywords": [
|
||||
"serial", "io", "TasmotaSerial"
|
||||
],
|
@ -1,5 +1,5 @@
|
||||
name=TasmotaSerial
|
||||
version=3.1.0
|
||||
version=3.2.0
|
||||
author=Theo Arends
|
||||
maintainer=Theo Arends <theo@arends.com>
|
||||
sentence=Implementation of software serial with hardware serial fallback for ESP8266 and ESP32.
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
TasmotaSerial.cpp - Implementation of software serial with hardware serial fallback for Tasmota
|
||||
|
||||
Copyright (C) 2020 Theo Arends
|
||||
Copyright (C) 2021 Theo Arends
|
||||
|
||||
This library is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -38,7 +38,11 @@ TasmotaSerial *tms_obj_list[16];
|
||||
#endif // ESP8266
|
||||
#ifdef ESP32
|
||||
|
||||
#if CONFIG_IDF_TARGET_ESP32 // ESP32/PICO-D4
|
||||
static int tasmota_serial_index = 2; // Allow UART2 and UART1 only
|
||||
#elif CONFIG_IDF_TARGET_ESP32S2 // ESP32-S2
|
||||
static int tasmota_serial_index = 1; // Allow UART1 only
|
||||
#endif
|
||||
|
||||
#endif // ESP32
|
||||
|
||||
@ -87,7 +91,7 @@ TasmotaSerial::TasmotaSerial(int receive_pin, int transmit_pin, int hardware_fal
|
||||
m_valid = true;
|
||||
}
|
||||
|
||||
TasmotaSerial::~TasmotaSerial() {
|
||||
TasmotaSerial::~TasmotaSerial(void) {
|
||||
#ifdef ESP8266
|
||||
if (!m_hardserial) {
|
||||
if (m_rx_pin > -1) {
|
||||
@ -118,20 +122,23 @@ bool TasmotaSerial::begin(long speed, int stop_bits) {
|
||||
if (m_hardswap) {
|
||||
Serial.swap();
|
||||
}
|
||||
if (serial_buffer_size > 256) {
|
||||
Serial.setRxBufferSize(serial_buffer_size);
|
||||
}
|
||||
#endif // ESP8266
|
||||
#ifdef ESP32
|
||||
if (tasmota_serial_index > 0) { // We only support UART1 and UART2 and keep UART0 for debugging
|
||||
m_uart = tasmota_serial_index;
|
||||
tasmota_serial_index--;
|
||||
TSerial = new HardwareSerial(m_uart);
|
||||
if (serial_buffer_size > 256) {
|
||||
TSerial->setRxBufferSize(serial_buffer_size);
|
||||
}
|
||||
if (2 == m_stop_bits) {
|
||||
TSerial->begin(speed, SERIAL_8N2, m_rx_pin, m_tx_pin);
|
||||
} else {
|
||||
TSerial->begin(speed, SERIAL_8N1, m_rx_pin, m_tx_pin);
|
||||
}
|
||||
if (serial_buffer_size > 256) {
|
||||
TSerial->setRxBufferSize(serial_buffer_size);
|
||||
}
|
||||
} else {
|
||||
m_valid = false;
|
||||
}
|
||||
@ -147,11 +154,11 @@ bool TasmotaSerial::begin(long speed, int stop_bits) {
|
||||
return m_valid;
|
||||
}
|
||||
|
||||
bool TasmotaSerial::begin() {
|
||||
bool TasmotaSerial::begin(void) {
|
||||
return begin(TM_SERIAL_BAUDRATE);
|
||||
}
|
||||
|
||||
bool TasmotaSerial::hardwareSerial() {
|
||||
bool TasmotaSerial::hardwareSerial(void) {
|
||||
#ifdef ESP8266
|
||||
return m_hardserial;
|
||||
#endif // ESP8266
|
||||
@ -160,7 +167,7 @@ bool TasmotaSerial::hardwareSerial() {
|
||||
#endif // ESP32
|
||||
}
|
||||
|
||||
void TasmotaSerial::flush() {
|
||||
void TasmotaSerial::flush(void) {
|
||||
if (m_hardserial) {
|
||||
#ifdef ESP8266
|
||||
Serial.flush();
|
||||
@ -173,7 +180,7 @@ void TasmotaSerial::flush() {
|
||||
}
|
||||
}
|
||||
|
||||
int TasmotaSerial::peek() {
|
||||
int TasmotaSerial::peek(void) {
|
||||
if (m_hardserial) {
|
||||
#ifdef ESP8266
|
||||
return Serial.peek();
|
||||
@ -187,7 +194,7 @@ int TasmotaSerial::peek() {
|
||||
}
|
||||
}
|
||||
|
||||
int TasmotaSerial::read() {
|
||||
int TasmotaSerial::read(void) {
|
||||
if (m_hardserial) {
|
||||
#ifdef ESP8266
|
||||
return Serial.read();
|
||||
@ -203,7 +210,26 @@ int TasmotaSerial::read() {
|
||||
}
|
||||
}
|
||||
|
||||
int TasmotaSerial::available() {
|
||||
size_t TasmotaSerial::read(char* buffer, size_t size) {
|
||||
if (m_hardserial) {
|
||||
#ifdef ESP8266
|
||||
return Serial.read(buffer, size);
|
||||
#endif // ESP8266
|
||||
#ifdef ESP32
|
||||
return TSerial->read(buffer, size);
|
||||
#endif // ESP32
|
||||
} else {
|
||||
if ((-1 == m_rx_pin) || (m_in_pos == m_out_pos)) { return 0; }
|
||||
size_t count = 0;
|
||||
for( ; size && (m_in_pos == m_out_pos) ; --size, ++count) {
|
||||
*buffer++ = m_buffer[m_out_pos];
|
||||
m_out_pos = (m_out_pos +1) % serial_buffer_size;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
}
|
||||
|
||||
int TasmotaSerial::available(void) {
|
||||
if (m_hardserial) {
|
||||
#ifdef ESP8266
|
||||
return Serial.available();
|
||||
@ -279,7 +305,7 @@ size_t TasmotaSerial::write(uint8_t b) {
|
||||
}
|
||||
}
|
||||
|
||||
void ICACHE_RAM_ATTR TasmotaSerial::rxRead() {
|
||||
void ICACHE_RAM_ATTR TasmotaSerial::rxRead(void) {
|
||||
if (!m_nwmode) {
|
||||
int32_t loop_read = m_very_high_speed ? serial_buffer_size : 1;
|
||||
// Advance the starting point for the samples but compensate for the
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
TasmotaSerial.h - Implementation of software serial with hardware serial fallback for Tasmota
|
||||
|
||||
Copyright (C) 2020 Theo Arends
|
||||
Copyright (C) 2021 Theo Arends
|
||||
|
||||
This library is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -41,16 +41,17 @@ class TasmotaSerial : public Stream {
|
||||
virtual ~TasmotaSerial();
|
||||
|
||||
bool begin(long speed, int stop_bits = 1);
|
||||
bool begin();
|
||||
bool hardwareSerial();
|
||||
int peek();
|
||||
bool begin(void);
|
||||
bool hardwareSerial(void);
|
||||
int peek(void);
|
||||
|
||||
virtual size_t write(uint8_t byte);
|
||||
virtual int read();
|
||||
virtual int available();
|
||||
virtual void flush();
|
||||
size_t write(uint8_t byte) override;
|
||||
int read(void) override;
|
||||
size_t read(char* buffer, size_t size);
|
||||
int available(void) override;
|
||||
void flush(void) override;
|
||||
|
||||
void rxRead();
|
||||
void rxRead(void);
|
||||
|
||||
uint32_t getLoopReadMetric(void) const { return m_bit_follow_metric; }
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
UdpListener.h - webserver for Tasmota
|
||||
|
||||
Copyright (C) 2020 Theo Arends & Stephan Hadinger
|
||||
Copyright (C) 2021 Theo Arends & Stephan Hadinger
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
36
lib/default/Unishox-1.0-shadinger/src/UnishoxStrings.cpp
Normal file
36
lib/default/Unishox-1.0-shadinger/src/UnishoxStrings.cpp
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
UnishoxStrings.c - support library for compressed strings in Flash
|
||||
|
||||
Copyright (C) 2021 Theo Arends and Stephan Hadinger
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "UnishoxStrings.h"
|
||||
#include <pgmspace.h>
|
||||
|
||||
extern int32_t DecompressNoAlloc(const char * compressed, size_t uncompressed_size, String & content);
|
||||
|
||||
//
|
||||
// If first byte is NULL, then the string is compressed
|
||||
//
|
||||
UnishoxStrings::UnishoxStrings(const char *k_msg) {
|
||||
if (pgm_read_byte(k_msg) == 0) {
|
||||
size_t len = pgm_read_byte(k_msg + 1) * 16;
|
||||
DecompressNoAlloc(k_msg + 2, len, _decompressed);
|
||||
_msg = _decompressed.c_str();
|
||||
} else {
|
||||
_msg = k_msg;
|
||||
}
|
||||
}
|
98
lib/default/Unishox-1.0-shadinger/src/UnishoxStrings.h
Normal file
98
lib/default/Unishox-1.0-shadinger/src/UnishoxStrings.h
Normal file
@ -0,0 +1,98 @@
|
||||
/*
|
||||
UnishoxStrings.c - support library for compressed strings in Flash
|
||||
|
||||
Copyright (C) 2021 Theo Arends and Stephan Hadinger
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __UNISHOX_STRINGS__
|
||||
#define __UNISHOX_STRINGS__
|
||||
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include "WString.h"
|
||||
|
||||
|
||||
/*******************************************************************************************/
|
||||
/*
|
||||
* UnishoxStrings compressed literal strings
|
||||
*
|
||||
* To be typically used for web UI to have multiple strings like JS, CSS, HTML
|
||||
* compressed in a single list of small strings. This is where Unishox shines.
|
||||
*
|
||||
* Strings before compression are separated with NULL chars, which makes them ready to use
|
||||
* once you know the offset in the global array.
|
||||
*
|
||||
* The list of string is marked by an empty stings, i.e. two consecutive NULL chars
|
||||
*
|
||||
* To distinguish from uncompressed templates, and to indicate the global size
|
||||
* the compressed array is prefixed with NULL and the uncompressed size * 16 bytes.
|
||||
*
|
||||
* Compressed format:
|
||||
* - Byte 00 : \00 - if non-null, then it is not compressed
|
||||
* - Byte 01 : <size16> - uncompressed size is <size16> * 16 bytes (always rounded up)
|
||||
* - Byte [] : compressed data (does not contain NULL)
|
||||
* - Byte n : \00 - final NULL
|
||||
*
|
||||
/*******************************************************************************************/
|
||||
|
||||
|
||||
/*******************************************************************************************/
|
||||
/*
|
||||
* This class is initialzed with either a PMEM uncompressed list of strings
|
||||
* or a PMEM unishox-compressed list of strings; in this case RAM is allocated
|
||||
* to hold the uncompressed data, until the class gets out of scope.
|
||||
*
|
||||
* To encode, use https://tasmota.hadinger.fr/util
|
||||
* and use the "Compress strings template with unishox"
|
||||
* past the C code for the strings, and copy/paste the result
|
||||
* (don't foget to rename the variable).
|
||||
*
|
||||
* Input:
|
||||
* Each string must be terminated with an explicit NULL char "\0". The list is hence
|
||||
* terminated with a double-NULL.
|
||||
*
|
||||
* Each string is then indexed as its byte offset in the whole template.
|
||||
* The offsets are computed at the same time as the compressed version.
|
||||
* You need to use the online compressor even if you don't use the comrpessed version.
|
||||
*
|
||||
* Indexes are marked as C++ comments starting with "//="
|
||||
*
|
||||
* Example input:
|
||||
* con
|
||||
* // start of strings
|
||||
* //=STRING_1
|
||||
* "This is string 1"
|
||||
* "\0"
|
||||
* //=STRING_2
|
||||
* "This is string 2"
|
||||
* "continued here"
|
||||
* "\0"
|
||||
* ;
|
||||
*
|
||||
/*******************************************************************************************/
|
||||
|
||||
class UnishoxStrings {
|
||||
public:
|
||||
UnishoxStrings(const char *k_msg);
|
||||
|
||||
inline const char * operator[](uint16_t i) const { return _msg + i; }
|
||||
|
||||
const char * _msg = nullptr;
|
||||
String _decompressed;
|
||||
};
|
||||
|
||||
|
||||
#endif // __UNISHOX_STRINGS__
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
JsonGenerator.cpp - lightweight JSON parser
|
||||
|
||||
Copyright (C) 2020 Stephan Hadinger
|
||||
Copyright (C) 2021 Stephan Hadinger
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
JsonGenerator.h - lightweight JSON generator
|
||||
|
||||
Copyright (C) 2020 Stephan Hadinger
|
||||
Copyright (C) 2021 Stephan Hadinger
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -32,7 +32,7 @@ extern String EscapeJSONString(const char *str);
|
||||
class JsonGeneratorArray {
|
||||
public:
|
||||
|
||||
JsonGeneratorArray(): val("[]") {} // start with empty array
|
||||
JsonGeneratorArray(): val(F("[]")) {} // start with empty array
|
||||
|
||||
void add(uint32_t uval32);
|
||||
void add(int32_t uval32);
|
||||
@ -53,7 +53,7 @@ protected:
|
||||
class JsonGeneratorObject {
|
||||
public:
|
||||
|
||||
JsonGeneratorObject(): val("{}") {} // start with empty object
|
||||
JsonGeneratorObject(): val(F("{}")) {} // start with empty object
|
||||
|
||||
void add(const char* key, uint32_t uval32);
|
||||
void add(const char* key, int32_t uval32);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
JsonParser.cpp - lightweight JSON parser
|
||||
|
||||
Copyright (C) 2020 Stephan Hadinger
|
||||
Copyright (C) 2021 Stephan Hadinger
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
JsonParser.h - lightweight JSON parser
|
||||
|
||||
Copyright (C) 2020 Stephan Hadinger
|
||||
Copyright (C) 2021 Stephan Hadinger
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -228,7 +228,7 @@ public:
|
||||
|
||||
// destructor
|
||||
~JsonParser();
|
||||
|
||||
|
||||
// set the current buffer for attribute access (i.e. set the global)
|
||||
void setCurrent(void) { k_current_json_buffer = _json; }
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
AudioOutputI2S
|
||||
Base class for I2S interface port
|
||||
|
||||
|
||||
Copyright (C) 2017 Earle F. Philhower, III
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
@ -48,11 +48,13 @@ AudioOutputI2S::AudioOutputI2S(int port, int output_mode, int dma_buf_count, int
|
||||
}
|
||||
|
||||
i2s_mode_t mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX);
|
||||
#if CONFIG_IDF_TARGET_ESP32 // ESP32/PICO-D4
|
||||
if (output_mode == INTERNAL_DAC) {
|
||||
mode = (i2s_mode_t)(mode | I2S_MODE_DAC_BUILT_IN);
|
||||
} else if (output_mode == INTERNAL_PDM) {
|
||||
mode = (i2s_mode_t)(mode | I2S_MODE_PDM);
|
||||
}
|
||||
#endif
|
||||
|
||||
i2s_comm_format_t comm_fmt = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB);
|
||||
if (output_mode == INTERNAL_DAC) {
|
||||
@ -81,7 +83,7 @@ AudioOutputI2S::AudioOutputI2S(int port, int output_mode, int dma_buf_count, int
|
||||
SetPinout(26, 25, 22);
|
||||
}
|
||||
i2s_zero_dma_buffer((i2s_port_t)portNo);
|
||||
}
|
||||
}
|
||||
#else
|
||||
(void) dma_buf_count;
|
||||
(void) use_apll;
|
||||
@ -138,7 +140,7 @@ bool AudioOutputI2S::SetRate(int hz)
|
||||
// TODO - have a list of allowable rates from constructor, check them
|
||||
this->hertz = hz;
|
||||
#ifdef ESP32
|
||||
i2s_set_sample_rates((i2s_port_t)portNo, AdjustI2SRate(hz));
|
||||
i2s_set_sample_rates((i2s_port_t)portNo, AdjustI2SRate(hz));
|
||||
#else
|
||||
i2s_set_rate(AdjustI2SRate(hz));
|
||||
#endif
|
||||
@ -192,7 +194,11 @@ bool AudioOutputI2S::ConsumeSample(int16_t sample[2])
|
||||
} else {
|
||||
s32 = ((Amplify(ms[RIGHTCHANNEL]))<<16) | (Amplify(ms[LEFTCHANNEL]) & 0xffff);
|
||||
}
|
||||
return i2s_write_bytes((i2s_port_t)portNo, (const char*)&s32, sizeof(uint32_t), 0);
|
||||
// Deprecated. Use i2s_write
|
||||
// return i2s_write_bytes((i2s_port_t)portNo, (const char*)&s32, sizeof(uint32_t), 0);
|
||||
size_t bytes_written;
|
||||
i2s_write((i2s_port_t)portNo, (const char*)&s32, sizeof(uint32_t), &bytes_written, 0);
|
||||
return bytes_written;
|
||||
#else
|
||||
uint32_t s32 = ((Amplify(ms[RIGHTCHANNEL]))<<16) | (Amplify(ms[LEFTCHANNEL]) & 0xffff);
|
||||
return i2s_write_sample_nb(s32); // If we can't store it, return false. OTW true
|
||||
@ -219,5 +225,3 @@ bool AudioOutputI2S::stop()
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
AudioOutputI2SNoDAC
|
||||
Audio player using SW delta-sigma to generate "analog" on I2S data
|
||||
|
||||
|
||||
Copyright (C) 2017 Earle F. Philhower, III
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
@ -66,7 +66,7 @@ void AudioOutputI2SNoDAC::DeltaSigma(int16_t sample[2], uint32_t dsBuff[8])
|
||||
|
||||
for (int j = 0; j < oversample32; j++) {
|
||||
uint32_t bits = 0; // The bits we convert the sample into, MSB to go on the wire first
|
||||
|
||||
|
||||
for (int i = 32; i > 0; i--) {
|
||||
bits = bits << 1;
|
||||
if (cumErr < 0) {
|
||||
@ -95,9 +95,14 @@ bool AudioOutputI2SNoDAC::ConsumeSample(int16_t sample[2])
|
||||
|
||||
// Either send complete pulse stream or nothing
|
||||
#ifdef ESP32
|
||||
if (!i2s_write_bytes((i2s_port_t)portNo, (const char *)dsBuff, sizeof(uint32_t) * (oversample/32), 0))
|
||||
|
||||
// Deprecated. Use i2s_write
|
||||
// if (!i2s_write_bytes((i2s_port_t)portNo, (const char *)dsBuff, sizeof(uint32_t) * (oversample/32), 0))
|
||||
size_t bytes_written;
|
||||
i2s_write((i2s_port_t)portNo, (const char *)dsBuff, sizeof(uint32_t) * (oversample/32), &bytes_written, 0);
|
||||
if (!bytes_written)
|
||||
return false;
|
||||
#else
|
||||
#else
|
||||
if (!i2s_write_sample_nb(dsBuff[0])) return false; // No room at the inn
|
||||
// At this point we've sent in first of possibly 8 32-bits, need to send
|
||||
// remaining ones even if they block.
|
||||
|
@ -2,7 +2,7 @@
|
||||
#define RECITERTABS_H
|
||||
|
||||
#include <pgmspace.h>
|
||||
#include "debug.h"
|
||||
#include "samdebug.h"
|
||||
#if sam_debug
|
||||
#define PROGMEM
|
||||
#endif
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include <string.h> // strlen()
|
||||
//#include <stdlib.h>
|
||||
#include <stddef.h> // define NULL
|
||||
#include "debug.h"
|
||||
#include "samdebug.h"
|
||||
#include "sam.h"
|
||||
#include "render.h"
|
||||
#include "SamTabs.h"
|
||||
|
@ -1,4 +0,0 @@
|
||||
<map id="IRNeoclimaAc" name="IRNeoclimaAc">
|
||||
<area shape="rect" id="node1" title="Class for handling detailed Neoclima A/C messages." alt="" coords="5,95,119,121"/>
|
||||
<area shape="rect" id="node2" href="$classIRsend.html" title="Class for sending all basic IR protocols." alt="" coords="29,5,95,32"/>
|
||||
</map>
|
@ -1 +0,0 @@
|
||||
1e6ee18f808b645d10f6652b3a78aca2
|
Binary file not shown.
Before Width: | Height: | Size: 3.3 KiB |
@ -1,4 +0,0 @@
|
||||
<map id="IRSamsungAc" name="IRSamsungAc">
|
||||
<area shape="rect" id="node1" title="Class for handling detailed Samsung A/C messages." alt="" coords="5,95,116,121"/>
|
||||
<area shape="rect" id="node2" href="$classIRsend.html" title="Class for sending all basic IR protocols." alt="" coords="27,5,94,32"/>
|
||||
</map>
|
@ -1 +0,0 @@
|
||||
383f10b4ef1888fea2358fde261598f6
|
Binary file not shown.
Before Width: | Height: | Size: 3.6 KiB |
@ -1,4 +0,0 @@
|
||||
<map id="IRSanyoAc" name="IRSanyoAc">
|
||||
<area shape="rect" id="node1" title="Class for handling detailed Sanyo A/C messages." alt="" coords="5,95,96,121"/>
|
||||
<area shape="rect" id="node2" href="$classIRsend.html" title="Class for sending all basic IR protocols." alt="" coords="17,5,84,32"/>
|
||||
</map>
|
@ -1 +0,0 @@
|
||||
f6001a30fa104f98434d740081ebee62
|
Binary file not shown.
Before Width: | Height: | Size: 3.4 KiB |
@ -1,4 +0,0 @@
|
||||
<map id="IRSharpAc" name="IRSharpAc">
|
||||
<area shape="rect" id="node1" title="Class for handling detailed Sharp A/C messages." alt="" coords="5,95,93,121"/>
|
||||
<area shape="rect" id="node2" href="$classIRsend.html" title="Class for sending all basic IR protocols." alt="" coords="16,5,83,32"/>
|
||||
</map>
|
@ -1 +0,0 @@
|
||||
a87b7a535dbb4358d51525a2278a117d
|
Binary file not shown.
Before Width: | Height: | Size: 3.3 KiB |
@ -1,27 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['pad_3157',['pad',['../unionDaikin2Protocol.html#ac6b425dc516537ae3178583ff26e0948',1,'Daikin2Protocol::pad()'],['../unionDaikin128Protocol.html#aeef026f1ecb9696a7bf01b17de88951e',1,'Daikin128Protocol::pad()'],['../unionHitachi1Protocol.html#a17a8788deccc8c3648b91be5de4e1964',1,'Hitachi1Protocol::pad()'],['../unionMitsubishi136Protocol.html#a66638db2b4d4c1d969d0c6809b991ed0',1,'Mitsubishi136Protocol::pad()']]],
|
||||
['pad0_3158',['pad0',['../unionDaikin216Protocol.html#ac7e3625c88ded6bf5e9e744b78af3877',1,'Daikin216Protocol::pad0()'],['../unionDaikin160Protocol.html#a422b94d3ddc17dafac919a04b6779e0e',1,'Daikin160Protocol::pad0()'],['../unionDaikin176Protocol.html#a1c883c0473df6419fa79d9e7ec044400',1,'Daikin176Protocol::pad0()'],['../unionDaikin152Protocol.html#accd26b9ae5a2b4689b1d44715cdedae5',1,'Daikin152Protocol::pad0()'],['../unionHitachiProtocol.html#a9141747df7882925a8442ae0f261e1cc',1,'HitachiProtocol::pad0()'],['../unionHitachi424Protocol.html#aca5baed417c2c06be4e912c596b5cacf',1,'Hitachi424Protocol::pad0()'],['../unionKelvinatorProtocol.html#aa67bf941395c4a614f8cc70ce29bffcf',1,'KelvinatorProtocol::pad0()'],['../unionMitsubishi144Protocol.html#a7771c9cd00799d3bed0ee73d3a3172bd',1,'Mitsubishi144Protocol::pad0()'],['../unionMitsubishi112Protocol.html#a07a1682430a0a2c63614d09ad0a7a5a0',1,'Mitsubishi112Protocol::pad0()']]],
|
||||
['pad1_3159',['pad1',['../unionDaikin216Protocol.html#a3953e06ed7903c50cdfa7fa4dad77c93',1,'Daikin216Protocol::pad1()'],['../unionDaikin160Protocol.html#a55ae3e21ecc536fdeb8f773beaedf1bf',1,'Daikin160Protocol::pad1()'],['../unionDaikin176Protocol.html#a336e5ffedd9eda2778f8e1652cd3f349',1,'Daikin176Protocol::pad1()'],['../unionDaikin152Protocol.html#a4c24a70b48139610acb457eb915e76bf',1,'Daikin152Protocol::pad1()'],['../unionHitachiProtocol.html#a28391ab1e1994d254d9abf057c2b87ba',1,'HitachiProtocol::pad1()'],['../unionHitachi424Protocol.html#abb196383de210b25ec3d56b7f02ca9c3',1,'Hitachi424Protocol::pad1()'],['../unionKelvinatorProtocol.html#a9feee780a54bfb86968f137080d3d68e',1,'KelvinatorProtocol::pad1()'],['../unionMitsubishi144Protocol.html#ad256f8e7f36c654002807b7fbb5038dd',1,'Mitsubishi144Protocol::pad1()'],['../unionMitsubishi112Protocol.html#af5c30781b3183c3530b4e401952a5666',1,'Mitsubishi112Protocol::pad1()']]],
|
||||
['pad2_3160',['pad2',['../unionDaikin216Protocol.html#a2ad46cbab590d8ce0fcf43004a77a759',1,'Daikin216Protocol::pad2()'],['../unionDaikin160Protocol.html#a9465c279ea0be201cf8417fe3ede965d',1,'Daikin160Protocol::pad2()'],['../unionDaikin176Protocol.html#aae23dc257ea77a204fd2b6b22c9fd91b',1,'Daikin176Protocol::pad2()'],['../unionDaikin152Protocol.html#ab66afe90c383d6a24224327a88a10acc',1,'Daikin152Protocol::pad2()'],['../unionHitachi424Protocol.html#ab8325b434d355655f432d1d400a651ee',1,'Hitachi424Protocol::pad2()']]],
|
||||
['pad3_3161',['pad3',['../unionDaikin216Protocol.html#aeef7d4b689a7dccc73c201d1b5d96a2f',1,'Daikin216Protocol::pad3()'],['../unionDaikin176Protocol.html#a9959937c9a6bffc149060886f1ebb9b3',1,'Daikin176Protocol::pad3()']]],
|
||||
['padding_3162',['padding',['../unionmagiquest.html#a28ca4be56c78ef762f87171506dc6e93',1,'magiquest']]],
|
||||
['panasonic_3163',['panasonic',['../classIRac.html#af873db2b9735127eb6f079861daed67a',1,'IRac::panasonic()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadaf87c99938d26a1f77d4f082c070d4660',1,'PANASONIC(): IRremoteESP8266.h']]],
|
||||
['panasonic_5fac_3164',['PANASONIC_AC',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada02178d0c70511011d5f381291bb7e491',1,'IRremoteESP8266.h']]],
|
||||
['panasonic_5fac32_3165',['PANASONIC_AC32',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada790ec65ea3e5d3ef9dc19614521c889e',1,'IRremoteESP8266.h']]],
|
||||
['panasonic_5fac_5fremote_5fmodel_5ft_3166',['panasonic_ac_remote_model_t',['../IRsend_8h.html#a1b797a5e5176ac0eef49810bf7f40e6f',1,'IRsend.h']]],
|
||||
['periodoffset_3167',['periodOffset',['../classIRsend.html#a1b5180cbf4f88f19fca3f677e1e91b96',1,'IRsend']]],
|
||||
['pioneer_3168',['PIONEER',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadadf49fef8f6e9740c92af2e25384f7846',1,'IRremoteESP8266.h']]],
|
||||
['power_3169',['power',['../structstdAc_1_1state__t.html#ab85d37cc99bbbc4915331369c4ea622e',1,'stdAc::state_t::power()'],['../unionAmcorProtocol.html#ab6d6b470c8e3c80ee37eb31a048919db',1,'AmcorProtocol::Power()'],['../unionArgoProtocol.html#a72c5dbd39ccbac31d5cfc39beaa87d92',1,'ArgoProtocol::Power()'],['../unionCarrierProtocol.html#a9f039bf33bbe868118f14c28d6731718',1,'CarrierProtocol::Power()'],['../unionCoronaProtocol.html#a7da68dc07f9ef4ab0545e9156f9408c4',1,'CoronaProtocol::Power()'],['../unionDaikinESPProtocol.html#a8a5b839b9908359b382a105068eaf840',1,'DaikinESPProtocol::Power()'],['../unionDaikin2Protocol.html#a31d4d361af1f3c7f6eb4021a520f4572',1,'Daikin2Protocol::Power()'],['../unionDaikin216Protocol.html#ade14eb9841ea4bc09157b145145bfda8',1,'Daikin216Protocol::Power()'],['../unionDaikin160Protocol.html#a520571b287c0db8a941fc1f9e030ef0c',1,'Daikin160Protocol::Power()'],['../unionDaikin176Protocol.html#a80fd9f79014f0fe3f2fa91ee6a3e7bc2',1,'Daikin176Protocol::Power()'],['../unionDaikin128Protocol.html#aba3cecc50eee1143e2f6eadd6d2026b4',1,'Daikin128Protocol::Power()'],['../unionDaikin152Protocol.html#a5cdf563830a35ee28d239d912bd5c95c',1,'Daikin152Protocol::Power()'],['../unionDaikin64Protocol.html#a4290051abed062bb5993db071a28ef61',1,'Daikin64Protocol::Power()'],['../unionDelonghiProtocol.html#a5dccd7aa1927571e12d4244e1c179578',1,'DelonghiProtocol::Power()'],['../unionElectraProtocol.html#a907a426aa30a50667d5e4f4615d71518',1,'ElectraProtocol::Power()'],['../unionGoodweatherProtocol.html#ac3a2cf92410edd8ad11550f6aa051bac',1,'GoodweatherProtocol::Power()'],['../unionGreeProtocol.html#ab04d1d5bdaf8fb0b7129e210de14a772',1,'GreeProtocol::Power()'],['../unionHaierYRW02Protocol.html#ae87a93806911792662391a671607a760',1,'HaierYRW02Protocol::Power()'],['../unionHitachiProtocol.html#abec059afed0891f40f50b1024f211ee1',1,'HitachiProtocol::Power()'],['../unionHitachi424Protocol.html#a03af2b7a7c333c9069c4a689631cbc84',1,'Hitachi424Protocol::Power()'],['../unionHitachi1Protocol.html#a67b84f1d4c3720692e8de833b3910b88',1,'Hitachi1Protocol::Power()'],['../unionKelvinatorProtocol.html#a4bc98c7ae62273e8d8d60d71fdb44750',1,'KelvinatorProtocol::Power()'],['../unionLGProtocol.html#a5748d31340964b885933fbb6ee7fd235',1,'LGProtocol::Power()'],['../unionMideaProtocol.html#a6b534bb5845c3c184ee43b87995cff32',1,'MideaProtocol::Power()'],['../unionMitsubishi144Protocol.html#af99f269ce1b905c47b9417c41189c94b',1,'Mitsubishi144Protocol::Power()'],['../unionMitsubishi136Protocol.html#aa5df3d147cbd1c2dd3f17028c0ff36dc',1,'Mitsubishi136Protocol::Power()'],['../unionMitsubishi112Protocol.html#ad4c47f745c6ff6a349457ccc66f4e091',1,'Mitsubishi112Protocol::Power()'],['../unionMitsubishi152Protocol.html#abb8ac556d7ead5d1083af940130a9805',1,'Mitsubishi152Protocol::Power()'],['../unionMitsubishi88Protocol.html#a48eb181bcb178491d0cd399d69487f2b',1,'Mitsubishi88Protocol::Power()'],['../unionVoltasProtocol.html#a554e4bce95426a096f090cc6890f46f2',1,'VoltasProtocol::Power()']]],
|
||||
['power2_3170',['Power2',['../unionDaikin2Protocol.html#ad38268911be9104ab7fcaf0d35dd4c6f',1,'Daikin2Protocol']]],
|
||||
['powerbutton_3171',['PowerButton',['../unionCoronaProtocol.html#abceccc1306d3a78be6177758f3056a5a',1,'CoronaProtocol']]],
|
||||
['powerflag_3172',['powerFlag',['../classIRCoolixAC.html#a5984ff64ff14df92291618a647da08f9',1,'IRCoolixAC::powerFlag()'],['../classIRTranscoldAc.html#a07e96c352827f011a1a2440f35d78d14',1,'IRTranscoldAc::powerFlag()']]],
|
||||
['powerful_3173',['Powerful',['../unionDaikinESPProtocol.html#a16b091d1faf200607bd37ff48ddfb940',1,'DaikinESPProtocol::Powerful()'],['../unionDaikin2Protocol.html#ac7b3b9d7f424ccc78749d944b59c7372',1,'Daikin2Protocol::Powerful()'],['../unionDaikin216Protocol.html#a2cb72f5fea3b5298b8de45060c476a17',1,'Daikin216Protocol::Powerful()'],['../unionDaikin152Protocol.html#aa4cdbef46c721491cb854b36d6de89a3',1,'Daikin152Protocol::Powerful()']]],
|
||||
['powertoggle_3174',['PowerToggle',['../unionAirwellProtocol.html#a9a3893a0ec7811202697adeb60d89775',1,'AirwellProtocol::PowerToggle()'],['../unionHitachi1Protocol.html#adf8067b7e2d7ea3afb6ffae08a9cf609',1,'Hitachi1Protocol::PowerToggle()']]],
|
||||
['prefix_3175',['Prefix',['../unionHaierProtocol.html#a6c15a8e22231dae23ffa8bef78420054',1,'HaierProtocol::Prefix()'],['../unionHaierYRW02Protocol.html#af55185fad3229f2011b5917412ad8c1b',1,'HaierYRW02Protocol::Prefix()']]],
|
||||
['prev_5fmode_3176',['prev_mode',['../classIRToshibaAC.html#ac251884741fb8ad8280b55e99c23211e',1,'IRToshibaAC']]],
|
||||
['pronto_3177',['PRONTO',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada5b68c32f80c4afa6e61039843b2d1f97',1,'IRremoteESP8266.h']]],
|
||||
['protocol_3178',['protocol',['../structstdAc_1_1state__t.html#af59897778be0e571f77dd11337352c27',1,'stdAc::state_t']]],
|
||||
['pt_2dbr_2eh_3179',['pt-BR.h',['../pt-BR_8h.html',1,'']]],
|
||||
['purify_3180',['Purify',['../unionDaikin2Protocol.html#ad3c5427e7d4d0182bb86f61fa2c2484a',1,'Daikin2Protocol']]]
|
||||
];
|
@ -1,14 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['uint64tostring_3530',['uint64ToString',['../IRutils_8cpp.html#a9f6ddef74b41ef6f8d2805fcfc396420',1,'uint64ToString(uint64_t input, uint8_t base): IRutils.cpp'],['../IRutils_8h.html#a781650451d38303e80da677539f574ee',1,'uint64ToString(uint64_t input, uint8_t base=10): IRutils.cpp']]],
|
||||
['uint8tobcd_3531',['uint8ToBcd',['../namespaceirutils.html#a534704a52b75acd46f687cc0a2b91bf1',1,'irutils']]],
|
||||
['unknown_3532',['unknown',['../unionHaierProtocol.html#aabc2a684c5936858544c02ec8a68afb9',1,'HaierProtocol::unknown()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada6ce26a62afab55d7606ad4e92428b30c',1,'UNKNOWN(): IRremoteESP8266.h']]],
|
||||
['unknown1_3533',['unknown1',['../unionGreeProtocol.html#ae973c1c723b7162959374e1fd8ecab61',1,'GreeProtocol']]],
|
||||
['unknown2_3534',['unknown2',['../unionGreeProtocol.html#aa102f7d68c26f5b8644b13113a5b05f4',1,'GreeProtocol']]],
|
||||
['unused_3535',['UNUSED',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadaa09b651ef326a9d8efcee5cc5b720ab4',1,'IRremoteESP8266.h']]],
|
||||
['updateandsavestate_3536',['updateAndSaveState',['../classIRCoolixAC.html#a2681a6affc5fb542584b1ef241bc38af',1,'IRCoolixAC']]],
|
||||
['updatesavedstate_3537',['updateSavedState',['../classIRTranscoldAc.html#a64eedf758c2564865add8c86f10e24ec',1,'IRTranscoldAc']]],
|
||||
['use_5ftime_5fstate_3538',['use_time_state',['../classIRVestelAc.html#af1b622c50a4952fb3edaf483e1bf9328',1,'IRVestelAc']]],
|
||||
['used_3539',['used',['../structmatch__result__t.html#a26cea305aa83ed65b88ac0b6ed6de54a',1,'match_result_t']]],
|
||||
['usefahrenheit_3540',['UseFahrenheit',['../unionGreeProtocol.html#a47c79761efe40c00e6bb01b7712b272c',1,'GreeProtocol::UseFahrenheit()'],['../unionMideaProtocol.html#a1b1258107620bb83fd6356815242e19b',1,'MideaProtocol::useFahrenheit()']]]
|
||||
];
|
@ -1,12 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['wall_3553',['Wall',['../unionDaikin128Protocol.html#aed2c5bc365820f2c0a5f27dd68fa8a05',1,'Daikin128Protocol']]],
|
||||
['wand_5fid_3554',['wand_id',['../unionmagiquest.html#a1b159cd47635d548e1d4198cd6d41e93',1,'magiquest']]],
|
||||
['weeklytimer_3555',['WeeklyTimer',['../unionDaikinESPProtocol.html#a25e632da82856caebd233699fda8d796',1,'DaikinESPProtocol']]],
|
||||
['whirlpool_3556',['whirlpool',['../classIRac.html#ae5f7a03589f614c03c5ad8629100b05a',1,'IRac']]],
|
||||
['whirlpool_5fac_3557',['WHIRLPOOL_AC',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada9faf927323d110269541b356f079b85a',1,'IRremoteESP8266.h']]],
|
||||
['whirlpool_5fac_5fremote_5fmodel_5ft_3558',['whirlpool_ac_remote_model_t',['../IRsend_8h.html#ab4e3ebf2fdf3c6a46da89a3e6ebcd2e2',1,'IRsend.h']]],
|
||||
['whynter_3559',['WHYNTER',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada458cdd7fa2b29dc8617c694696580c0c',1,'IRremoteESP8266.h']]],
|
||||
['widevane_3560',['WideVane',['../unionMitsubishi144Protocol.html#ad0c48e95ca7e0658edf7c2ac2b541c3c',1,'Mitsubishi144Protocol']]],
|
||||
['wifi_3561',['Wifi',['../unionVoltasProtocol.html#aae1406825a156f159c5ad4b28d20364c',1,'VoltasProtocol::Wifi()'],['../unionGreeProtocol.html#a6cf8e0a6c54a5d2b6f14074c6f3dcc92',1,'GreeProtocol::WiFi()']]]
|
||||
];
|
@ -1,7 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['zepeal_3566',['ZEPEAL',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada1622e3d0835b4d47add716811c7bf797',1,'IRremoteESP8266.h']]],
|
||||
['zh_2dcn_2eh_3567',['zh-CN.h',['../zh-CN_8h.html',1,'']]],
|
||||
['zonefollow1_3568',['ZoneFollow1',['../unionCoolixProtocol.html#a5f19a21823bbdb6d5deceb03db0d3d5b',1,'CoolixProtocol']]],
|
||||
['zonefollow2_3569',['ZoneFollow2',['../unionCoolixProtocol.html#ade33ba99bcfcf9d7dac334e56e9bb167',1,'CoolixProtocol']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['_7eirrecv_3570',['~IRrecv',['../classIRrecv.html#a87d4cca5e350177cb0922842dda1eb5b',1,'IRrecv']]]
|
||||
];
|
@ -1,135 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['d_184',['D',['../unionMitsubishi152Protocol.html#ac493830f3bf09e178aa09b24368746c9',1,'Mitsubishi152Protocol']]],
|
||||
['daikin_185',['daikin',['../classIRac.html#afb6d77bbeb5b2465437cef4f58b83e0e',1,'IRac::daikin()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadad8dc0597fd237d7098246334f3b5f37e',1,'DAIKIN(): IRremoteESP8266.h']]],
|
||||
['daikin128_186',['daikin128',['../classIRac.html#a8fe7c254e1bcb32b6b6fdc1f91693a50',1,'IRac::daikin128()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada4b26fb376f6375dd6d1d4be186438f88',1,'DAIKIN128(): IRremoteESP8266.h']]],
|
||||
['daikin128protocol_187',['Daikin128Protocol',['../unionDaikin128Protocol.html',1,'']]],
|
||||
['daikin152_188',['daikin152',['../classIRac.html#a6dff8e608e3e9fecffe71c3fd1ebe74e',1,'IRac::daikin152()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadad3f5f7ca39aee5fdab671a1b0d647ae4',1,'DAIKIN152(): IRremoteESP8266.h']]],
|
||||
['daikin152protocol_189',['Daikin152Protocol',['../unionDaikin152Protocol.html',1,'']]],
|
||||
['daikin160_190',['daikin160',['../classIRac.html#a3b34f44d713efa52f30d43405cde831c',1,'IRac::daikin160()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada4db6a848df3aed4289801e1b2bbbf6aa',1,'DAIKIN160(): IRremoteESP8266.h']]],
|
||||
['daikin160protocol_191',['Daikin160Protocol',['../unionDaikin160Protocol.html',1,'']]],
|
||||
['daikin176_192',['daikin176',['../classIRac.html#aaae173fd58a7b53c3f4d2edbf7c4afe7',1,'IRac::daikin176()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada57f78a3b04d904f19d10bac13483deab',1,'DAIKIN176(): IRremoteESP8266.h']]],
|
||||
['daikin176protocol_193',['Daikin176Protocol',['../unionDaikin176Protocol.html',1,'']]],
|
||||
['daikin2_194',['daikin2',['../classIRac.html#a89eddc0e1b3c41c608208d2752dc954c',1,'IRac::daikin2()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadab37b344f84d575ec78a92ca55e153586',1,'DAIKIN2(): IRremoteESP8266.h']]],
|
||||
['daikin216_195',['daikin216',['../classIRac.html#a101ac8b9e9564e557ef1a1f61ff111d9',1,'IRac::daikin216()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadaa833fa3a20c3cbb7e6206dac4da30ffb',1,'DAIKIN216(): IRremoteESP8266.h']]],
|
||||
['daikin216protocol_196',['Daikin216Protocol',['../unionDaikin216Protocol.html',1,'']]],
|
||||
['daikin2protocol_197',['Daikin2Protocol',['../unionDaikin2Protocol.html',1,'']]],
|
||||
['daikin64_198',['daikin64',['../classIRac.html#a074db6fc0cff2878d80a397020e1b249',1,'IRac::daikin64()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada70581853ce4883b747d22fdfd74409c4',1,'DAIKIN64(): IRremoteESP8266.h']]],
|
||||
['daikin64protocol_199',['Daikin64Protocol',['../unionDaikin64Protocol.html',1,'']]],
|
||||
['daikinespprotocol_200',['DaikinESPProtocol',['../unionDaikinESPProtocol.html',1,'']]],
|
||||
['data_201',['data',['../structmatch__result__t.html#ae88be61a6d1ffa7c3525aa958f4c0d25',1,'match_result_t']]],
|
||||
['data0_202',['Data0',['../structCoronaSection.html#a975b14d8bc30807013714158ef7474ea',1,'CoronaSection']]],
|
||||
['data0inv_203',['Data0Inv',['../structCoronaSection.html#ab05024b8314929dcd8ccdda9b497be8c',1,'CoronaSection']]],
|
||||
['data1_204',['Data1',['../structCoronaSection.html#a59d97a1bc0a1be50b6f96c4d70673425',1,'CoronaSection']]],
|
||||
['data1inv_205',['Data1Inv',['../structCoronaSection.html#ada247bbfb60f24cd9e9a612c9621cbb4',1,'CoronaSection']]],
|
||||
['de_2dch_2eh_206',['de-CH.h',['../de-CH_8h.html',1,'']]],
|
||||
['de_2dde_2eh_207',['de-DE.h',['../de-DE_8h.html',1,'']]],
|
||||
['decode_208',['decode',['../classIRrecv.html#aeaa5c07a8b46f8fbb982f996cc1f9f4b',1,'IRrecv']]],
|
||||
['decode_5fresults_209',['decode_results',['../classdecode__results.html',1,'']]],
|
||||
['decode_5ftype_210',['decode_type',['../classdecode__results.html#a9c0e9f161b9c90dc10b7561d4c0b50fa',1,'decode_results']]],
|
||||
['decode_5ftype_5ft_211',['decode_type_t',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fad',1,'IRremoteESP8266.h']]],
|
||||
['decodeairwell_212',['decodeAirwell',['../classIRrecv.html#acf4635d5ee146a82498cb0c269b6af41',1,'IRrecv']]],
|
||||
['decodeaiwarct501_213',['decodeAiwaRCT501',['../classIRrecv.html#aa4d678376a4c0f8ea953474a6f5ef9d2',1,'IRrecv']]],
|
||||
['decodeamcor_214',['decodeAmcor',['../classIRrecv.html#a8d81fcfb47e36925975d313027689a44',1,'IRrecv']]],
|
||||
['decodeargo_215',['decodeArgo',['../classIRrecv.html#a94f12dc000a6e7b75ea8680fd48fc487',1,'IRrecv']]],
|
||||
['decodecarrierac_216',['decodeCarrierAC',['../classIRrecv.html#acf3d1c37038120a5c0996d92577ce74a',1,'IRrecv']]],
|
||||
['decodecarrierac40_217',['decodeCarrierAC40',['../classIRrecv.html#a4bdb35ec34f49401a6b9becd15b8a3b5',1,'IRrecv']]],
|
||||
['decodecarrierac64_218',['decodeCarrierAC64',['../classIRrecv.html#a79d03c31da48a385ab47cc8f342ef9b3',1,'IRrecv']]],
|
||||
['decodecoolix_219',['decodeCOOLIX',['../classIRrecv.html#a964af7e72e2133688f0596c718cb98ca',1,'IRrecv']]],
|
||||
['decodecoronaac_220',['decodeCoronaAc',['../classIRrecv.html#a981cba14551c93af57f9c1c0e1775d12',1,'IRrecv']]],
|
||||
['decodedaikin_221',['decodeDaikin',['../classIRrecv.html#a141f0de9f4cae8daeb025aff3904ecaa',1,'IRrecv']]],
|
||||
['decodedaikin128_222',['decodeDaikin128',['../classIRrecv.html#ac7188577c874d9f8f19304a3ec775415',1,'IRrecv']]],
|
||||
['decodedaikin152_223',['decodeDaikin152',['../classIRrecv.html#ab20a6586b4e56cc428012ec96f5ccc2c',1,'IRrecv']]],
|
||||
['decodedaikin160_224',['decodeDaikin160',['../classIRrecv.html#af0b9822defe6b29099079d664d9dc413',1,'IRrecv']]],
|
||||
['decodedaikin176_225',['decodeDaikin176',['../classIRrecv.html#aa142d1340201b6fdc5b462f46fe21ee0',1,'IRrecv']]],
|
||||
['decodedaikin2_226',['decodeDaikin2',['../classIRrecv.html#a4c4799a0d45ea5562159c46939617d80',1,'IRrecv']]],
|
||||
['decodedaikin216_227',['decodeDaikin216',['../classIRrecv.html#a7f860686a5c58aa8f4d1842cfb15b2f9',1,'IRrecv']]],
|
||||
['decodedaikin64_228',['decodeDaikin64',['../classIRrecv.html#a030701f081a9c6eab0c07b75433b524c',1,'IRrecv']]],
|
||||
['decodedelonghiac_229',['decodeDelonghiAc',['../classIRrecv.html#a8c91cc83770d243e942387cc16e9ca6f',1,'IRrecv']]],
|
||||
['decodedenon_230',['decodeDenon',['../classIRrecv.html#a0b1bd1c817cb43bc3755126191b7f4a2',1,'IRrecv']]],
|
||||
['decodedish_231',['decodeDISH',['../classIRrecv.html#a851776d9178aeb706d9a1abd3f254e31',1,'IRrecv']]],
|
||||
['decodedoshisha_232',['decodeDoshisha',['../classIRrecv.html#a675c45e6b32aaeca3de734ccf2f0c819',1,'IRrecv']]],
|
||||
['decodeelectraac_233',['decodeElectraAC',['../classIRrecv.html#ad3a7be8afc36451c8e28e27f3c3e9aaa',1,'IRrecv']]],
|
||||
['decodeelitescreens_234',['decodeElitescreens',['../classIRrecv.html#ac830ece2c2c200b8c13fcd66828e2846',1,'IRrecv']]],
|
||||
['decodeepson_235',['decodeEpson',['../classIRrecv.html#aaadef8415f273ba25f4086fecd681d2e',1,'IRrecv']]],
|
||||
['decodefujitsuac_236',['decodeFujitsuAC',['../classIRrecv.html#aa3778bdf994bf9c99ac48ef95434a826',1,'IRrecv']]],
|
||||
['decodegicable_237',['decodeGICable',['../classIRrecv.html#afade8dac9b1d023e5e0946e6b2c08aea',1,'IRrecv']]],
|
||||
['decodegoodweather_238',['decodeGoodweather',['../classIRrecv.html#a64650ce7dbaf5fc860a6a253d906e9de',1,'IRrecv']]],
|
||||
['decodegree_239',['decodeGree',['../classIRrecv.html#a2e756342d7524a13d53d6c656700638c',1,'IRrecv']]],
|
||||
['decodehaierac_240',['decodeHaierAC',['../classIRrecv.html#ad97403174f05197a7fa9a4a0107e3111',1,'IRrecv']]],
|
||||
['decodehaieracyrw02_241',['decodeHaierACYRW02',['../classIRrecv.html#a281fb9d972fee75db49209c42f649822',1,'IRrecv']]],
|
||||
['decodehash_242',['decodeHash',['../classIRrecv.html#a7c15fbfa7936ca474712a1953911fd06',1,'IRrecv']]],
|
||||
['decodehitachiac_243',['decodeHitachiAC',['../classIRrecv.html#aa42facfffc0e304005272b6ddd4583c8',1,'IRrecv']]],
|
||||
['decodehitachiac1_244',['decodeHitachiAC1',['../classIRrecv.html#a122e0dcbf14c90ec2d77399acce21459',1,'IRrecv']]],
|
||||
['decodehitachiac3_245',['decodeHitachiAc3',['../classIRrecv.html#a113bc834eff00f55d5545ce3fa1ab203',1,'IRrecv']]],
|
||||
['decodehitachiac424_246',['decodeHitachiAc424',['../classIRrecv.html#a01c3dda56d6d916076fa1affa2213129',1,'IRrecv']]],
|
||||
['decodeinax_247',['decodeInax',['../classIRrecv.html#a94545c6a8da027b9cb0e23ecba4c29d8',1,'IRrecv']]],
|
||||
['decodejvc_248',['decodeJVC',['../classIRrecv.html#a25ab71efc223a418e9630d8421f44bc9',1,'IRrecv']]],
|
||||
['decodekelvinator_249',['decodeKelvinator',['../classIRrecv.html#a0ac82f20b48b2d71ee07eb392578b226',1,'IRrecv']]],
|
||||
['decodelasertag_250',['decodeLasertag',['../classIRrecv.html#ae4af614a45ea65cb3304ef5bd7965122',1,'IRrecv']]],
|
||||
['decodelegopf_251',['decodeLegoPf',['../classIRrecv.html#aea75ad0ba1d8fec33de16501940f2553',1,'IRrecv']]],
|
||||
['decodelg_252',['decodeLG',['../classIRrecv.html#afe70015c36b1477a5de0c193163e13a7',1,'IRrecv']]],
|
||||
['decodelutron_253',['decodeLutron',['../classIRrecv.html#a6093c4404a9a9d415c5bfeab5ec53be5',1,'IRrecv']]],
|
||||
['decodemagiquest_254',['decodeMagiQuest',['../classIRrecv.html#a6f3bfcc6767484151dee758bcf94fb0b',1,'IRrecv']]],
|
||||
['decodemetz_255',['decodeMetz',['../classIRrecv.html#ac39aa52eec10d1c92b6e9713a22252b6',1,'IRrecv']]],
|
||||
['decodemidea_256',['decodeMidea',['../classIRrecv.html#a255b15601f7439a09ab5e77ad78816fb',1,'IRrecv']]],
|
||||
['decodemidea24_257',['decodeMidea24',['../classIRrecv.html#a62a04019308b29ae2aea4b3a83ba9155',1,'IRrecv']]],
|
||||
['decodemirage_258',['decodeMirage',['../classIRrecv.html#aa88813f830a6ff6bfd6e7bde6728a3d5',1,'IRrecv']]],
|
||||
['decodemitsubishi_259',['decodeMitsubishi',['../classIRrecv.html#a6efe3be80f0ebef3ff94ed0e56c5c52a',1,'IRrecv']]],
|
||||
['decodemitsubishi112_260',['decodeMitsubishi112',['../classIRrecv.html#ae0690ff3cb5a5cdcdb6a514bb7bf0cdd',1,'IRrecv']]],
|
||||
['decodemitsubishi136_261',['decodeMitsubishi136',['../classIRrecv.html#a87b3ee57dbdf762a0e305ddd43eec629',1,'IRrecv']]],
|
||||
['decodemitsubishi2_262',['decodeMitsubishi2',['../classIRrecv.html#a9514197850491a5b8c30ae9ffc89d895',1,'IRrecv']]],
|
||||
['decodemitsubishiac_263',['decodeMitsubishiAC',['../classIRrecv.html#a942c5f41df5cbff32a8b7703673cb621',1,'IRrecv']]],
|
||||
['decodemitsubishiheavy_264',['decodeMitsubishiHeavy',['../classIRrecv.html#aef9cedf79793806df4cc5376710781bc',1,'IRrecv']]],
|
||||
['decodemultibrackets_265',['decodeMultibrackets',['../classIRrecv.html#af61afacc9865232643164ba824e665ab',1,'IRrecv']]],
|
||||
['decodemwm_266',['decodeMWM',['../classIRrecv.html#a27518b5d792cdf3ab333b324f409f328',1,'IRrecv']]],
|
||||
['decodenec_267',['decodeNEC',['../classIRrecv.html#a52b844f80df7f64edf9ce9cc189ac5b9',1,'IRrecv']]],
|
||||
['decodeneoclima_268',['decodeNeoclima',['../classIRrecv.html#a4729ee949e533448b481ae33bbbf1adf',1,'IRrecv']]],
|
||||
['decodenikai_269',['decodeNikai',['../classIRrecv.html#abbcbf5fc07d7e37d7724acc37bb5f592',1,'IRrecv']]],
|
||||
['decodepanasonic_270',['decodePanasonic',['../classIRrecv.html#aa8dd5f24d28576c6db03cc463bd0a865',1,'IRrecv']]],
|
||||
['decodepanasonicac_271',['decodePanasonicAC',['../classIRrecv.html#a0f78e180ed731e8fb16d1c85aa721c95',1,'IRrecv']]],
|
||||
['decodepanasonicac32_272',['decodePanasonicAC32',['../classIRrecv.html#a89ce20e483b1297cae05ab1ae96d24ec',1,'IRrecv']]],
|
||||
['decodepioneer_273',['decodePioneer',['../classIRrecv.html#a78a9487cbe8a562392a07a4090b3091e',1,'IRrecv']]],
|
||||
['decoderc5_274',['decodeRC5',['../classIRrecv.html#adab9dffbeceee514520fababd0e721bd',1,'IRrecv']]],
|
||||
['decoderc6_275',['decodeRC6',['../classIRrecv.html#a67316499ef37db82e3b3ecaac25c5980',1,'IRrecv']]],
|
||||
['decodercmm_276',['decodeRCMM',['../classIRrecv.html#a0e7bf769cb5bebf174e852e4b0b08cf3',1,'IRrecv']]],
|
||||
['decodesamsung_277',['decodeSAMSUNG',['../classIRrecv.html#a18b6cf177364faf11b9a076dd2025eec',1,'IRrecv']]],
|
||||
['decodesamsung36_278',['decodeSamsung36',['../classIRrecv.html#a290a9e6a0b12ef1fe02a92a456c8ad57',1,'IRrecv']]],
|
||||
['decodesamsungac_279',['decodeSamsungAC',['../classIRrecv.html#ae779c76ebd0f3cd1fc13abaa55f80d67',1,'IRrecv']]],
|
||||
['decodesanyoac_280',['decodeSanyoAc',['../classIRrecv.html#ab6c02d8b8079d7f344e141e6a4e7e225',1,'IRrecv']]],
|
||||
['decodesanyolc7461_281',['decodeSanyoLC7461',['../classIRrecv.html#a01a165bf2e7d16dbbb916d1eae740bc5',1,'IRrecv']]],
|
||||
['decodesharp_282',['decodeSharp',['../classIRrecv.html#a3390d63ba21a835d7c74c261532a22a7',1,'IRrecv']]],
|
||||
['decodesharpac_283',['decodeSharpAc',['../classIRrecv.html#a8a9b920079f783e236f8a938e20b9743',1,'IRrecv']]],
|
||||
['decodesony_284',['decodeSony',['../classIRrecv.html#ab03227955cf7d1d00c1620c55d7f9f18',1,'IRrecv']]],
|
||||
['decodesymphony_285',['decodeSymphony',['../classIRrecv.html#a61cdf4d891654521afbc6ca9fb415745',1,'IRrecv']]],
|
||||
['decodetechnibelac_286',['decodeTechnibelAc',['../classIRrecv.html#a2f022741309ad814bf11aec440a838d0',1,'IRrecv']]],
|
||||
['decodeteco_287',['decodeTeco',['../classIRrecv.html#a950711d7df8dfe4cda86f53650cd9f56',1,'IRrecv']]],
|
||||
['decodetoshibaac_288',['decodeToshibaAC',['../classIRrecv.html#aae6ab687ae319ae50a52238916bcfb1a',1,'IRrecv']]],
|
||||
['decodetostate_289',['decodeToState',['../namespaceIRAcUtils.html#ac5eb498bf12cb6cba023c9c1e9726949',1,'IRAcUtils']]],
|
||||
['decodetranscold_290',['decodeTranscold',['../classIRrecv.html#a16c44538d7e01d9b118d983de39d18e3',1,'IRrecv']]],
|
||||
['decodetrotec_291',['decodeTrotec',['../classIRrecv.html#ae2920c488173f3fa37f5325438157ced',1,'IRrecv']]],
|
||||
['decodevestelac_292',['decodeVestelAc',['../classIRrecv.html#a5d48b3c91434c18c7726cca504d75b73',1,'IRrecv']]],
|
||||
['decodevoltas_293',['decodeVoltas',['../classIRrecv.html#a43539320036ba1c17e9875e4dc9fd055',1,'IRrecv']]],
|
||||
['decodewhirlpoolac_294',['decodeWhirlpoolAC',['../classIRrecv.html#a0d1eec83cf092f5621cb34b3e94777c4',1,'IRrecv']]],
|
||||
['decodewhynter_295',['decodeWhynter',['../classIRrecv.html#a66289f6a462557ad26e6c0a64f36cf02',1,'IRrecv']]],
|
||||
['decodezepeal_296',['decodeZepeal',['../classIRrecv.html#a72afd857c8b2e0192021a40afc96c2d8',1,'IRrecv']]],
|
||||
['defaultbits_297',['defaultBits',['../classIRsend.html#a70a2256bee8ad9b8ea8571dd4f26596f',1,'IRsend']]],
|
||||
['defaults_2eh_298',['defaults.h',['../defaults_8h.html',1,'']]],
|
||||
['degrees_299',['degrees',['../structstdAc_1_1state__t.html#a3d1ff0ff2e0035db4ee8ead5c53b2dbd',1,'stdAc::state_t']]],
|
||||
['delonghi_5fac_300',['DELONGHI_AC',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada149190c9dec98e9c3f4a2bd530b154a3',1,'IRremoteESP8266.h']]],
|
||||
['delonghiac_301',['delonghiac',['../classIRac.html#af290b0b08cff5121bb88c62051ed1074',1,'IRac']]],
|
||||
['delonghiprotocol_302',['DelonghiProtocol',['../unionDelonghiProtocol.html',1,'']]],
|
||||
['denon_303',['DENON',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada2bda37b76abb290d1675c3e027e3c2e1',1,'IRremoteESP8266.h']]],
|
||||
['deprecated_20list_304',['Deprecated List',['../deprecated.html',1,'']]],
|
||||
['dg11j13a_305',['DG11J13A',['../IRsend_8h.html#ab4e3ebf2fdf3c6a46da89a3e6ebcd2e2a868d69f0605cf9151b0163a3481e2fb9',1,'IRsend.h']]],
|
||||
['dg11j191_306',['DG11J191',['../IRsend_8h.html#ab4e3ebf2fdf3c6a46da89a3e6ebcd2e2adaecfc16f36975f231db2507a8a36c0c',1,'IRsend.h']]],
|
||||
['disableirin_307',['disableIRIn',['../classIRrecv.html#a9f4a719e756ad78c7dd47186f8bef087',1,'IRrecv']]],
|
||||
['disableofftimer_308',['disableOffTimer',['../classIRDaikinESP.html#a1e4e05ad0799002d0ab25db92dcaac06',1,'IRDaikinESP::disableOffTimer()'],['../classIRDaikin2.html#a8cbdbc0de31b14f974cd8cd87f3ca54a',1,'IRDaikin2::disableOffTimer()']]],
|
||||
['disableontimer_309',['disableOnTimer',['../classIRDaikinESP.html#a0733e4a15d76baac23493926ef1765b1',1,'IRDaikinESP::disableOnTimer()'],['../classIRDaikin2.html#a170a1e9ddb7873dc1392184a85387cc3',1,'IRDaikin2::disableOnTimer()']]],
|
||||
['disablesensor_310',['disableSensor',['../unionMideaProtocol.html#a20cc2079eae404c980cc75101b4a3116',1,'MideaProtocol']]],
|
||||
['disablesleeptimer_311',['disableSleepTimer',['../classIRDaikin2.html#a152532ef9d905e26930ae145a9623877',1,'IRDaikin2']]],
|
||||
['dish_312',['DISH',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadac27c6ac38ba872593af8e46ac2fdc85a',1,'IRremoteESP8266.h']]],
|
||||
['displaytemp_313',['DisplayTemp',['../unionGreeProtocol.html#ad0756a64f9c90c9dd12ca6cd71c78bb2',1,'GreeProtocol']]],
|
||||
['doshisha_314',['DOSHISHA',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadab4566b260773b60c85450f40fa5b4341',1,'IRremoteESP8266.h']]],
|
||||
['doxygen_5findex_2emd_315',['doxygen_index.md',['../doxygen__index_8md.html',1,'']]]
|
||||
];
|
@ -1,39 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['econo_316',['Econo',['../unionCoronaProtocol.html#a1076afecc4292c370fed27ce380a1ed5',1,'CoronaProtocol::Econo()'],['../unionDaikinESPProtocol.html#a29138c4ff722520ca23863568a96bf53',1,'DaikinESPProtocol::Econo()'],['../unionDaikin2Protocol.html#aa715d01b8972f98a41829ed976932ef7',1,'Daikin2Protocol::Econo()'],['../unionDaikin128Protocol.html#a8920f30a9d4bb0132762d80c8297d5f2',1,'Daikin128Protocol::Econo()'],['../unionDaikin152Protocol.html#ad9c7903f82a89b94e0c9dfe8b7298658',1,'Daikin152Protocol::Econo()'],['../unionVoltasProtocol.html#a4f44e3e3a68988d25173b2aab1c32e53',1,'VoltasProtocol::Econo()'],['../structstdAc_1_1state__t.html#a580c826c6d9671715adfe8445531b957',1,'stdAc::state_t::econo()']]],
|
||||
['elapsed_317',['elapsed',['../classIRtimer.html#ad655e585f053580d49d8de7d52cd62a1',1,'IRtimer::elapsed()'],['../classTimerMs.html#ad4aa759c58727393f69863b3461dfc09',1,'TimerMs::elapsed()']]],
|
||||
['electra_318',['electra',['../classIRac.html#abb847bd5e09feb293432b8a8cf0dd9de',1,'IRac']]],
|
||||
['electra_5fac_319',['ELECTRA_AC',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada05f193ef4ead3e54624bd92dc3203fac',1,'IRremoteESP8266.h']]],
|
||||
['electraprotocol_320',['ElectraProtocol',['../unionElectraProtocol.html',1,'']]],
|
||||
['elitescreens_321',['ELITESCREENS',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadafebe19d5453be4c99de8c031508b7cb1',1,'IRremoteESP8266.h']]],
|
||||
['en_2dau_2eh_322',['en-AU.h',['../en-AU_8h.html',1,'']]],
|
||||
['en_2die_2eh_323',['en-IE.h',['../en-IE_8h.html',1,'']]],
|
||||
['en_2duk_2eh_324',['en-UK.h',['../en-UK_8h.html',1,'']]],
|
||||
['en_2dus_2eh_325',['en-US.h',['../en-US_8h.html',1,'']]],
|
||||
['enableirin_326',['enableIRIn',['../classIRrecv.html#a52c05ec6d8f3dbfb75f21f3b4fe7be3d',1,'IRrecv']]],
|
||||
['enableirout_327',['enableIROut',['../classIRsend.html#ab3b6d36c9b5d26c400526717d433ed2d',1,'IRsend']]],
|
||||
['enableofftimer_328',['enableOffTimer',['../classIRDaikinESP.html#a8a5686066bfc86f1d7cc454e793d3357',1,'IRDaikinESP::enableOffTimer()'],['../classIRDaikin2.html#afc7ba7d7de2976e010a72778091d633a',1,'IRDaikin2::enableOffTimer()'],['../classIRWhirlpoolAc.html#abb1c3685d90d81b44e72050cd0e042f6',1,'IRWhirlpoolAc::enableOffTimer()']]],
|
||||
['enableontimer_329',['enableOnTimer',['../classIRDaikinESP.html#aac4d0f5f60c9f4c41d3bb1e0f24bc4bc',1,'IRDaikinESP::enableOnTimer()'],['../classIRDaikin2.html#a91ec5f7c67cb87102a5eb030e0763b50',1,'IRDaikin2::enableOnTimer()'],['../classIRWhirlpoolAc.html#aa3edd58882cf4fc65172e490c9e0bb2e',1,'IRWhirlpoolAc::enableOnTimer()']]],
|
||||
['enablesleeptimer_330',['enableSleepTimer',['../classIRDaikin2.html#a9c86782a98a54818ae92419eec5a060b',1,'IRDaikin2']]],
|
||||
['enabletimer_331',['enableTimer',['../classIRWhirlpoolAc.html#ad07804318721bc5dd60f7322e02c9696',1,'IRWhirlpoolAc']]],
|
||||
['encodedoshisha_332',['encodeDoshisha',['../classIRsend.html#a0522a2256e8358df715065530be6317d',1,'IRsend']]],
|
||||
['encodejvc_333',['encodeJVC',['../classIRsend.html#a6303b991c0545443e7ccf63ba89dbf18',1,'IRsend']]],
|
||||
['encodelg_334',['encodeLG',['../classIRsend.html#a109b67a68e7a33900cb5c5017ed4578b',1,'IRsend']]],
|
||||
['encodemagiquest_335',['encodeMagiQuest',['../classIRsend.html#a4ee40126279dbde8bb02888115577563',1,'IRsend']]],
|
||||
['encodemetz_336',['encodeMetz',['../classIRsend.html#a99c88ec9f8426003738a9a1682595b9a',1,'IRsend']]],
|
||||
['encodenec_337',['encodeNEC',['../classIRsend.html#ab2e1ce918e4e06b955c3d2a089ce189c',1,'IRsend']]],
|
||||
['encodepanasonic_338',['encodePanasonic',['../classIRsend.html#a8340497ae75f00c844e53dfc73700d9c',1,'IRsend']]],
|
||||
['encodepioneer_339',['encodePioneer',['../classIRsend.html#ae0686829eba31587b71034a1c0495971',1,'IRsend']]],
|
||||
['encoderc5_340',['encodeRC5',['../classIRsend.html#a88457fd4cc01d6e8097e04c022ede74a',1,'IRsend']]],
|
||||
['encoderc5x_341',['encodeRC5X',['../classIRsend.html#ae760ef1be11f25f7a61237f96a8871d9',1,'IRsend']]],
|
||||
['encoderc6_342',['encodeRC6',['../classIRsend.html#ac0e341462426ea146b944502a6d3fde0',1,'IRsend']]],
|
||||
['encodesamsung_343',['encodeSAMSUNG',['../classIRsend.html#a4ab0579bd854306b2667de19207e4ffb',1,'IRsend']]],
|
||||
['encodesanyolc7461_344',['encodeSanyoLC7461',['../classIRsend.html#a864bef0dc48f6af4b59057362906cf5d',1,'IRsend']]],
|
||||
['encodesharp_345',['encodeSharp',['../classIRsend.html#a8f4c7a36380ba31155eba5ff8f5f631e',1,'IRsend']]],
|
||||
['encodesony_346',['encodeSony',['../classIRsend.html#aa0aea2cb04f0a7ee9056f15fecfc08c3',1,'IRsend']]],
|
||||
['encodetime_347',['encodeTime',['../classIRPanasonicAc.html#a0eee4ad6105d35ee6c34c4666174b04b',1,'IRPanasonicAc']]],
|
||||
['epson_348',['EPSON',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadaaf677fd380c38297264a10732631927c',1,'IRremoteESP8266.h']]],
|
||||
['es_2des_2eh_349',['es-ES.h',['../es-ES_8h.html',1,'']]],
|
||||
['eye_350',['Eye',['../unionDaikin2Protocol.html#aa8351138b8db3b8be5f40d1515802381',1,'Daikin2Protocol']]],
|
||||
['eyeauto_351',['EyeAuto',['../unionDaikin2Protocol.html#a22f2288452065069018bef94d2505ab7',1,'Daikin2Protocol']]]
|
||||
];
|
@ -1,34 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['haier_495',['haier',['../classIRac.html#ae0a29a4cb8c7a4707a7725c576822a58',1,'IRac']]],
|
||||
['haier_5fac_496',['HAIER_AC',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada1f232bcdf330ec2e353196941b9f1628',1,'IRremoteESP8266.h']]],
|
||||
['haier_5fac_5fyrw02_497',['HAIER_AC_YRW02',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadaacda5821835865551f6df46c76282fa4',1,'IRremoteESP8266.h']]],
|
||||
['haierprotocol_498',['HaierProtocol',['../unionHaierProtocol.html',1,'']]],
|
||||
['haieryrw02protocol_499',['HaierYRW02Protocol',['../unionHaierYRW02Protocol.html',1,'']]],
|
||||
['haieryrwo2_500',['haierYrwo2',['../classIRac.html#a7bc779a162dd9a1b4c925febec443353',1,'IRac']]],
|
||||
['handlespecialstate_501',['handleSpecialState',['../classIRCoolixAC.html#af78090c6d8b45b4202a80f1223640390',1,'IRCoolixAC::handleSpecialState()'],['../classIRTranscoldAc.html#a01a3e3f8f92b8fb3b6d023e595f3ce17',1,'IRTranscoldAc::handleSpecialState()']]],
|
||||
['handletoggles_502',['handleToggles',['../classIRac.html#a36833999dce4ad608a5a0f084988cfd1',1,'IRac']]],
|
||||
['hasacstate_503',['hasACState',['../IRutils_8cpp.html#a6efd4986db60709d3501606ec7ab5382',1,'hasACState(const decode_type_t protocol): IRutils.cpp'],['../IRutils_8h.html#a6efd4986db60709d3501606ec7ab5382',1,'hasACState(const decode_type_t protocol): IRutils.cpp']]],
|
||||
['hasinvertedstates_504',['hasInvertedStates',['../classIRHitachiAc3.html#ac06b36245c85480d97c1a9f49cfaa005',1,'IRHitachiAc3']]],
|
||||
['hasstatechanged_505',['hasStateChanged',['../classIRac.html#a35258c35a2d2b19886292b22b2aa053a',1,'IRac']]],
|
||||
['header_506',['Header',['../unionMideaProtocol.html#a892508b7b4cade91dd2e315b678f5f1b',1,'MideaProtocol']]],
|
||||
['header0_507',['Header0',['../structCoronaSection.html#a3b3c0a1a42da65bb4b481e59b42f26a6',1,'CoronaSection']]],
|
||||
['header1_508',['Header1',['../structCoronaSection.html#a3d6d6c1e31f82a76cd88f81bcdb83a3a',1,'CoronaSection']]],
|
||||
['health_509',['Health',['../unionHaierProtocol.html#a4cf70c633e33066e3fc0f98bb2ad3820',1,'HaierProtocol::Health()'],['../unionHaierYRW02Protocol.html#a7fa39803fd72a788736bb8f00acfa76f',1,'HaierYRW02Protocol::Health()']]],
|
||||
['heat_5fmode_510',['heat_mode',['../classIRArgoAC.html#a255762f71502b9ffeb0686759991ec53',1,'IRArgoAC']]],
|
||||
['hitachi_511',['hitachi',['../classIRac.html#acd0f2fcf03aabf947a19a195000add3c',1,'IRac']]],
|
||||
['hitachi1_512',['hitachi1',['../classIRac.html#ac8807d62f6ae87af72d44b50bed3f17b',1,'IRac']]],
|
||||
['hitachi1protocol_513',['Hitachi1Protocol',['../unionHitachi1Protocol.html',1,'']]],
|
||||
['hitachi344_514',['hitachi344',['../classIRac.html#a0bc34635a1a349816344916a82585460',1,'IRac']]],
|
||||
['hitachi424_515',['hitachi424',['../classIRac.html#aec6de0752ddd3a3e7c6824cb1b692508',1,'IRac']]],
|
||||
['hitachi424protocol_516',['Hitachi424Protocol',['../unionHitachi424Protocol.html',1,'']]],
|
||||
['hitachi_5fac_517',['HITACHI_AC',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada9020fb54ac69d8aec0185f7e80c962ca',1,'IRremoteESP8266.h']]],
|
||||
['hitachi_5fac1_518',['HITACHI_AC1',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada7d9a74161d95e62bece3c0e48900cb35',1,'IRremoteESP8266.h']]],
|
||||
['hitachi_5fac1_5fremote_5fmodel_5ft_519',['hitachi_ac1_remote_model_t',['../IRsend_8h.html#acd0c6107b5a6cab2080b18a8de14ea49',1,'IRsend.h']]],
|
||||
['hitachi_5fac2_520',['HITACHI_AC2',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadab5a44068d519506efa8a3113aa44c9c0',1,'IRremoteESP8266.h']]],
|
||||
['hitachi_5fac3_521',['HITACHI_AC3',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadac3487c47b14da6af922f5b27992b30f3',1,'IRremoteESP8266.h']]],
|
||||
['hitachi_5fac344_522',['HITACHI_AC344',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada1e147eb39adc40e4181940cc2357f070',1,'IRremoteESP8266.h']]],
|
||||
['hitachi_5fac424_523',['HITACHI_AC424',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada85af068f8964d4359512265d8cc27a31',1,'IRremoteESP8266.h']]],
|
||||
['hitachiprotocol_524',['HitachiProtocol',['../unionHitachiProtocol.html',1,'']]],
|
||||
['htmlescape_525',['htmlEscape',['../namespaceirutils.html#a6e55c6fdcc82e1ef8bd5f73df83609a7',1,'irutils']]]
|
||||
];
|
@ -1,198 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['i18n_2eh_526',['i18n.h',['../i18n_8h.html',1,'']]],
|
||||
['ifeel_527',['iFeel',['../unionArgoProtocol.html#a9d51b32b8e2b2ff08339be238a775097',1,'ArgoProtocol::iFeel()'],['../unionGreeProtocol.html#a592364307a4b11064888bda76c403142',1,'GreeProtocol::IFeel()']]],
|
||||
['inax_528',['INAX',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadafc566aab3afb8face6d8965ca4d0eab7',1,'IRremoteESP8266.h']]],
|
||||
['irremoteesp8266_20library_20api_20documentation_529',['IRremoteESP8266 Library API Documentation',['../index.html',1,'']]],
|
||||
['initstate_530',['initState',['../classIRac.html#af1c4ae70e61298c0be8d350d67e7c342',1,'IRac::initState(stdAc::state_t *state, const decode_type_t vendor, const int16_t model, const bool power, const stdAc::opmode_t mode, const float degrees, const bool celsius, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep, const int16_t clock)'],['../classIRac.html#a165b7fdb9b3a02b1fb5ff2c2c3747958',1,'IRac::initState(stdAc::state_t *state)']]],
|
||||
['invertbits_531',['invertBits',['../IRutils_8cpp.html#a1a85904f25c8ec77fb554d238c59cfdb',1,'invertBits(const uint64_t data, const uint16_t nbits): IRutils.cpp'],['../IRutils_8h.html#a1a85904f25c8ec77fb554d238c59cfdb',1,'invertBits(const uint64_t data, const uint16_t nbits): IRutils.cpp']]],
|
||||
['invertbytepairs_532',['invertBytePairs',['../namespaceirutils.html#ad818a474349546c84824451a5468f4fe',1,'irutils']]],
|
||||
['ionfilter_533',['IonFilter',['../unionKelvinatorProtocol.html#ad7c762e410c8cba234614563cdc9d384',1,'KelvinatorProtocol']]],
|
||||
['ir_5fairwell_2ecpp_534',['ir_Airwell.cpp',['../ir__Airwell_8cpp.html',1,'']]],
|
||||
['ir_5fairwell_2eh_535',['ir_Airwell.h',['../ir__Airwell_8h.html',1,'']]],
|
||||
['ir_5faiwa_2ecpp_536',['ir_Aiwa.cpp',['../ir__Aiwa_8cpp.html',1,'']]],
|
||||
['ir_5famcor_2ecpp_537',['ir_Amcor.cpp',['../ir__Amcor_8cpp.html',1,'']]],
|
||||
['ir_5famcor_2eh_538',['ir_Amcor.h',['../ir__Amcor_8h.html',1,'']]],
|
||||
['ir_5fargo_2ecpp_539',['ir_Argo.cpp',['../ir__Argo_8cpp.html',1,'']]],
|
||||
['ir_5fargo_2eh_540',['ir_Argo.h',['../ir__Argo_8h.html',1,'']]],
|
||||
['ir_5fcarrier_2ecpp_541',['ir_Carrier.cpp',['../ir__Carrier_8cpp.html',1,'']]],
|
||||
['ir_5fcarrier_2eh_542',['ir_Carrier.h',['../ir__Carrier_8h.html',1,'']]],
|
||||
['ir_5fcoolix_2ecpp_543',['ir_Coolix.cpp',['../ir__Coolix_8cpp.html',1,'']]],
|
||||
['ir_5fcoolix_2eh_544',['ir_Coolix.h',['../ir__Coolix_8h.html',1,'']]],
|
||||
['ir_5fcorona_2ecpp_545',['ir_Corona.cpp',['../ir__Corona_8cpp.html',1,'']]],
|
||||
['ir_5fcorona_2eh_546',['ir_Corona.h',['../ir__Corona_8h.html',1,'']]],
|
||||
['ir_5fdaikin_2ecpp_547',['ir_Daikin.cpp',['../ir__Daikin_8cpp.html',1,'']]],
|
||||
['ir_5fdaikin_2eh_548',['ir_Daikin.h',['../ir__Daikin_8h.html',1,'']]],
|
||||
['ir_5fdelonghi_2ecpp_549',['ir_Delonghi.cpp',['../ir__Delonghi_8cpp.html',1,'']]],
|
||||
['ir_5fdelonghi_2eh_550',['ir_Delonghi.h',['../ir__Delonghi_8h.html',1,'']]],
|
||||
['ir_5fdenon_2ecpp_551',['ir_Denon.cpp',['../ir__Denon_8cpp.html',1,'']]],
|
||||
['ir_5fdish_2ecpp_552',['ir_Dish.cpp',['../ir__Dish_8cpp.html',1,'']]],
|
||||
['ir_5fdoshisha_2ecpp_553',['ir_Doshisha.cpp',['../ir__Doshisha_8cpp.html',1,'']]],
|
||||
['ir_5felectra_2ecpp_554',['ir_Electra.cpp',['../ir__Electra_8cpp.html',1,'']]],
|
||||
['ir_5felectra_2eh_555',['ir_Electra.h',['../ir__Electra_8h.html',1,'']]],
|
||||
['ir_5felitescreens_2ecpp_556',['ir_EliteScreens.cpp',['../ir__EliteScreens_8cpp.html',1,'']]],
|
||||
['ir_5fepson_2ecpp_557',['ir_Epson.cpp',['../ir__Epson_8cpp.html',1,'']]],
|
||||
['ir_5ffujitsu_2ecpp_558',['ir_Fujitsu.cpp',['../ir__Fujitsu_8cpp.html',1,'']]],
|
||||
['ir_5ffujitsu_2eh_559',['ir_Fujitsu.h',['../ir__Fujitsu_8h.html',1,'']]],
|
||||
['ir_5fgicable_2ecpp_560',['ir_GICable.cpp',['../ir__GICable_8cpp.html',1,'']]],
|
||||
['ir_5fglobalcache_2ecpp_561',['ir_GlobalCache.cpp',['../ir__GlobalCache_8cpp.html',1,'']]],
|
||||
['ir_5fgoodweather_2ecpp_562',['ir_Goodweather.cpp',['../ir__Goodweather_8cpp.html',1,'']]],
|
||||
['ir_5fgoodweather_2eh_563',['ir_Goodweather.h',['../ir__Goodweather_8h.html',1,'']]],
|
||||
['ir_5fgree_2ecpp_564',['ir_Gree.cpp',['../ir__Gree_8cpp.html',1,'']]],
|
||||
['ir_5fgree_2eh_565',['ir_Gree.h',['../ir__Gree_8h.html',1,'']]],
|
||||
['ir_5fhaier_2ecpp_566',['ir_Haier.cpp',['../ir__Haier_8cpp.html',1,'']]],
|
||||
['ir_5fhaier_2eh_567',['ir_Haier.h',['../ir__Haier_8h.html',1,'']]],
|
||||
['ir_5fhitachi_2ecpp_568',['ir_Hitachi.cpp',['../ir__Hitachi_8cpp.html',1,'']]],
|
||||
['ir_5fhitachi_2eh_569',['ir_Hitachi.h',['../ir__Hitachi_8h.html',1,'']]],
|
||||
['ir_5finax_2ecpp_570',['ir_Inax.cpp',['../ir__Inax_8cpp.html',1,'']]],
|
||||
['ir_5fjvc_2ecpp_571',['ir_JVC.cpp',['../ir__JVC_8cpp.html',1,'']]],
|
||||
['ir_5fkelvinator_2ecpp_572',['ir_Kelvinator.cpp',['../ir__Kelvinator_8cpp.html',1,'']]],
|
||||
['ir_5fkelvinator_2eh_573',['ir_Kelvinator.h',['../ir__Kelvinator_8h.html',1,'']]],
|
||||
['ir_5flasertag_2ecpp_574',['ir_Lasertag.cpp',['../ir__Lasertag_8cpp.html',1,'']]],
|
||||
['ir_5flego_2ecpp_575',['ir_Lego.cpp',['../ir__Lego_8cpp.html',1,'']]],
|
||||
['ir_5flg_2ecpp_576',['ir_LG.cpp',['../ir__LG_8cpp.html',1,'']]],
|
||||
['ir_5flg_2eh_577',['ir_LG.h',['../ir__LG_8h.html',1,'']]],
|
||||
['ir_5flutron_2ecpp_578',['ir_Lutron.cpp',['../ir__Lutron_8cpp.html',1,'']]],
|
||||
['ir_5fmagiquest_2ecpp_579',['ir_Magiquest.cpp',['../ir__Magiquest_8cpp.html',1,'']]],
|
||||
['ir_5fmagiquest_2eh_580',['ir_Magiquest.h',['../ir__Magiquest_8h.html',1,'']]],
|
||||
['ir_5fmetz_2ecpp_581',['ir_Metz.cpp',['../ir__Metz_8cpp.html',1,'']]],
|
||||
['ir_5fmidea_2ecpp_582',['ir_Midea.cpp',['../ir__Midea_8cpp.html',1,'']]],
|
||||
['ir_5fmidea_2eh_583',['ir_Midea.h',['../ir__Midea_8h.html',1,'']]],
|
||||
['ir_5fmirage_2ecpp_584',['ir_Mirage.cpp',['../ir__Mirage_8cpp.html',1,'']]],
|
||||
['ir_5fmitsubishi_2ecpp_585',['ir_Mitsubishi.cpp',['../ir__Mitsubishi_8cpp.html',1,'']]],
|
||||
['ir_5fmitsubishi_2eh_586',['ir_Mitsubishi.h',['../ir__Mitsubishi_8h.html',1,'']]],
|
||||
['ir_5fmitsubishiheavy_2ecpp_587',['ir_MitsubishiHeavy.cpp',['../ir__MitsubishiHeavy_8cpp.html',1,'']]],
|
||||
['ir_5fmitsubishiheavy_2eh_588',['ir_MitsubishiHeavy.h',['../ir__MitsubishiHeavy_8h.html',1,'']]],
|
||||
['ir_5fmultibrackets_2ecpp_589',['ir_Multibrackets.cpp',['../ir__Multibrackets_8cpp.html',1,'']]],
|
||||
['ir_5fmwm_2ecpp_590',['ir_MWM.cpp',['../ir__MWM_8cpp.html',1,'']]],
|
||||
['ir_5fnec_2ecpp_591',['ir_NEC.cpp',['../ir__NEC_8cpp.html',1,'']]],
|
||||
['ir_5fnec_2eh_592',['ir_NEC.h',['../ir__NEC_8h.html',1,'']]],
|
||||
['ir_5fneoclima_2ecpp_593',['ir_Neoclima.cpp',['../ir__Neoclima_8cpp.html',1,'']]],
|
||||
['ir_5fneoclima_2eh_594',['ir_Neoclima.h',['../ir__Neoclima_8h.html',1,'']]],
|
||||
['ir_5fnikai_2ecpp_595',['ir_Nikai.cpp',['../ir__Nikai_8cpp.html',1,'']]],
|
||||
['ir_5fpanasonic_2ecpp_596',['ir_Panasonic.cpp',['../ir__Panasonic_8cpp.html',1,'']]],
|
||||
['ir_5fpanasonic_2eh_597',['ir_Panasonic.h',['../ir__Panasonic_8h.html',1,'']]],
|
||||
['ir_5fpioneer_2ecpp_598',['ir_Pioneer.cpp',['../ir__Pioneer_8cpp.html',1,'']]],
|
||||
['ir_5fpronto_2ecpp_599',['ir_Pronto.cpp',['../ir__Pronto_8cpp.html',1,'']]],
|
||||
['ir_5frc5_5frc6_2ecpp_600',['ir_RC5_RC6.cpp',['../ir__RC5__RC6_8cpp.html',1,'']]],
|
||||
['ir_5frcmm_2ecpp_601',['ir_RCMM.cpp',['../ir__RCMM_8cpp.html',1,'']]],
|
||||
['ir_5fsamsung_2ecpp_602',['ir_Samsung.cpp',['../ir__Samsung_8cpp.html',1,'']]],
|
||||
['ir_5fsamsung_2eh_603',['ir_Samsung.h',['../ir__Samsung_8h.html',1,'']]],
|
||||
['ir_5fsanyo_2ecpp_604',['ir_Sanyo.cpp',['../ir__Sanyo_8cpp.html',1,'']]],
|
||||
['ir_5fsanyo_2eh_605',['ir_Sanyo.h',['../ir__Sanyo_8h.html',1,'']]],
|
||||
['ir_5fsharp_2ecpp_606',['ir_Sharp.cpp',['../ir__Sharp_8cpp.html',1,'']]],
|
||||
['ir_5fsharp_2eh_607',['ir_Sharp.h',['../ir__Sharp_8h.html',1,'']]],
|
||||
['ir_5fsherwood_2ecpp_608',['ir_Sherwood.cpp',['../ir__Sherwood_8cpp.html',1,'']]],
|
||||
['ir_5fsony_2ecpp_609',['ir_Sony.cpp',['../ir__Sony_8cpp.html',1,'']]],
|
||||
['ir_5fsymphony_2ecpp_610',['ir_Symphony.cpp',['../ir__Symphony_8cpp.html',1,'']]],
|
||||
['ir_5ftcl_2ecpp_611',['ir_Tcl.cpp',['../ir__Tcl_8cpp.html',1,'']]],
|
||||
['ir_5ftcl_2eh_612',['ir_Tcl.h',['../ir__Tcl_8h.html',1,'']]],
|
||||
['ir_5ftechnibel_2ecpp_613',['ir_Technibel.cpp',['../ir__Technibel_8cpp.html',1,'']]],
|
||||
['ir_5ftechnibel_2eh_614',['ir_Technibel.h',['../ir__Technibel_8h.html',1,'']]],
|
||||
['ir_5fteco_2ecpp_615',['ir_Teco.cpp',['../ir__Teco_8cpp.html',1,'']]],
|
||||
['ir_5fteco_2eh_616',['ir_Teco.h',['../ir__Teco_8h.html',1,'']]],
|
||||
['ir_5ftoshiba_2ecpp_617',['ir_Toshiba.cpp',['../ir__Toshiba_8cpp.html',1,'']]],
|
||||
['ir_5ftoshiba_2eh_618',['ir_Toshiba.h',['../ir__Toshiba_8h.html',1,'']]],
|
||||
['ir_5ftranscold_2ecpp_619',['ir_Transcold.cpp',['../ir__Transcold_8cpp.html',1,'']]],
|
||||
['ir_5ftranscold_2eh_620',['ir_Transcold.h',['../ir__Transcold_8h.html',1,'']]],
|
||||
['ir_5ftrotec_2ecpp_621',['ir_Trotec.cpp',['../ir__Trotec_8cpp.html',1,'']]],
|
||||
['ir_5ftrotec_2eh_622',['ir_Trotec.h',['../ir__Trotec_8h.html',1,'']]],
|
||||
['ir_5fvestel_2ecpp_623',['ir_Vestel.cpp',['../ir__Vestel_8cpp.html',1,'']]],
|
||||
['ir_5fvestel_2eh_624',['ir_Vestel.h',['../ir__Vestel_8h.html',1,'']]],
|
||||
['ir_5fvoltas_2ecpp_625',['ir_Voltas.cpp',['../ir__Voltas_8cpp.html',1,'']]],
|
||||
['ir_5fvoltas_2eh_626',['ir_Voltas.h',['../ir__Voltas_8h.html',1,'']]],
|
||||
['ir_5fwhirlpool_2ecpp_627',['ir_Whirlpool.cpp',['../ir__Whirlpool_8cpp.html',1,'']]],
|
||||
['ir_5fwhirlpool_2eh_628',['ir_Whirlpool.h',['../ir__Whirlpool_8h.html',1,'']]],
|
||||
['ir_5fwhynter_2ecpp_629',['ir_Whynter.cpp',['../ir__Whynter_8cpp.html',1,'']]],
|
||||
['ir_5fzepeal_2ecpp_630',['ir_Zepeal.cpp',['../ir__Zepeal_8cpp.html',1,'']]],
|
||||
['irac_631',['IRac',['../classIRac.html',1,'IRac'],['../classIRac.html#abb0864e277d4f6c68a92c2729112a40d',1,'IRac::IRac()']]],
|
||||
['irac_2ecpp_632',['IRac.cpp',['../IRac_8cpp.html',1,'']]],
|
||||
['irac_2eh_633',['IRac.h',['../IRac_8h.html',1,'']]],
|
||||
['iracutils_634',['IRAcUtils',['../namespaceIRAcUtils.html',1,'']]],
|
||||
['irairwellac_635',['IRAirwellAc',['../classIRAirwellAc.html',1,'IRAirwellAc'],['../classIRAirwellAc.html#a38cfe20bff4522034b16d64df64750e8',1,'IRAirwellAc::IRAirwellAc()']]],
|
||||
['iramcorac_636',['IRAmcorAc',['../classIRAmcorAc.html',1,'IRAmcorAc'],['../classIRAmcorAc.html#a92db59a33c861dcd3b2960e9711f97c4',1,'IRAmcorAc::IRAmcorAc()']]],
|
||||
['irargoac_637',['IRArgoAC',['../classIRArgoAC.html',1,'IRArgoAC'],['../classIRArgoAC.html#ad6c2250738397441b8f956d1477b7d70',1,'IRArgoAC::IRArgoAC()']]],
|
||||
['ircarrierac64_638',['IRCarrierAc64',['../classIRCarrierAc64.html',1,'IRCarrierAc64'],['../classIRCarrierAc64.html#ac225c0f24a0e385a145375ff447ab79b',1,'IRCarrierAc64::IRCarrierAc64()']]],
|
||||
['ircoolixac_639',['IRCoolixAC',['../classIRCoolixAC.html',1,'IRCoolixAC'],['../classIRCoolixAC.html#a043ad3b74e964e39b111e1fcf9e55f42',1,'IRCoolixAC::IRCoolixAC()']]],
|
||||
['ircoronaac_640',['IRCoronaAc',['../classIRCoronaAc.html',1,'IRCoronaAc'],['../classIRCoronaAc.html#aa96f1ffce21cdec5b3901ebbb1c63fbb',1,'IRCoronaAc::IRCoronaAc()']]],
|
||||
['irdaikin128_641',['IRDaikin128',['../classIRDaikin128.html',1,'IRDaikin128'],['../classIRDaikin128.html#aa669739541daf1a2b39ce1cd0424c43b',1,'IRDaikin128::IRDaikin128()']]],
|
||||
['irdaikin152_642',['IRDaikin152',['../classIRDaikin152.html',1,'IRDaikin152'],['../classIRDaikin152.html#a68dce79bab5890d9aea325a45ef8e4a3',1,'IRDaikin152::IRDaikin152()']]],
|
||||
['irdaikin160_643',['IRDaikin160',['../classIRDaikin160.html',1,'IRDaikin160'],['../classIRDaikin160.html#a76fb744b041c38abb730bce0538a497a',1,'IRDaikin160::IRDaikin160()']]],
|
||||
['irdaikin176_644',['IRDaikin176',['../classIRDaikin176.html',1,'IRDaikin176'],['../classIRDaikin176.html#accfe7c3f34351844d12059455f65f312',1,'IRDaikin176::IRDaikin176()']]],
|
||||
['irdaikin2_645',['IRDaikin2',['../classIRDaikin2.html',1,'IRDaikin2'],['../classIRDaikin2.html#a3ffe908313f162b92e92307578592fca',1,'IRDaikin2::IRDaikin2()']]],
|
||||
['irdaikin216_646',['IRDaikin216',['../classIRDaikin216.html',1,'IRDaikin216'],['../classIRDaikin216.html#ad802bde79e5ee2d16e3b09fbc8bbe8df',1,'IRDaikin216::IRDaikin216()']]],
|
||||
['irdaikin64_647',['IRDaikin64',['../classIRDaikin64.html',1,'IRDaikin64'],['../classIRDaikin64.html#a88855df33ce903884b21d2ef4771e94f',1,'IRDaikin64::IRDaikin64()']]],
|
||||
['irdaikinesp_648',['IRDaikinESP',['../classIRDaikinESP.html',1,'IRDaikinESP'],['../classIRDaikinESP.html#a2652cb45e07e8a4329c16cded9f6ad9a',1,'IRDaikinESP::IRDaikinESP()']]],
|
||||
['irdelonghiac_649',['IRDelonghiAc',['../classIRDelonghiAc.html',1,'IRDelonghiAc'],['../classIRDelonghiAc.html#aa6f8661cf6baa369a0a5b9d775c392e0',1,'IRDelonghiAc::IRDelonghiAc()']]],
|
||||
['irelectraac_650',['IRElectraAc',['../classIRElectraAc.html',1,'IRElectraAc'],['../classIRElectraAc.html#a2f56ad22943c3d261b1d2ef88d86e300',1,'IRElectraAc::IRElectraAc()']]],
|
||||
['irfujitsuac_651',['IRFujitsuAC',['../classIRFujitsuAC.html',1,'IRFujitsuAC'],['../classIRFujitsuAC.html#acdb70f239884507f540b872ba25747ce',1,'IRFujitsuAC::IRFujitsuAC()']]],
|
||||
['irgoodweatherac_652',['IRGoodweatherAc',['../classIRGoodweatherAc.html',1,'IRGoodweatherAc'],['../classIRGoodweatherAc.html#a681feff1a58125cde97b2d7ed0ba775e',1,'IRGoodweatherAc::IRGoodweatherAc()']]],
|
||||
['irgreeac_653',['IRGreeAC',['../classIRGreeAC.html',1,'IRGreeAC'],['../classIRGreeAC.html#abf7ead6ebee4bc776f83fb55f6fe6b63',1,'IRGreeAC::IRGreeAC()']]],
|
||||
['irhaierac_654',['IRHaierAC',['../classIRHaierAC.html',1,'IRHaierAC'],['../classIRHaierAC.html#a0b78060cbd150cd886a409adc2dea49c',1,'IRHaierAC::IRHaierAC()']]],
|
||||
['irhaieracyrw02_655',['IRHaierACYRW02',['../classIRHaierACYRW02.html',1,'IRHaierACYRW02'],['../classIRHaierACYRW02.html#afd9354c36df33434840bbc5f38d4e7ed',1,'IRHaierACYRW02::IRHaierACYRW02()']]],
|
||||
['irhitachiac_656',['IRHitachiAc',['../classIRHitachiAc.html',1,'IRHitachiAc'],['../classIRHitachiAc.html#a4c43e95e0cc28339e7162d7090ae16bf',1,'IRHitachiAc::IRHitachiAc()']]],
|
||||
['irhitachiac1_657',['IRHitachiAc1',['../classIRHitachiAc1.html',1,'IRHitachiAc1'],['../classIRHitachiAc1.html#ac00cfd9a60e08d34f292878de47f622f',1,'IRHitachiAc1::IRHitachiAc1()']]],
|
||||
['irhitachiac3_658',['IRHitachiAc3',['../classIRHitachiAc3.html',1,'IRHitachiAc3'],['../classIRHitachiAc3.html#adef0e7ad217f078ce418e3aa82b9cb86',1,'IRHitachiAc3::IRHitachiAc3()']]],
|
||||
['irhitachiac344_659',['IRHitachiAc344',['../classIRHitachiAc344.html',1,'IRHitachiAc344'],['../classIRHitachiAc424.html#a3c885313a79bf8c02bc5eb9f7d80088b',1,'IRHitachiAc424::IRHitachiAc344()'],['../classIRHitachiAc344.html#afbff8a1dd2777880d2d1713d07e1d419',1,'IRHitachiAc344::IRHitachiAc344()']]],
|
||||
['irhitachiac424_660',['IRHitachiAc424',['../classIRHitachiAc424.html',1,'IRHitachiAc424'],['../classIRHitachiAc424.html#add708c10a56d20621ef65a0ddcc2aac1',1,'IRHitachiAc424::IRHitachiAc424()']]],
|
||||
['irkelvinatorac_661',['IRKelvinatorAC',['../classIRKelvinatorAC.html',1,'IRKelvinatorAC'],['../classIRKelvinatorAC.html#a111dd384b1898a4fb880a19b6d1b1635',1,'IRKelvinatorAC::IRKelvinatorAC()']]],
|
||||
['irlgac_662',['IRLgAc',['../classIRLgAc.html',1,'IRLgAc'],['../classIRLgAc.html#a290636496526a9ed2057532649709375',1,'IRLgAc::IRLgAc()']]],
|
||||
['irmideaac_663',['IRMideaAC',['../classIRMideaAC.html',1,'IRMideaAC'],['../classIRMideaAC.html#a1ef2f532a1e6c6bfe89617d3fd0d9082',1,'IRMideaAC::IRMideaAC()']]],
|
||||
['irmitsubishi112_664',['IRMitsubishi112',['../classIRMitsubishi112.html',1,'IRMitsubishi112'],['../classIRMitsubishi112.html#adea6f3b7b7619b0bf6da4a94cec9d712',1,'IRMitsubishi112::IRMitsubishi112()']]],
|
||||
['irmitsubishi136_665',['IRMitsubishi136',['../classIRMitsubishi136.html',1,'IRMitsubishi136'],['../classIRMitsubishi136.html#ad92926b993869d0695f11ddb999b2090',1,'IRMitsubishi136::IRMitsubishi136()']]],
|
||||
['irmitsubishiac_666',['IRMitsubishiAC',['../classIRMitsubishiAC.html',1,'IRMitsubishiAC'],['../classIRMitsubishiAC.html#a83fabfd9ebed5cef8dd2a18a85fdf4e6',1,'IRMitsubishiAC::IRMitsubishiAC()']]],
|
||||
['irmitsubishiheavy152ac_667',['IRMitsubishiHeavy152Ac',['../classIRMitsubishiHeavy152Ac.html',1,'IRMitsubishiHeavy152Ac'],['../classIRMitsubishiHeavy152Ac.html#a704e9f96c2d0a07f9ba16a400d9c97aa',1,'IRMitsubishiHeavy152Ac::IRMitsubishiHeavy152Ac()']]],
|
||||
['irmitsubishiheavy88ac_668',['IRMitsubishiHeavy88Ac',['../classIRMitsubishiHeavy88Ac.html',1,'IRMitsubishiHeavy88Ac'],['../classIRMitsubishiHeavy88Ac.html#aceabecf4a615e807a4636ff5990d77d7',1,'IRMitsubishiHeavy88Ac::IRMitsubishiHeavy88Ac()']]],
|
||||
['irneoclimaac_669',['IRNeoclimaAc',['../classIRNeoclimaAc.html',1,'IRNeoclimaAc'],['../classIRNeoclimaAc.html#a99ed2962176e5f12f8387fab977c6395',1,'IRNeoclimaAc::IRNeoclimaAc()']]],
|
||||
['irpanasonicac_670',['IRPanasonicAc',['../classIRPanasonicAc.html',1,'IRPanasonicAc'],['../classIRPanasonicAc.html#ae8b0f4518ee1a913d47a7101b0a11185',1,'IRPanasonicAc::IRPanasonicAc()']]],
|
||||
['irparams_671',['irparams',['../IRrecv_8cpp.html#a5620be27a7445f25d43dbe3432ed6fd1',1,'IRrecv.cpp']]],
|
||||
['irparams_5fsave_672',['irparams_save',['../classIRrecv.html#a6fdac84ce51ce119972bf121ccc95aab',1,'IRrecv::irparams_save()'],['../IRrecv_8cpp.html#a96e84ae171529ee954c53e2e938dd998',1,'irparams_save(): IRrecv.cpp']]],
|
||||
['irparams_5ft_673',['irparams_t',['../structirparams__t.html',1,'']]],
|
||||
['irpin_674',['IRpin',['../classIRsend.html#ae4a6ea1e72f4861167002d6e7bf17b7c',1,'IRsend']]],
|
||||
['irrecv_675',['IRrecv',['../classIRrecv.html',1,'IRrecv'],['../classIRrecv.html#a8fe4d26ef1f863db1db9994fed5fc209',1,'IRrecv::IRrecv(const uint16_t recvpin, const uint16_t bufsize=kRawBuf, const uint8_t timeout=kTimeoutMs, const bool save_buffer=false, const uint8_t timer_num=kDefaultESP32Timer)'],['../classIRrecv.html#a3bb1bcc1c1a3184294dd35c8f6f758b1',1,'IRrecv::IRrecv(const uint16_t recvpin, const uint16_t bufsize=kRawBuf, const uint8_t timeout=kTimeoutMs, const bool save_buffer=false)']]],
|
||||
['irrecv_2ecpp_676',['IRrecv.cpp',['../IRrecv_8cpp.html',1,'']]],
|
||||
['irrecv_2eh_677',['IRrecv.h',['../IRrecv_8h.html',1,'']]],
|
||||
['irremote_5fmux_678',['irremote_mux',['../IRrecv_8cpp.html#ad2612f65707186ef7df0179d3636b4ea',1,'IRrecv.cpp']]],
|
||||
['irremoteesp8266_2eh_679',['IRremoteESP8266.h',['../IRremoteESP8266_8h.html',1,'']]],
|
||||
['irsamsungac_680',['IRSamsungAc',['../classIRSamsungAc.html',1,'IRSamsungAc'],['../classIRSamsungAc.html#a0db771b80d7d7a63b5ecb4b25efee609',1,'IRSamsungAc::IRSamsungAc()']]],
|
||||
['irsanyoac_681',['IRSanyoAc',['../classIRSanyoAc.html',1,'IRSanyoAc'],['../classIRSanyoAc.html#ab7b9a1f1685993b95807f7e48624e4e2',1,'IRSanyoAc::IRSanyoAc()']]],
|
||||
['irsend_682',['IRsend',['../classIRsend.html',1,'IRsend'],['../classIRsend.html#a792780b7de996c90c86dd7b700eaf271',1,'IRsend::IRsend()']]],
|
||||
['irsend_2ecpp_683',['IRsend.cpp',['../IRsend_8cpp.html',1,'']]],
|
||||
['irsend_2eh_684',['IRsend.h',['../IRsend_8h.html',1,'']]],
|
||||
['irsharpac_685',['IRSharpAc',['../classIRSharpAc.html',1,'IRSharpAc'],['../classIRSharpAc.html#a30b5f8f634a41c943b4e1453d12bc980',1,'IRSharpAc::IRSharpAc()']]],
|
||||
['irtcl112ac_686',['IRTcl112Ac',['../classIRTcl112Ac.html',1,'IRTcl112Ac'],['../classIRTcl112Ac.html#a061bdfdf4444cb5e06fa90824985c1ec',1,'IRTcl112Ac::IRTcl112Ac()']]],
|
||||
['irtechnibelac_687',['IRTechnibelAc',['../classIRTechnibelAc.html',1,'IRTechnibelAc'],['../classIRTechnibelAc.html#a799407de348870d5765acf163ab92a75',1,'IRTechnibelAc::IRTechnibelAc()']]],
|
||||
['irtecoac_688',['IRTecoAc',['../classIRTecoAc.html',1,'IRTecoAc'],['../classIRTecoAc.html#a56e3f31a080bfd565570bf3b165e71d4',1,'IRTecoAc::IRTecoAc()']]],
|
||||
['irtext_2ecpp_689',['IRtext.cpp',['../IRtext_8cpp.html',1,'']]],
|
||||
['irtext_2eh_690',['IRtext.h',['../IRtext_8h.html',1,'']]],
|
||||
['irtimer_691',['IRtimer',['../classIRtimer.html',1,'IRtimer'],['../classIRtimer.html#a09d64d689137ef8ca68973bb9e550e76',1,'IRtimer::IRtimer()']]],
|
||||
['irtimer_2ecpp_692',['IRtimer.cpp',['../IRtimer_8cpp.html',1,'']]],
|
||||
['irtimer_2eh_693',['IRtimer.h',['../IRtimer_8h.html',1,'']]],
|
||||
['irtoshibaac_694',['IRToshibaAC',['../classIRToshibaAC.html',1,'IRToshibaAC'],['../classIRToshibaAC.html#abf2b3db316f7d6acb20c4f7ea2476ec2',1,'IRToshibaAC::IRToshibaAC()']]],
|
||||
['irtranscoldac_695',['IRTranscoldAc',['../classIRTranscoldAc.html',1,'IRTranscoldAc'],['../classIRTranscoldAc.html#a155278b9e5803aacf69a1ae20ed5b652',1,'IRTranscoldAc::IRTranscoldAc()']]],
|
||||
['irtrotecesp_696',['IRTrotecESP',['../classIRTrotecESP.html',1,'IRTrotecESP'],['../classIRTrotecESP.html#a1b56b6e55bf133ccab6a482090408ee5',1,'IRTrotecESP::IRTrotecESP()']]],
|
||||
['irutils_697',['irutils',['../namespaceirutils.html',1,'']]],
|
||||
['irutils_2ecpp_698',['IRutils.cpp',['../IRutils_8cpp.html',1,'']]],
|
||||
['irutils_2eh_699',['IRutils.h',['../IRutils_8h.html',1,'']]],
|
||||
['irvestelac_700',['IRVestelAc',['../classIRVestelAc.html',1,'IRVestelAc'],['../classIRVestelAc.html#af1583ef81331edf112a0d04771c2cbec',1,'IRVestelAc::IRVestelAc()']]],
|
||||
['irvoltas_701',['IRVoltas',['../classIRVoltas.html',1,'IRVoltas'],['../classIRVoltas.html#a4bfb0c5b16507d330abea2a9147f8332',1,'IRVoltas::IRVoltas()']]],
|
||||
['irwhirlpoolac_702',['IRWhirlpoolAc',['../classIRWhirlpoolAc.html',1,'IRWhirlpoolAc'],['../classIRWhirlpoolAc.html#a89bc9d440a5f7d04a602d7bc73904bc2',1,'IRWhirlpoolAc::IRWhirlpoolAc()']]],
|
||||
['iseconotoggle_703',['isEconoToggle',['../classIRMideaAC.html#a227aeed678af6da49b510cb67b02991e',1,'IRMideaAC']]],
|
||||
['islighttoggle_704',['isLightToggle',['../classIRMideaAC.html#ac0f321a8a38bd2cecf453c6aff9020e6',1,'IRMideaAC']]],
|
||||
['isofftimeractive_705',['isOffTimerActive',['../classIRVestelAc.html#aa756171e82ed1b43593b81aa3a63b812',1,'IRVestelAc']]],
|
||||
['isofftimerenabled_706',['isOffTimerEnabled',['../classIRMideaAC.html#a10aa3386a15b46c62083baaca3bcf699',1,'IRMideaAC::isOffTimerEnabled()'],['../classIRPanasonicAc.html#ac8e218b4886d66889734b01232767c8a',1,'IRPanasonicAc::isOffTimerEnabled()'],['../classIRWhirlpoolAc.html#a1bc1366524cf3c7fb426e908a166801f',1,'IRWhirlpoolAc::isOffTimerEnabled()']]],
|
||||
['isontimeractive_707',['isOnTimerActive',['../classIRVestelAc.html#a67f0e970af50fcf6e01e4cac85c5862a',1,'IRVestelAc']]],
|
||||
['isontimerenabled_708',['isOnTimerEnabled',['../classIRMideaAC.html#a61f53e462caa1bc8329a6ebadbe47f93',1,'IRMideaAC::isOnTimerEnabled()'],['../classIRPanasonicAc.html#a04cbf8f5063a3892020d383c77abc57c',1,'IRPanasonicAc::isOnTimerEnabled()'],['../classIRWhirlpoolAc.html#aff1b8c2d063b376725a5a77745f6be3a',1,'IRWhirlpoolAc::isOnTimerEnabled()']]],
|
||||
['ispowerspecial_709',['isPowerSpecial',['../classIRSharpAc.html#a57072f2458897ffb9184769aca10b944',1,'IRSharpAc']]],
|
||||
['isprotocolsupported_710',['isProtocolSupported',['../classIRac.html#ad9c2fc9d07db70704f78a2d5f7be5b1c',1,'IRac']]],
|
||||
['isspecialstate_711',['isSpecialState',['../classIRCoolixAC.html#aa9bfc6c78fca87962c9335d60f625322',1,'IRCoolixAC::isSpecialState()'],['../classIRTranscoldAc.html#aed8c20db75d4070e66445fb2b092e2de',1,'IRTranscoldAc::isSpecialState()']]],
|
||||
['isswingvstep_712',['isSwingVStep',['../classIRMideaAC.html#a360aa29e0f6817709644f6b36abce754',1,'IRMideaAC']]],
|
||||
['isswingvtoggle_713',['isSwingVToggle',['../classIRMideaAC.html#a5277fa1d077650be0edcf284db50d38b',1,'IRMideaAC']]],
|
||||
['istimecommand_714',['isTimeCommand',['../classIRVestelAc.html#ae811a07c1a8d82e7068c39b9ca73aaf1',1,'IRVestelAc']]],
|
||||
['istimeractive_715',['isTimerActive',['../classIRVestelAc.html#a160b73df8e1eda984f9bfbff3df7fa63',1,'IRVestelAc']]],
|
||||
['istimerenabled_716',['isTimerEnabled',['../classIRWhirlpoolAc.html#a5a713ffed99ab3450257d83e2d6e15ee',1,'IRWhirlpoolAc']]],
|
||||
['isturbotoggle_717',['isTurboToggle',['../classIRMideaAC.html#ae40e95fbee35ecc00ebff23c0b64e56d',1,'IRMideaAC']]],
|
||||
['isvalidlgac_718',['isValidLgAc',['../classIRLgAc.html#ad35d47f590ee4bd51bfdf9d911bce242',1,'IRLgAc']]],
|
||||
['it_2dit_2eh_719',['it-IT.h',['../it-IT_8h.html',1,'']]],
|
||||
['internationalisation_20_28i18n_29_20_26_20locale_20files_720',['Internationalisation (I18N) & Locale Files',['../md_src_locale_README.html',1,'']]]
|
||||
];
|
@ -1,19 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['label_3057',['Label',['../structCoronaSection.html#abc6d0caa713c73244c4bf2f602074d48',1,'CoronaSection']]],
|
||||
['lasertag_3058',['LASERTAG',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada92eadf4fa6dd16da5b79a2fcbf729894',1,'IRremoteESP8266.h']]],
|
||||
['ledflag_3059',['ledFlag',['../classIRCoolixAC.html#a03ba5e0a6cb47a7bb054155c2111a69c',1,'IRCoolixAC']]],
|
||||
['ledoff_3060',['ledOff',['../classIRsend.html#ae71cc5aa99f894785fb4f7abc05841b2',1,'IRsend']]],
|
||||
['ledon_3061',['ledOn',['../classIRsend.html#a13d804171fa7c14aff4def38c6ffb6c8',1,'IRsend']]],
|
||||
['legopf_3062',['LEGOPF',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada9a31bf5555b17ea7b115a5c2550fc1de',1,'IRremoteESP8266.h']]],
|
||||
['lg_3063',['lg',['../classIRac.html#afad31ecf9eae573882d53dd6629485fb',1,'IRac::lg()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadadf6c249ac7d923229f9e623eff9a61f4',1,'LG(): IRremoteESP8266.h']]],
|
||||
['lg2_3064',['LG2',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada8402547ec0b99b9b0efe97dec65badf9',1,'IRremoteESP8266.h']]],
|
||||
['lg_5fac_5fremote_5fmodel_5ft_3065',['lg_ac_remote_model_t',['../IRsend_8h.html#a50c54713e16502d280723334879dc83b',1,'IRsend.h']]],
|
||||
['lgprotocol_3066',['LGProtocol',['../unionLGProtocol.html',1,'']]],
|
||||
['light_3067',['light',['../structstdAc_1_1state__t.html#a51c3a5c4703ea49b420d70aeb18b6b9b',1,'stdAc::state_t::light()'],['../unionDaikin2Protocol.html#adaf55ec9e1b9ba278c7391d9d797f3ba',1,'Daikin2Protocol::Light()'],['../unionGoodweatherProtocol.html#a845565af7661af0c05290a7ce039f8e2',1,'GoodweatherProtocol::Light()'],['../unionGreeProtocol.html#a72092768725667d3bce381a6e2900c66',1,'GreeProtocol::Light()'],['../unionKelvinatorProtocol.html#a38f5b978fd63fda659f0e0b5f682440e',1,'KelvinatorProtocol::Light()'],['../unionVoltasProtocol.html#a811a0de66771c693831740440aac460c',1,'VoltasProtocol::Light()']]],
|
||||
['lighttoggle_3068',['LightToggle',['../unionElectraProtocol.html#aa2a5998cafd139e5ce7626edc4782c56',1,'ElectraProtocol']]],
|
||||
['llword_3069',['llword',['../unionmagiquest.html#ad57fbc75ab289c3e93b94be0b2187d65',1,'magiquest']]],
|
||||
['lowlevelsanitycheck_3070',['lowLevelSanityCheck',['../namespaceirutils.html#af67b75834051c4aced358b274c1c55a8',1,'irutils']]],
|
||||
['lutron_3071',['LUTRON',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada76cc459b9e26d82ed82cf120272fd8cb',1,'IRremoteESP8266.h']]],
|
||||
['lword_3072',['lword',['../unionmagiquest.html#ac87102145311831a232002b52fe2d02c',1,'magiquest']]]
|
||||
];
|
@ -1,50 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['magiquest_3073',['magiquest',['../unionmagiquest.html',1,'magiquest'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada3be750ce1687bc1a92fee05b0c511100',1,'MAGIQUEST(): IRremoteESP8266.h']]],
|
||||
['magnitude_3074',['magnitude',['../unionmagiquest.html#a8f687419a00322a04aab223dec093d6e',1,'magiquest']]],
|
||||
['mark_3075',['mark',['../classIRsend.html#a7399389d40bfe24bc062ffca88fc3780',1,'IRsend']]],
|
||||
['markassent_3076',['markAsSent',['../classIRac.html#ad0e45b13f477e29823b8c138704536c4',1,'IRac']]],
|
||||
['match_3077',['match',['../classIRrecv.html#a8bc218dae714ab189a3da4fff269cdaa',1,'IRrecv']]],
|
||||
['match_5fresult_5ft_3078',['match_result_t',['../structmatch__result__t.html',1,'']]],
|
||||
['matchatleast_3079',['matchAtLeast',['../classIRrecv.html#ae7bfd4ff689c7563c65c4e6e8c58187a',1,'IRrecv']]],
|
||||
['matchbytes_3080',['matchBytes',['../classIRrecv.html#adc2c9bc4c4e5741cfac7468126bf8ca6',1,'IRrecv']]],
|
||||
['matchdata_3081',['matchData',['../classIRrecv.html#a5361439cb69b1069553544e486502d2e',1,'IRrecv']]],
|
||||
['matchgeneric_3082',['matchGeneric',['../classIRrecv.html#ab783f52acc2ff4052313d6947563e4fd',1,'IRrecv::matchGeneric(volatile uint16_t *data_ptr, uint64_t *result_ptr, const uint16_t remaining, const uint16_t nbits, const uint16_t hdrmark, const uint32_t hdrspace, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint16_t footermark, const uint32_t footerspace, const bool atleast=false, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true)'],['../classIRrecv.html#a4448c1658383962d735353352987c9aa',1,'IRrecv::matchGeneric(volatile uint16_t *data_ptr, uint8_t *result_ptr, const uint16_t remaining, const uint16_t nbits, const uint16_t hdrmark, const uint32_t hdrspace, const uint16_t onemark, const uint32_t onespace, const uint16_t zeromark, const uint32_t zerospace, const uint16_t footermark, const uint32_t footerspace, const bool atleast=false, const uint8_t tolerance=kUseDefTol, const int16_t excess=kMarkExcess, const bool MSBfirst=true)']]],
|
||||
['matchgenericconstbittime_3083',['matchGenericConstBitTime',['../classIRrecv.html#a4582d75ef1d11aee35fce86c38dcccf0',1,'IRrecv']]],
|
||||
['matchmanchester_3084',['matchManchester',['../classIRrecv.html#ade70777ad0e047e11b99b03d8f5e3728',1,'IRrecv']]],
|
||||
['matchmanchesterdata_3085',['matchManchesterData',['../classIRrecv.html#ab44403411a217eb8ea75271575f8ab83',1,'IRrecv']]],
|
||||
['matchmark_3086',['matchMark',['../classIRrecv.html#ae78ef12b8194db5d3cb5a2605d29830d',1,'IRrecv']]],
|
||||
['matchspace_3087',['matchSpace',['../classIRrecv.html#a9fd363e8b2edee2ed3c473349ecc58fc',1,'IRrecv']]],
|
||||
['max_3088',['Max',['../unionAmcorProtocol.html#a9e0ea99322601af4b09784da2cf21d7e',1,'AmcorProtocol::Max()'],['../unionArgoProtocol.html#ac3edf881406da0b9a253a7536ba3e810',1,'ArgoProtocol::Max()']]],
|
||||
['metz_3089',['METZ',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadaa77ca3ee98846eee35bd2995bf2ae25b',1,'IRremoteESP8266.h']]],
|
||||
['midea_3090',['midea',['../classIRac.html#a11765b1d08c0c02f5e08254bd870dae6',1,'IRac::midea()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada1571f3cf72caf1cf23481802b450382a',1,'MIDEA(): IRremoteESP8266.h']]],
|
||||
['midea24_3091',['MIDEA24',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada59b5ac5c1d354e50932dc0208d9b0b43',1,'IRremoteESP8266.h']]],
|
||||
['mideaprotocol_3092',['MideaProtocol',['../unionMideaProtocol.html',1,'']]],
|
||||
['minrepeats_3093',['minRepeats',['../classIRsend.html#ae02772f34180163861b7e4eb3520db2a',1,'IRsend']]],
|
||||
['minstostring_3094',['minsToString',['../namespaceirutils.html#aebab40a2c69624adc1a5a8a6db72952f',1,'irutils']]],
|
||||
['mirage_3095',['MIRAGE',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada9ab6dd14fa5c7d0d32c60d414c7df36a',1,'IRremoteESP8266.h']]],
|
||||
['mitsubishi_3096',['mitsubishi',['../classIRac.html#aaa60bcac75dc5dda40c78f8c227b19a3',1,'IRac::mitsubishi()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadab98915357fe1cb91de0536136be20d07',1,'MITSUBISHI(): IRremoteESP8266.h']]],
|
||||
['mitsubishi112_3097',['mitsubishi112',['../classIRac.html#a2438b6e4403d5952adb299083e038e10',1,'IRac::mitsubishi112()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadab8e5875a5959b72ca7ff17bccff97c4d',1,'MITSUBISHI112(): IRremoteESP8266.h']]],
|
||||
['mitsubishi112protocol_3098',['Mitsubishi112Protocol',['../unionMitsubishi112Protocol.html',1,'']]],
|
||||
['mitsubishi136_3099',['mitsubishi136',['../classIRac.html#aa3033eb835cf3cd313ee2c2f38357e8e',1,'IRac::mitsubishi136()'],['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada3c73724a654627a04cc96e280b9630fe',1,'MITSUBISHI136(): IRremoteESP8266.h']]],
|
||||
['mitsubishi136protocol_3100',['Mitsubishi136Protocol',['../unionMitsubishi136Protocol.html',1,'']]],
|
||||
['mitsubishi144protocol_3101',['Mitsubishi144Protocol',['../unionMitsubishi144Protocol.html',1,'']]],
|
||||
['mitsubishi152protocol_3102',['Mitsubishi152Protocol',['../unionMitsubishi152Protocol.html',1,'']]],
|
||||
['mitsubishi2_3103',['MITSUBISHI2',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada66368850d567cbeb3b2c2233cae34cd0',1,'IRremoteESP8266.h']]],
|
||||
['mitsubishi88protocol_3104',['Mitsubishi88Protocol',['../unionMitsubishi88Protocol.html',1,'']]],
|
||||
['mitsubishi_5fac_3105',['MITSUBISHI_AC',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada45198cb83bbf76b320eaa91d09c44b38',1,'IRremoteESP8266.h']]],
|
||||
['mitsubishi_5fheavy_5f152_3106',['MITSUBISHI_HEAVY_152',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada15c8d1d51d5f9e42fd03638cbdfb7cbf',1,'IRremoteESP8266.h']]],
|
||||
['mitsubishi_5fheavy_5f88_3107',['MITSUBISHI_HEAVY_88',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadad303f6c0494d33354cb7c11af258f663',1,'IRremoteESP8266.h']]],
|
||||
['mitsubishiheavy152_3108',['mitsubishiHeavy152',['../classIRac.html#a635b89320d878c1e3f270d7146cb9b00',1,'IRac']]],
|
||||
['mitsubishiheavy88_3109',['mitsubishiHeavy88',['../classIRac.html#af6c9084c5e902f98a03ad0eaf3b9448e',1,'IRac']]],
|
||||
['mode_3110',['mode',['../structstdAc_1_1state__t.html#ae5e4b17fac2ea36300f796670337d7a7',1,'stdAc::state_t::mode()'],['../unionAirwellProtocol.html#a4a12b674ee9dcdbca592a1c5f3deb43e',1,'AirwellProtocol::Mode()'],['../unionAmcorProtocol.html#a5eca17db0b0ac0a2a46d72eaa4b098f8',1,'AmcorProtocol::Mode()'],['../unionArgoProtocol.html#afac4337c33e8a2b8e12b84890121e00c',1,'ArgoProtocol::Mode()'],['../unionCarrierProtocol.html#a5fed7d2b743b55fb9a95293f026a9c24',1,'CarrierProtocol::Mode()'],['../unionCoolixProtocol.html#a5f2ec6733ba352bd48657adbf4f30985',1,'CoolixProtocol::Mode()'],['../unionCoronaProtocol.html#aad77fd87c02ef022da013116123d3531',1,'CoronaProtocol::Mode()'],['../unionDaikinESPProtocol.html#aefdc3a04bf204c67e206fef9ed3f5437',1,'DaikinESPProtocol::Mode()'],['../unionDaikin2Protocol.html#acfbbd30de1109b5a9785a6b94ec90af0',1,'Daikin2Protocol::Mode()'],['../unionDaikin216Protocol.html#aebf6b168e83ebfac591e388406a30357',1,'Daikin216Protocol::Mode()'],['../unionDaikin160Protocol.html#a7a543fcb3ba65efbb38656d38eed1141',1,'Daikin160Protocol::Mode()'],['../unionDaikin176Protocol.html#a0293203bc447806c08ea522d6eb91495',1,'Daikin176Protocol::Mode()'],['../unionDaikin128Protocol.html#a14769c0405d7bcf2c45671c4c8c915ff',1,'Daikin128Protocol::Mode()'],['../unionDaikin152Protocol.html#af73fd18c8bd261cb38a36f9c8342b4bc',1,'Daikin152Protocol::Mode()'],['../unionDaikin64Protocol.html#a34934dd4432c5e99cdc2a17b6af803b9',1,'Daikin64Protocol::Mode()'],['../unionDelonghiProtocol.html#a41b3aa93923059ec0bc099a592318ff0',1,'DelonghiProtocol::Mode()'],['../unionElectraProtocol.html#a27e64c16e4cefeac55cd12165554e0b0',1,'ElectraProtocol::Mode()'],['../unionGoodweatherProtocol.html#a28863cfa136ed7014d8ca982d38a4539',1,'GoodweatherProtocol::Mode()'],['../unionGreeProtocol.html#aacd25e508a37e0012295a87e712987ce',1,'GreeProtocol::Mode()'],['../unionHaierProtocol.html#aab10d402084329d472e08385cc9645ec',1,'HaierProtocol::Mode()'],['../unionHaierYRW02Protocol.html#a8b9060ce2e0b1e9192191e6ae68277dd',1,'HaierYRW02Protocol::Mode()'],['../unionHitachiProtocol.html#a33a6af1c7bb33cd97361f2602c215ab2',1,'HitachiProtocol::Mode()'],['../unionHitachi424Protocol.html#a6ddbf518e843e9021bbd0463911b4844',1,'Hitachi424Protocol::Mode()'],['../unionHitachi1Protocol.html#a0434892d9ad4acaa36ef10810fb4b8fe',1,'Hitachi1Protocol::Mode()'],['../unionKelvinatorProtocol.html#abd6a849c39d0e7e231a1cf42d32f52e7',1,'KelvinatorProtocol::Mode()'],['../unionLGProtocol.html#adea2990a6e13a31ecb6f8c70c0702543',1,'LGProtocol::Mode()'],['../unionMideaProtocol.html#aa0255e9e1351d594b2e2c8c6f9698e1a',1,'MideaProtocol::Mode()'],['../unionMitsubishi144Protocol.html#aa387b388f300a2098fe9c965e86b9d95',1,'Mitsubishi144Protocol::Mode()'],['../unionMitsubishi136Protocol.html#a4af660641dfa4412b4993f82eb241765',1,'Mitsubishi136Protocol::Mode()'],['../unionMitsubishi112Protocol.html#ae3ff03a52146e8dff59f0755b7d59333',1,'Mitsubishi112Protocol::Mode()'],['../unionMitsubishi152Protocol.html#a36477f5724467a75f32f2d25fee4db73',1,'Mitsubishi152Protocol::Mode()'],['../unionMitsubishi88Protocol.html#a947e25b4cfbb171aeb42d3a60404d751',1,'Mitsubishi88Protocol::Mode()'],['../unionVoltasProtocol.html#ad991a7ccaf9caa0b9f7880f4138f1dab',1,'VoltasProtocol::Mode()']]],
|
||||
['modebutton_3111',['ModeButton',['../unionDaikin176Protocol.html#af48f77b741bcfa7717497077c50ee240',1,'Daikin176Protocol']]],
|
||||
['model_3112',['model',['../structstdAc_1_1state__t.html#aa1a57a63b2ea80c1f9c4a1bcf16a4c62',1,'stdAc::state_t::model()'],['../unionHitachi1Protocol.html#aad97f1edb72b8786423089f1dad70681',1,'Hitachi1Protocol::Model()']]],
|
||||
['modela_3113',['ModelA',['../unionGreeProtocol.html#a66fdedd8318541269f0ab9ae3b832813',1,'GreeProtocol']]],
|
||||
['modeltostr_3114',['modelToStr',['../namespaceirutils.html#ae89b70ce66617a8707c1951eadbc6fbd',1,'irutils']]],
|
||||
['modulation_3115',['modulation',['../classIRsend.html#a11e26c03c87e2bed756eb7f318570bd8',1,'IRsend']]],
|
||||
['mold_3116',['Mold',['../unionDaikinESPProtocol.html#a61c7eeeb3589f775897d79a130dd1be8',1,'DaikinESPProtocol::Mold()'],['../unionDaikin2Protocol.html#a18207f0f0913ade09f16ba2e98a5dbf1',1,'Daikin2Protocol::Mold()']]],
|
||||
['mstostring_3117',['msToString',['../namespaceirutils.html#a9c59c8dd886c283fdb8adc9082c6890a',1,'irutils']]],
|
||||
['multibrackets_3118',['MULTIBRACKETS',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fadaaebb72f3ad9ff2a706d8041763de6e49',1,'IRremoteESP8266.h']]],
|
||||
['mwm_3119',['MWM',['../IRremoteESP8266_8h.html#ad5b287a488a8c1b7b8661f029ab56fada8a6938c955212e1fb81fb511437cbe56',1,'IRremoteESP8266.h']]]
|
||||
];
|
@ -1,6 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['airwellprotocol_3571',['AirwellProtocol',['../unionAirwellProtocol.html',1,'']]],
|
||||
['amcorprotocol_3572',['AmcorProtocol',['../unionAmcorProtocol.html',1,'']]],
|
||||
['argoprotocol_3573',['ArgoProtocol',['../unionArgoProtocol.html',1,'']]]
|
||||
];
|
@ -1,7 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['carrierprotocol_3574',['CarrierProtocol',['../unionCarrierProtocol.html',1,'']]],
|
||||
['coolixprotocol_3575',['CoolixProtocol',['../unionCoolixProtocol.html',1,'']]],
|
||||
['coronaprotocol_3576',['CoronaProtocol',['../unionCoronaProtocol.html',1,'']]],
|
||||
['coronasection_3577',['CoronaSection',['../structCoronaSection.html',1,'']]]
|
||||
];
|
@ -1,13 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['daikin128protocol_3578',['Daikin128Protocol',['../unionDaikin128Protocol.html',1,'']]],
|
||||
['daikin152protocol_3579',['Daikin152Protocol',['../unionDaikin152Protocol.html',1,'']]],
|
||||
['daikin160protocol_3580',['Daikin160Protocol',['../unionDaikin160Protocol.html',1,'']]],
|
||||
['daikin176protocol_3581',['Daikin176Protocol',['../unionDaikin176Protocol.html',1,'']]],
|
||||
['daikin216protocol_3582',['Daikin216Protocol',['../unionDaikin216Protocol.html',1,'']]],
|
||||
['daikin2protocol_3583',['Daikin2Protocol',['../unionDaikin2Protocol.html',1,'']]],
|
||||
['daikin64protocol_3584',['Daikin64Protocol',['../unionDaikin64Protocol.html',1,'']]],
|
||||
['daikinespprotocol_3585',['DaikinESPProtocol',['../unionDaikinESPProtocol.html',1,'']]],
|
||||
['decode_5fresults_3586',['decode_results',['../classdecode__results.html',1,'']]],
|
||||
['delonghiprotocol_3587',['DelonghiProtocol',['../unionDelonghiProtocol.html',1,'']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['electraprotocol_3588',['ElectraProtocol',['../unionElectraProtocol.html',1,'']]]
|
||||
];
|
@ -1,5 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['goodweatherprotocol_3589',['GoodweatherProtocol',['../unionGoodweatherProtocol.html',1,'']]],
|
||||
['greeprotocol_3590',['GreeProtocol',['../unionGreeProtocol.html',1,'']]]
|
||||
];
|
@ -1,8 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['haierprotocol_3591',['HaierProtocol',['../unionHaierProtocol.html',1,'']]],
|
||||
['haieryrw02protocol_3592',['HaierYRW02Protocol',['../unionHaierYRW02Protocol.html',1,'']]],
|
||||
['hitachi1protocol_3593',['Hitachi1Protocol',['../unionHitachi1Protocol.html',1,'']]],
|
||||
['hitachi424protocol_3594',['Hitachi424Protocol',['../unionHitachi424Protocol.html',1,'']]],
|
||||
['hitachiprotocol_3595',['HitachiProtocol',['../unionHitachiProtocol.html',1,'']]]
|
||||
];
|
@ -1,56 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['irac_3596',['IRac',['../classIRac.html',1,'']]],
|
||||
['irairwellac_3597',['IRAirwellAc',['../classIRAirwellAc.html',1,'']]],
|
||||
['iramcorac_3598',['IRAmcorAc',['../classIRAmcorAc.html',1,'']]],
|
||||
['irargoac_3599',['IRArgoAC',['../classIRArgoAC.html',1,'']]],
|
||||
['ircarrierac64_3600',['IRCarrierAc64',['../classIRCarrierAc64.html',1,'']]],
|
||||
['ircoolixac_3601',['IRCoolixAC',['../classIRCoolixAC.html',1,'']]],
|
||||
['ircoronaac_3602',['IRCoronaAc',['../classIRCoronaAc.html',1,'']]],
|
||||
['irdaikin128_3603',['IRDaikin128',['../classIRDaikin128.html',1,'']]],
|
||||
['irdaikin152_3604',['IRDaikin152',['../classIRDaikin152.html',1,'']]],
|
||||
['irdaikin160_3605',['IRDaikin160',['../classIRDaikin160.html',1,'']]],
|
||||
['irdaikin176_3606',['IRDaikin176',['../classIRDaikin176.html',1,'']]],
|
||||
['irdaikin2_3607',['IRDaikin2',['../classIRDaikin2.html',1,'']]],
|
||||
['irdaikin216_3608',['IRDaikin216',['../classIRDaikin216.html',1,'']]],
|
||||
['irdaikin64_3609',['IRDaikin64',['../classIRDaikin64.html',1,'']]],
|
||||
['irdaikinesp_3610',['IRDaikinESP',['../classIRDaikinESP.html',1,'']]],
|
||||
['irdelonghiac_3611',['IRDelonghiAc',['../classIRDelonghiAc.html',1,'']]],
|
||||
['irelectraac_3612',['IRElectraAc',['../classIRElectraAc.html',1,'']]],
|
||||
['irfujitsuac_3613',['IRFujitsuAC',['../classIRFujitsuAC.html',1,'']]],
|
||||
['irgoodweatherac_3614',['IRGoodweatherAc',['../classIRGoodweatherAc.html',1,'']]],
|
||||
['irgreeac_3615',['IRGreeAC',['../classIRGreeAC.html',1,'']]],
|
||||
['irhaierac_3616',['IRHaierAC',['../classIRHaierAC.html',1,'']]],
|
||||
['irhaieracyrw02_3617',['IRHaierACYRW02',['../classIRHaierACYRW02.html',1,'']]],
|
||||
['irhitachiac_3618',['IRHitachiAc',['../classIRHitachiAc.html',1,'']]],
|
||||
['irhitachiac1_3619',['IRHitachiAc1',['../classIRHitachiAc1.html',1,'']]],
|
||||
['irhitachiac3_3620',['IRHitachiAc3',['../classIRHitachiAc3.html',1,'']]],
|
||||
['irhitachiac344_3621',['IRHitachiAc344',['../classIRHitachiAc344.html',1,'']]],
|
||||
['irhitachiac424_3622',['IRHitachiAc424',['../classIRHitachiAc424.html',1,'']]],
|
||||
['irkelvinatorac_3623',['IRKelvinatorAC',['../classIRKelvinatorAC.html',1,'']]],
|
||||
['irlgac_3624',['IRLgAc',['../classIRLgAc.html',1,'']]],
|
||||
['irmideaac_3625',['IRMideaAC',['../classIRMideaAC.html',1,'']]],
|
||||
['irmitsubishi112_3626',['IRMitsubishi112',['../classIRMitsubishi112.html',1,'']]],
|
||||
['irmitsubishi136_3627',['IRMitsubishi136',['../classIRMitsubishi136.html',1,'']]],
|
||||
['irmitsubishiac_3628',['IRMitsubishiAC',['../classIRMitsubishiAC.html',1,'']]],
|
||||
['irmitsubishiheavy152ac_3629',['IRMitsubishiHeavy152Ac',['../classIRMitsubishiHeavy152Ac.html',1,'']]],
|
||||
['irmitsubishiheavy88ac_3630',['IRMitsubishiHeavy88Ac',['../classIRMitsubishiHeavy88Ac.html',1,'']]],
|
||||
['irneoclimaac_3631',['IRNeoclimaAc',['../classIRNeoclimaAc.html',1,'']]],
|
||||
['irpanasonicac_3632',['IRPanasonicAc',['../classIRPanasonicAc.html',1,'']]],
|
||||
['irparams_5ft_3633',['irparams_t',['../structirparams__t.html',1,'']]],
|
||||
['irrecv_3634',['IRrecv',['../classIRrecv.html',1,'']]],
|
||||
['irsamsungac_3635',['IRSamsungAc',['../classIRSamsungAc.html',1,'']]],
|
||||
['irsanyoac_3636',['IRSanyoAc',['../classIRSanyoAc.html',1,'']]],
|
||||
['irsend_3637',['IRsend',['../classIRsend.html',1,'']]],
|
||||
['irsharpac_3638',['IRSharpAc',['../classIRSharpAc.html',1,'']]],
|
||||
['irtcl112ac_3639',['IRTcl112Ac',['../classIRTcl112Ac.html',1,'']]],
|
||||
['irtechnibelac_3640',['IRTechnibelAc',['../classIRTechnibelAc.html',1,'']]],
|
||||
['irtecoac_3641',['IRTecoAc',['../classIRTecoAc.html',1,'']]],
|
||||
['irtimer_3642',['IRtimer',['../classIRtimer.html',1,'']]],
|
||||
['irtoshibaac_3643',['IRToshibaAC',['../classIRToshibaAC.html',1,'']]],
|
||||
['irtranscoldac_3644',['IRTranscoldAc',['../classIRTranscoldAc.html',1,'']]],
|
||||
['irtrotecesp_3645',['IRTrotecESP',['../classIRTrotecESP.html',1,'']]],
|
||||
['irvestelac_3646',['IRVestelAc',['../classIRVestelAc.html',1,'']]],
|
||||
['irvoltas_3647',['IRVoltas',['../classIRVoltas.html',1,'']]],
|
||||
['irwhirlpoolac_3648',['IRWhirlpoolAc',['../classIRWhirlpoolAc.html',1,'']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['kelvinatorprotocol_3649',['KelvinatorProtocol',['../unionKelvinatorProtocol.html',1,'']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['lgprotocol_3650',['LGProtocol',['../unionLGProtocol.html',1,'']]]
|
||||
];
|
@ -1,11 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['magiquest_3651',['magiquest',['../unionmagiquest.html',1,'']]],
|
||||
['match_5fresult_5ft_3652',['match_result_t',['../structmatch__result__t.html',1,'']]],
|
||||
['mideaprotocol_3653',['MideaProtocol',['../unionMideaProtocol.html',1,'']]],
|
||||
['mitsubishi112protocol_3654',['Mitsubishi112Protocol',['../unionMitsubishi112Protocol.html',1,'']]],
|
||||
['mitsubishi136protocol_3655',['Mitsubishi136Protocol',['../unionMitsubishi136Protocol.html',1,'']]],
|
||||
['mitsubishi144protocol_3656',['Mitsubishi144Protocol',['../unionMitsubishi144Protocol.html',1,'']]],
|
||||
['mitsubishi152protocol_3657',['Mitsubishi152Protocol',['../unionMitsubishi152Protocol.html',1,'']]],
|
||||
['mitsubishi88protocol_3658',['Mitsubishi88Protocol',['../unionMitsubishi88Protocol.html',1,'']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['state_5ft_3659',['state_t',['../structstdAc_1_1state__t.html',1,'stdAc']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['timerms_3660',['TimerMs',['../classTimerMs.html',1,'']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['voltasprotocol_3661',['VoltasProtocol',['../unionVoltasProtocol.html',1,'']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['opmode_5ft_7071',['opmode_t',['../namespacestdAc.html#a99ad268c783486f9b3207cb78f48444f',1,'stdAc']]]
|
||||
];
|
@ -1,6 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['sharp_5fac_5fremote_5fmodel_5ft_7073',['sharp_ac_remote_model_t',['../IRsend_8h.html#a258e4af12642d613587149fa734e45e7',1,'IRsend.h']]],
|
||||
['swingh_5ft_7074',['swingh_t',['../namespacestdAc.html#aae50ee315fa9c9ec1a4078da40d6b147',1,'stdAc']]],
|
||||
['swingv_5ft_7075',['swingv_t',['../namespacestdAc.html#ac07f224c7bb47cac55dd01f24770ef43',1,'stdAc']]]
|
||||
];
|
@ -1,7 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['de_2dch_2eh_3665',['de-CH.h',['../de-CH_8h.html',1,'']]],
|
||||
['de_2dde_2eh_3666',['de-DE.h',['../de-DE_8h.html',1,'']]],
|
||||
['defaults_2eh_3667',['defaults.h',['../defaults_8h.html',1,'']]],
|
||||
['doxygen_5findex_2emd_3668',['doxygen_index.md',['../doxygen__index_8md.html',1,'']]]
|
||||
];
|
@ -1,8 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['en_2dau_2eh_3669',['en-AU.h',['../en-AU_8h.html',1,'']]],
|
||||
['en_2die_2eh_3670',['en-IE.h',['../en-IE_8h.html',1,'']]],
|
||||
['en_2duk_2eh_3671',['en-UK.h',['../en-UK_8h.html',1,'']]],
|
||||
['en_2dus_2eh_3672',['en-US.h',['../en-US_8h.html',1,'']]],
|
||||
['es_2des_2eh_3673',['es-ES.h',['../es-ES_8h.html',1,'']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['fr_2dfr_2eh_3674',['fr-FR.h',['../fr-FR_8h.html',1,'']]]
|
||||
];
|
@ -1,115 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['i18n_2eh_3675',['i18n.h',['../i18n_8h.html',1,'']]],
|
||||
['ir_5fairwell_2ecpp_3676',['ir_Airwell.cpp',['../ir__Airwell_8cpp.html',1,'']]],
|
||||
['ir_5fairwell_2eh_3677',['ir_Airwell.h',['../ir__Airwell_8h.html',1,'']]],
|
||||
['ir_5faiwa_2ecpp_3678',['ir_Aiwa.cpp',['../ir__Aiwa_8cpp.html',1,'']]],
|
||||
['ir_5famcor_2ecpp_3679',['ir_Amcor.cpp',['../ir__Amcor_8cpp.html',1,'']]],
|
||||
['ir_5famcor_2eh_3680',['ir_Amcor.h',['../ir__Amcor_8h.html',1,'']]],
|
||||
['ir_5fargo_2ecpp_3681',['ir_Argo.cpp',['../ir__Argo_8cpp.html',1,'']]],
|
||||
['ir_5fargo_2eh_3682',['ir_Argo.h',['../ir__Argo_8h.html',1,'']]],
|
||||
['ir_5fcarrier_2ecpp_3683',['ir_Carrier.cpp',['../ir__Carrier_8cpp.html',1,'']]],
|
||||
['ir_5fcarrier_2eh_3684',['ir_Carrier.h',['../ir__Carrier_8h.html',1,'']]],
|
||||
['ir_5fcoolix_2ecpp_3685',['ir_Coolix.cpp',['../ir__Coolix_8cpp.html',1,'']]],
|
||||
['ir_5fcoolix_2eh_3686',['ir_Coolix.h',['../ir__Coolix_8h.html',1,'']]],
|
||||
['ir_5fcorona_2ecpp_3687',['ir_Corona.cpp',['../ir__Corona_8cpp.html',1,'']]],
|
||||
['ir_5fcorona_2eh_3688',['ir_Corona.h',['../ir__Corona_8h.html',1,'']]],
|
||||
['ir_5fdaikin_2ecpp_3689',['ir_Daikin.cpp',['../ir__Daikin_8cpp.html',1,'']]],
|
||||
['ir_5fdaikin_2eh_3690',['ir_Daikin.h',['../ir__Daikin_8h.html',1,'']]],
|
||||
['ir_5fdelonghi_2ecpp_3691',['ir_Delonghi.cpp',['../ir__Delonghi_8cpp.html',1,'']]],
|
||||
['ir_5fdelonghi_2eh_3692',['ir_Delonghi.h',['../ir__Delonghi_8h.html',1,'']]],
|
||||
['ir_5fdenon_2ecpp_3693',['ir_Denon.cpp',['../ir__Denon_8cpp.html',1,'']]],
|
||||
['ir_5fdish_2ecpp_3694',['ir_Dish.cpp',['../ir__Dish_8cpp.html',1,'']]],
|
||||
['ir_5fdoshisha_2ecpp_3695',['ir_Doshisha.cpp',['../ir__Doshisha_8cpp.html',1,'']]],
|
||||
['ir_5felectra_2ecpp_3696',['ir_Electra.cpp',['../ir__Electra_8cpp.html',1,'']]],
|
||||
['ir_5felectra_2eh_3697',['ir_Electra.h',['../ir__Electra_8h.html',1,'']]],
|
||||
['ir_5felitescreens_2ecpp_3698',['ir_EliteScreens.cpp',['../ir__EliteScreens_8cpp.html',1,'']]],
|
||||
['ir_5fepson_2ecpp_3699',['ir_Epson.cpp',['../ir__Epson_8cpp.html',1,'']]],
|
||||
['ir_5ffujitsu_2ecpp_3700',['ir_Fujitsu.cpp',['../ir__Fujitsu_8cpp.html',1,'']]],
|
||||
['ir_5ffujitsu_2eh_3701',['ir_Fujitsu.h',['../ir__Fujitsu_8h.html',1,'']]],
|
||||
['ir_5fgicable_2ecpp_3702',['ir_GICable.cpp',['../ir__GICable_8cpp.html',1,'']]],
|
||||
['ir_5fglobalcache_2ecpp_3703',['ir_GlobalCache.cpp',['../ir__GlobalCache_8cpp.html',1,'']]],
|
||||
['ir_5fgoodweather_2ecpp_3704',['ir_Goodweather.cpp',['../ir__Goodweather_8cpp.html',1,'']]],
|
||||
['ir_5fgoodweather_2eh_3705',['ir_Goodweather.h',['../ir__Goodweather_8h.html',1,'']]],
|
||||
['ir_5fgree_2ecpp_3706',['ir_Gree.cpp',['../ir__Gree_8cpp.html',1,'']]],
|
||||
['ir_5fgree_2eh_3707',['ir_Gree.h',['../ir__Gree_8h.html',1,'']]],
|
||||
['ir_5fhaier_2ecpp_3708',['ir_Haier.cpp',['../ir__Haier_8cpp.html',1,'']]],
|
||||
['ir_5fhaier_2eh_3709',['ir_Haier.h',['../ir__Haier_8h.html',1,'']]],
|
||||
['ir_5fhitachi_2ecpp_3710',['ir_Hitachi.cpp',['../ir__Hitachi_8cpp.html',1,'']]],
|
||||
['ir_5fhitachi_2eh_3711',['ir_Hitachi.h',['../ir__Hitachi_8h.html',1,'']]],
|
||||
['ir_5finax_2ecpp_3712',['ir_Inax.cpp',['../ir__Inax_8cpp.html',1,'']]],
|
||||
['ir_5fjvc_2ecpp_3713',['ir_JVC.cpp',['../ir__JVC_8cpp.html',1,'']]],
|
||||
['ir_5fkelvinator_2ecpp_3714',['ir_Kelvinator.cpp',['../ir__Kelvinator_8cpp.html',1,'']]],
|
||||
['ir_5fkelvinator_2eh_3715',['ir_Kelvinator.h',['../ir__Kelvinator_8h.html',1,'']]],
|
||||
['ir_5flasertag_2ecpp_3716',['ir_Lasertag.cpp',['../ir__Lasertag_8cpp.html',1,'']]],
|
||||
['ir_5flego_2ecpp_3717',['ir_Lego.cpp',['../ir__Lego_8cpp.html',1,'']]],
|
||||
['ir_5flg_2ecpp_3718',['ir_LG.cpp',['../ir__LG_8cpp.html',1,'']]],
|
||||
['ir_5flg_2eh_3719',['ir_LG.h',['../ir__LG_8h.html',1,'']]],
|
||||
['ir_5flutron_2ecpp_3720',['ir_Lutron.cpp',['../ir__Lutron_8cpp.html',1,'']]],
|
||||
['ir_5fmagiquest_2ecpp_3721',['ir_Magiquest.cpp',['../ir__Magiquest_8cpp.html',1,'']]],
|
||||
['ir_5fmagiquest_2eh_3722',['ir_Magiquest.h',['../ir__Magiquest_8h.html',1,'']]],
|
||||
['ir_5fmetz_2ecpp_3723',['ir_Metz.cpp',['../ir__Metz_8cpp.html',1,'']]],
|
||||
['ir_5fmidea_2ecpp_3724',['ir_Midea.cpp',['../ir__Midea_8cpp.html',1,'']]],
|
||||
['ir_5fmidea_2eh_3725',['ir_Midea.h',['../ir__Midea_8h.html',1,'']]],
|
||||
['ir_5fmirage_2ecpp_3726',['ir_Mirage.cpp',['../ir__Mirage_8cpp.html',1,'']]],
|
||||
['ir_5fmitsubishi_2ecpp_3727',['ir_Mitsubishi.cpp',['../ir__Mitsubishi_8cpp.html',1,'']]],
|
||||
['ir_5fmitsubishi_2eh_3728',['ir_Mitsubishi.h',['../ir__Mitsubishi_8h.html',1,'']]],
|
||||
['ir_5fmitsubishiheavy_2ecpp_3729',['ir_MitsubishiHeavy.cpp',['../ir__MitsubishiHeavy_8cpp.html',1,'']]],
|
||||
['ir_5fmitsubishiheavy_2eh_3730',['ir_MitsubishiHeavy.h',['../ir__MitsubishiHeavy_8h.html',1,'']]],
|
||||
['ir_5fmultibrackets_2ecpp_3731',['ir_Multibrackets.cpp',['../ir__Multibrackets_8cpp.html',1,'']]],
|
||||
['ir_5fmwm_2ecpp_3732',['ir_MWM.cpp',['../ir__MWM_8cpp.html',1,'']]],
|
||||
['ir_5fnec_2ecpp_3733',['ir_NEC.cpp',['../ir__NEC_8cpp.html',1,'']]],
|
||||
['ir_5fnec_2eh_3734',['ir_NEC.h',['../ir__NEC_8h.html',1,'']]],
|
||||
['ir_5fneoclima_2ecpp_3735',['ir_Neoclima.cpp',['../ir__Neoclima_8cpp.html',1,'']]],
|
||||
['ir_5fneoclima_2eh_3736',['ir_Neoclima.h',['../ir__Neoclima_8h.html',1,'']]],
|
||||
['ir_5fnikai_2ecpp_3737',['ir_Nikai.cpp',['../ir__Nikai_8cpp.html',1,'']]],
|
||||
['ir_5fpanasonic_2ecpp_3738',['ir_Panasonic.cpp',['../ir__Panasonic_8cpp.html',1,'']]],
|
||||
['ir_5fpanasonic_2eh_3739',['ir_Panasonic.h',['../ir__Panasonic_8h.html',1,'']]],
|
||||
['ir_5fpioneer_2ecpp_3740',['ir_Pioneer.cpp',['../ir__Pioneer_8cpp.html',1,'']]],
|
||||
['ir_5fpronto_2ecpp_3741',['ir_Pronto.cpp',['../ir__Pronto_8cpp.html',1,'']]],
|
||||
['ir_5frc5_5frc6_2ecpp_3742',['ir_RC5_RC6.cpp',['../ir__RC5__RC6_8cpp.html',1,'']]],
|
||||
['ir_5frcmm_2ecpp_3743',['ir_RCMM.cpp',['../ir__RCMM_8cpp.html',1,'']]],
|
||||
['ir_5fsamsung_2ecpp_3744',['ir_Samsung.cpp',['../ir__Samsung_8cpp.html',1,'']]],
|
||||
['ir_5fsamsung_2eh_3745',['ir_Samsung.h',['../ir__Samsung_8h.html',1,'']]],
|
||||
['ir_5fsanyo_2ecpp_3746',['ir_Sanyo.cpp',['../ir__Sanyo_8cpp.html',1,'']]],
|
||||
['ir_5fsanyo_2eh_3747',['ir_Sanyo.h',['../ir__Sanyo_8h.html',1,'']]],
|
||||
['ir_5fsharp_2ecpp_3748',['ir_Sharp.cpp',['../ir__Sharp_8cpp.html',1,'']]],
|
||||
['ir_5fsharp_2eh_3749',['ir_Sharp.h',['../ir__Sharp_8h.html',1,'']]],
|
||||
['ir_5fsherwood_2ecpp_3750',['ir_Sherwood.cpp',['../ir__Sherwood_8cpp.html',1,'']]],
|
||||
['ir_5fsony_2ecpp_3751',['ir_Sony.cpp',['../ir__Sony_8cpp.html',1,'']]],
|
||||
['ir_5fsymphony_2ecpp_3752',['ir_Symphony.cpp',['../ir__Symphony_8cpp.html',1,'']]],
|
||||
['ir_5ftcl_2ecpp_3753',['ir_Tcl.cpp',['../ir__Tcl_8cpp.html',1,'']]],
|
||||
['ir_5ftcl_2eh_3754',['ir_Tcl.h',['../ir__Tcl_8h.html',1,'']]],
|
||||
['ir_5ftechnibel_2ecpp_3755',['ir_Technibel.cpp',['../ir__Technibel_8cpp.html',1,'']]],
|
||||
['ir_5ftechnibel_2eh_3756',['ir_Technibel.h',['../ir__Technibel_8h.html',1,'']]],
|
||||
['ir_5fteco_2ecpp_3757',['ir_Teco.cpp',['../ir__Teco_8cpp.html',1,'']]],
|
||||
['ir_5fteco_2eh_3758',['ir_Teco.h',['../ir__Teco_8h.html',1,'']]],
|
||||
['ir_5ftoshiba_2ecpp_3759',['ir_Toshiba.cpp',['../ir__Toshiba_8cpp.html',1,'']]],
|
||||
['ir_5ftoshiba_2eh_3760',['ir_Toshiba.h',['../ir__Toshiba_8h.html',1,'']]],
|
||||
['ir_5ftranscold_2ecpp_3761',['ir_Transcold.cpp',['../ir__Transcold_8cpp.html',1,'']]],
|
||||
['ir_5ftranscold_2eh_3762',['ir_Transcold.h',['../ir__Transcold_8h.html',1,'']]],
|
||||
['ir_5ftrotec_2ecpp_3763',['ir_Trotec.cpp',['../ir__Trotec_8cpp.html',1,'']]],
|
||||
['ir_5ftrotec_2eh_3764',['ir_Trotec.h',['../ir__Trotec_8h.html',1,'']]],
|
||||
['ir_5fvestel_2ecpp_3765',['ir_Vestel.cpp',['../ir__Vestel_8cpp.html',1,'']]],
|
||||
['ir_5fvestel_2eh_3766',['ir_Vestel.h',['../ir__Vestel_8h.html',1,'']]],
|
||||
['ir_5fvoltas_2ecpp_3767',['ir_Voltas.cpp',['../ir__Voltas_8cpp.html',1,'']]],
|
||||
['ir_5fvoltas_2eh_3768',['ir_Voltas.h',['../ir__Voltas_8h.html',1,'']]],
|
||||
['ir_5fwhirlpool_2ecpp_3769',['ir_Whirlpool.cpp',['../ir__Whirlpool_8cpp.html',1,'']]],
|
||||
['ir_5fwhirlpool_2eh_3770',['ir_Whirlpool.h',['../ir__Whirlpool_8h.html',1,'']]],
|
||||
['ir_5fwhynter_2ecpp_3771',['ir_Whynter.cpp',['../ir__Whynter_8cpp.html',1,'']]],
|
||||
['ir_5fzepeal_2ecpp_3772',['ir_Zepeal.cpp',['../ir__Zepeal_8cpp.html',1,'']]],
|
||||
['irac_2ecpp_3773',['IRac.cpp',['../IRac_8cpp.html',1,'']]],
|
||||
['irac_2eh_3774',['IRac.h',['../IRac_8h.html',1,'']]],
|
||||
['irrecv_2ecpp_3775',['IRrecv.cpp',['../IRrecv_8cpp.html',1,'']]],
|
||||
['irrecv_2eh_3776',['IRrecv.h',['../IRrecv_8h.html',1,'']]],
|
||||
['irremoteesp8266_2eh_3777',['IRremoteESP8266.h',['../IRremoteESP8266_8h.html',1,'']]],
|
||||
['irsend_2ecpp_3778',['IRsend.cpp',['../IRsend_8cpp.html',1,'']]],
|
||||
['irsend_2eh_3779',['IRsend.h',['../IRsend_8h.html',1,'']]],
|
||||
['irtext_2ecpp_3780',['IRtext.cpp',['../IRtext_8cpp.html',1,'']]],
|
||||
['irtext_2eh_3781',['IRtext.h',['../IRtext_8h.html',1,'']]],
|
||||
['irtimer_2ecpp_3782',['IRtimer.cpp',['../IRtimer_8cpp.html',1,'']]],
|
||||
['irtimer_2eh_3783',['IRtimer.h',['../IRtimer_8h.html',1,'']]],
|
||||
['irutils_2ecpp_3784',['IRutils.cpp',['../IRutils_8cpp.html',1,'']]],
|
||||
['irutils_2eh_3785',['IRutils.h',['../IRutils_8h.html',1,'']]],
|
||||
['it_2dit_2eh_3786',['it-IT.h',['../it-IT_8h.html',1,'']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['pt_2dbr_2eh_3787',['pt-BR.h',['../pt-BR_8h.html',1,'']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['readme_2emd_3788',['README.md',['../README_8md.html',1,'']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['zh_2dcn_2eh_3789',['zh-CN.h',['../zh-CN_8h.html',1,'']]]
|
||||
];
|
@ -1,21 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['_5fbackupstate_3790',['_backupState',['../classIRToshibaAC.html#a108c23cb859a64228166e5385295a1e5',1,'IRToshibaAC']]],
|
||||
['_5fcancelofftimer_3791',['_cancelOffTimer',['../classIRCarrierAc64.html#a4a0fdf34836b1c954b27c9b242324679',1,'IRCarrierAc64']]],
|
||||
['_5fcancelontimer_3792',['_cancelOnTimer',['../classIRCarrierAc64.html#a43e7be5a1a6fe2dbfe245e99d2205779',1,'IRCarrierAc64']]],
|
||||
['_5fdelaymicroseconds_3793',['_delayMicroseconds',['../classIRsend.html#a61ceb32aa53f538b93377b10e58b45c9',1,'IRsend']]],
|
||||
['_5fgeteconotoggle_3794',['_getEconoToggle',['../classIRSharpAc.html#aa34bac2a54091508fc059c46c98cc255',1,'IRSharpAc']]],
|
||||
['_5fgettemp_3795',['_getTemp',['../classIRSanyoAc.html#a958a4d66a2e17dccefaedad45787355e',1,'IRSanyoAc']]],
|
||||
['_5fgettime_3796',['_getTime',['../classIRPanasonicAc.html#ab0a592b759daf90be548ac69ae99f40f',1,'IRPanasonicAc']]],
|
||||
['_5fgettimer_3797',['_getTimer',['../classIRCoronaAc.html#a352fedb1c80549d2b580e538d8ba7901',1,'IRCoronaAc::_getTimer()'],['../classIRVestelAc.html#ad3f095d248ad3c84a777ed9f2d3b001e',1,'IRVestelAc::_getTimer()']]],
|
||||
['_5fmatchgeneric_3798',['_matchGeneric',['../classIRrecv.html#af0b300fe6fdff58324525e8208be3024',1,'IRrecv']]],
|
||||
['_5frestorestate_3799',['_restoreState',['../classIRToshibaAC.html#a23fb190770159f8f1e9bf64df22e8a26',1,'IRToshibaAC']]],
|
||||
['_5fsendsony_3800',['_sendSony',['../classIRsend.html#a21352b4499f976872a74bae36ea10338',1,'IRsend']]],
|
||||
['_5fseteconotoggle_3801',['_setEconoToggle',['../classIRSharpAc.html#a959d422c7e5a5204909b299a5fbb2a69',1,'IRSharpAc']]],
|
||||
['_5fsetmode_3802',['_setMode',['../classIRWhirlpoolAc.html#a60fd8da35d6e0137711e114a5307d664',1,'IRWhirlpoolAc']]],
|
||||
['_5fsettemp_3803',['_setTemp',['../classIRLgAc.html#a39aca9861608211c8e74c89a7ccc97cd',1,'IRLgAc::_setTemp()'],['../classIRSanyoAc.html#a4c8c0606f6bb82b0c55b179c9f4a7bda',1,'IRSanyoAc::_setTemp()'],['../classIRWhirlpoolAc.html#abb221e09077efd96304f84e8ca130458',1,'IRWhirlpoolAc::_setTemp()']]],
|
||||
['_5fsettime_3804',['_setTime',['../classIRPanasonicAc.html#a51e306dd7a3e4d580ed5396fcd166141',1,'IRPanasonicAc']]],
|
||||
['_5fsettimer_3805',['_setTimer',['../classIRCoronaAc.html#a0ea9319987de7cb7f3dcb9fbefb60a2c',1,'IRCoronaAc::_setTimer()'],['../classIRVestelAc.html#a726178a16458c84d031aec07355d0dd2',1,'IRVestelAc::_setTimer()']]],
|
||||
['_5ftostring_3806',['_toString',['../classIRHitachiAc424.html#af8ff90fe9beb31d8f44310a9e646a230',1,'IRHitachiAc424']]],
|
||||
['_5fvalidtolerance_3807',['_validTolerance',['../classIRrecv.html#a0b4221970de0d027b5ae99648fa1c003',1,'IRrecv']]]
|
||||
];
|
@ -1,15 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['add_3808',['add',['../classIRtimer.html#aa8e3ff975ae5468b4727790c828fa032',1,'IRtimer::add()'],['../classTimerMs.html#a77bfc23a029a9172c3dbac03f746b0cb',1,'TimerMs::add()']]],
|
||||
['addbooltostring_3809',['addBoolToString',['../namespaceirutils.html#a12ba9cf1830a886649a80c3cc5fdce2b',1,'irutils']]],
|
||||
['adddaytostring_3810',['addDayToString',['../namespaceirutils.html#a6ead1d10578c64627f8a24b5d8a7444f',1,'irutils']]],
|
||||
['addfantostring_3811',['addFanToString',['../namespaceirutils.html#ae023bbabc452173d348c14eac7d86ab4',1,'irutils']]],
|
||||
['addinttostring_3812',['addIntToString',['../namespaceirutils.html#a772e623c4b60208200e02afbaec66651',1,'irutils']]],
|
||||
['addlabeledstring_3813',['addLabeledString',['../namespaceirutils.html#ac98793392d1e65c1b8d6895eb9d9b75b',1,'irutils']]],
|
||||
['addmodeltostring_3814',['addModelToString',['../namespaceirutils.html#a06e5a5c2b6f6649035dfa5eb19801367',1,'irutils']]],
|
||||
['addmodetostring_3815',['addModeToString',['../namespaceirutils.html#a8b74ae0258e98aa0eaebc6f3efe1481e',1,'irutils']]],
|
||||
['addtemptostring_3816',['addTempToString',['../namespaceirutils.html#a0cef0634f4db979a93b7dc19cc2b4a85',1,'irutils']]],
|
||||
['airwell_3817',['airwell',['../classIRac.html#a26cd62e09250d87b652d35406ebfb159',1,'IRac']]],
|
||||
['amcor_3818',['amcor',['../classIRac.html#a4bad16621b232572e14fe4a53f678131',1,'IRac']]],
|
||||
['argo_3819',['argo',['../classIRac.html#aa06ee1314529dbf96f4e6f3c28ea6821',1,'IRac']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['whirlpool_4493',['whirlpool',['../classIRac.html#ae5f7a03589f614c03c5ad8629100b05a',1,'IRac']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['_7eirrecv_4495',['~IRrecv',['../classIRrecv.html#a87d4cca5e350177cb0922842dda1eb5b',1,'IRrecv']]]
|
||||
];
|
@ -1,103 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['daikin_3858',['daikin',['../classIRac.html#afb6d77bbeb5b2465437cef4f58b83e0e',1,'IRac']]],
|
||||
['daikin128_3859',['daikin128',['../classIRac.html#a8fe7c254e1bcb32b6b6fdc1f91693a50',1,'IRac']]],
|
||||
['daikin152_3860',['daikin152',['../classIRac.html#a6dff8e608e3e9fecffe71c3fd1ebe74e',1,'IRac']]],
|
||||
['daikin160_3861',['daikin160',['../classIRac.html#a3b34f44d713efa52f30d43405cde831c',1,'IRac']]],
|
||||
['daikin176_3862',['daikin176',['../classIRac.html#aaae173fd58a7b53c3f4d2edbf7c4afe7',1,'IRac']]],
|
||||
['daikin2_3863',['daikin2',['../classIRac.html#a89eddc0e1b3c41c608208d2752dc954c',1,'IRac']]],
|
||||
['daikin216_3864',['daikin216',['../classIRac.html#a101ac8b9e9564e557ef1a1f61ff111d9',1,'IRac']]],
|
||||
['daikin64_3865',['daikin64',['../classIRac.html#a074db6fc0cff2878d80a397020e1b249',1,'IRac']]],
|
||||
['decode_3866',['decode',['../classIRrecv.html#aeaa5c07a8b46f8fbb982f996cc1f9f4b',1,'IRrecv']]],
|
||||
['decodeairwell_3867',['decodeAirwell',['../classIRrecv.html#acf4635d5ee146a82498cb0c269b6af41',1,'IRrecv']]],
|
||||
['decodeaiwarct501_3868',['decodeAiwaRCT501',['../classIRrecv.html#aa4d678376a4c0f8ea953474a6f5ef9d2',1,'IRrecv']]],
|
||||
['decodeamcor_3869',['decodeAmcor',['../classIRrecv.html#a8d81fcfb47e36925975d313027689a44',1,'IRrecv']]],
|
||||
['decodeargo_3870',['decodeArgo',['../classIRrecv.html#a94f12dc000a6e7b75ea8680fd48fc487',1,'IRrecv']]],
|
||||
['decodecarrierac_3871',['decodeCarrierAC',['../classIRrecv.html#acf3d1c37038120a5c0996d92577ce74a',1,'IRrecv']]],
|
||||
['decodecarrierac40_3872',['decodeCarrierAC40',['../classIRrecv.html#a4bdb35ec34f49401a6b9becd15b8a3b5',1,'IRrecv']]],
|
||||
['decodecarrierac64_3873',['decodeCarrierAC64',['../classIRrecv.html#a79d03c31da48a385ab47cc8f342ef9b3',1,'IRrecv']]],
|
||||
['decodecoolix_3874',['decodeCOOLIX',['../classIRrecv.html#a964af7e72e2133688f0596c718cb98ca',1,'IRrecv']]],
|
||||
['decodecoronaac_3875',['decodeCoronaAc',['../classIRrecv.html#a981cba14551c93af57f9c1c0e1775d12',1,'IRrecv']]],
|
||||
['decodedaikin_3876',['decodeDaikin',['../classIRrecv.html#a141f0de9f4cae8daeb025aff3904ecaa',1,'IRrecv']]],
|
||||
['decodedaikin128_3877',['decodeDaikin128',['../classIRrecv.html#ac7188577c874d9f8f19304a3ec775415',1,'IRrecv']]],
|
||||
['decodedaikin152_3878',['decodeDaikin152',['../classIRrecv.html#ab20a6586b4e56cc428012ec96f5ccc2c',1,'IRrecv']]],
|
||||
['decodedaikin160_3879',['decodeDaikin160',['../classIRrecv.html#af0b9822defe6b29099079d664d9dc413',1,'IRrecv']]],
|
||||
['decodedaikin176_3880',['decodeDaikin176',['../classIRrecv.html#aa142d1340201b6fdc5b462f46fe21ee0',1,'IRrecv']]],
|
||||
['decodedaikin2_3881',['decodeDaikin2',['../classIRrecv.html#a4c4799a0d45ea5562159c46939617d80',1,'IRrecv']]],
|
||||
['decodedaikin216_3882',['decodeDaikin216',['../classIRrecv.html#a7f860686a5c58aa8f4d1842cfb15b2f9',1,'IRrecv']]],
|
||||
['decodedaikin64_3883',['decodeDaikin64',['../classIRrecv.html#a030701f081a9c6eab0c07b75433b524c',1,'IRrecv']]],
|
||||
['decodedelonghiac_3884',['decodeDelonghiAc',['../classIRrecv.html#a8c91cc83770d243e942387cc16e9ca6f',1,'IRrecv']]],
|
||||
['decodedenon_3885',['decodeDenon',['../classIRrecv.html#a0b1bd1c817cb43bc3755126191b7f4a2',1,'IRrecv']]],
|
||||
['decodedish_3886',['decodeDISH',['../classIRrecv.html#a851776d9178aeb706d9a1abd3f254e31',1,'IRrecv']]],
|
||||
['decodedoshisha_3887',['decodeDoshisha',['../classIRrecv.html#a675c45e6b32aaeca3de734ccf2f0c819',1,'IRrecv']]],
|
||||
['decodeelectraac_3888',['decodeElectraAC',['../classIRrecv.html#ad3a7be8afc36451c8e28e27f3c3e9aaa',1,'IRrecv']]],
|
||||
['decodeelitescreens_3889',['decodeElitescreens',['../classIRrecv.html#ac830ece2c2c200b8c13fcd66828e2846',1,'IRrecv']]],
|
||||
['decodeepson_3890',['decodeEpson',['../classIRrecv.html#aaadef8415f273ba25f4086fecd681d2e',1,'IRrecv']]],
|
||||
['decodefujitsuac_3891',['decodeFujitsuAC',['../classIRrecv.html#aa3778bdf994bf9c99ac48ef95434a826',1,'IRrecv']]],
|
||||
['decodegicable_3892',['decodeGICable',['../classIRrecv.html#afade8dac9b1d023e5e0946e6b2c08aea',1,'IRrecv']]],
|
||||
['decodegoodweather_3893',['decodeGoodweather',['../classIRrecv.html#a64650ce7dbaf5fc860a6a253d906e9de',1,'IRrecv']]],
|
||||
['decodegree_3894',['decodeGree',['../classIRrecv.html#a2e756342d7524a13d53d6c656700638c',1,'IRrecv']]],
|
||||
['decodehaierac_3895',['decodeHaierAC',['../classIRrecv.html#ad97403174f05197a7fa9a4a0107e3111',1,'IRrecv']]],
|
||||
['decodehaieracyrw02_3896',['decodeHaierACYRW02',['../classIRrecv.html#a281fb9d972fee75db49209c42f649822',1,'IRrecv']]],
|
||||
['decodehash_3897',['decodeHash',['../classIRrecv.html#a7c15fbfa7936ca474712a1953911fd06',1,'IRrecv']]],
|
||||
['decodehitachiac_3898',['decodeHitachiAC',['../classIRrecv.html#aa42facfffc0e304005272b6ddd4583c8',1,'IRrecv']]],
|
||||
['decodehitachiac1_3899',['decodeHitachiAC1',['../classIRrecv.html#a122e0dcbf14c90ec2d77399acce21459',1,'IRrecv']]],
|
||||
['decodehitachiac3_3900',['decodeHitachiAc3',['../classIRrecv.html#a113bc834eff00f55d5545ce3fa1ab203',1,'IRrecv']]],
|
||||
['decodehitachiac424_3901',['decodeHitachiAc424',['../classIRrecv.html#a01c3dda56d6d916076fa1affa2213129',1,'IRrecv']]],
|
||||
['decodeinax_3902',['decodeInax',['../classIRrecv.html#a94545c6a8da027b9cb0e23ecba4c29d8',1,'IRrecv']]],
|
||||
['decodejvc_3903',['decodeJVC',['../classIRrecv.html#a25ab71efc223a418e9630d8421f44bc9',1,'IRrecv']]],
|
||||
['decodekelvinator_3904',['decodeKelvinator',['../classIRrecv.html#a0ac82f20b48b2d71ee07eb392578b226',1,'IRrecv']]],
|
||||
['decodelasertag_3905',['decodeLasertag',['../classIRrecv.html#ae4af614a45ea65cb3304ef5bd7965122',1,'IRrecv']]],
|
||||
['decodelegopf_3906',['decodeLegoPf',['../classIRrecv.html#aea75ad0ba1d8fec33de16501940f2553',1,'IRrecv']]],
|
||||
['decodelg_3907',['decodeLG',['../classIRrecv.html#afe70015c36b1477a5de0c193163e13a7',1,'IRrecv']]],
|
||||
['decodelutron_3908',['decodeLutron',['../classIRrecv.html#a6093c4404a9a9d415c5bfeab5ec53be5',1,'IRrecv']]],
|
||||
['decodemagiquest_3909',['decodeMagiQuest',['../classIRrecv.html#a6f3bfcc6767484151dee758bcf94fb0b',1,'IRrecv']]],
|
||||
['decodemetz_3910',['decodeMetz',['../classIRrecv.html#ac39aa52eec10d1c92b6e9713a22252b6',1,'IRrecv']]],
|
||||
['decodemidea_3911',['decodeMidea',['../classIRrecv.html#a255b15601f7439a09ab5e77ad78816fb',1,'IRrecv']]],
|
||||
['decodemidea24_3912',['decodeMidea24',['../classIRrecv.html#a62a04019308b29ae2aea4b3a83ba9155',1,'IRrecv']]],
|
||||
['decodemirage_3913',['decodeMirage',['../classIRrecv.html#aa88813f830a6ff6bfd6e7bde6728a3d5',1,'IRrecv']]],
|
||||
['decodemitsubishi_3914',['decodeMitsubishi',['../classIRrecv.html#a6efe3be80f0ebef3ff94ed0e56c5c52a',1,'IRrecv']]],
|
||||
['decodemitsubishi112_3915',['decodeMitsubishi112',['../classIRrecv.html#ae0690ff3cb5a5cdcdb6a514bb7bf0cdd',1,'IRrecv']]],
|
||||
['decodemitsubishi136_3916',['decodeMitsubishi136',['../classIRrecv.html#a87b3ee57dbdf762a0e305ddd43eec629',1,'IRrecv']]],
|
||||
['decodemitsubishi2_3917',['decodeMitsubishi2',['../classIRrecv.html#a9514197850491a5b8c30ae9ffc89d895',1,'IRrecv']]],
|
||||
['decodemitsubishiac_3918',['decodeMitsubishiAC',['../classIRrecv.html#a942c5f41df5cbff32a8b7703673cb621',1,'IRrecv']]],
|
||||
['decodemitsubishiheavy_3919',['decodeMitsubishiHeavy',['../classIRrecv.html#aef9cedf79793806df4cc5376710781bc',1,'IRrecv']]],
|
||||
['decodemultibrackets_3920',['decodeMultibrackets',['../classIRrecv.html#af61afacc9865232643164ba824e665ab',1,'IRrecv']]],
|
||||
['decodemwm_3921',['decodeMWM',['../classIRrecv.html#a27518b5d792cdf3ab333b324f409f328',1,'IRrecv']]],
|
||||
['decodenec_3922',['decodeNEC',['../classIRrecv.html#a52b844f80df7f64edf9ce9cc189ac5b9',1,'IRrecv']]],
|
||||
['decodeneoclima_3923',['decodeNeoclima',['../classIRrecv.html#a4729ee949e533448b481ae33bbbf1adf',1,'IRrecv']]],
|
||||
['decodenikai_3924',['decodeNikai',['../classIRrecv.html#abbcbf5fc07d7e37d7724acc37bb5f592',1,'IRrecv']]],
|
||||
['decodepanasonic_3925',['decodePanasonic',['../classIRrecv.html#aa8dd5f24d28576c6db03cc463bd0a865',1,'IRrecv']]],
|
||||
['decodepanasonicac_3926',['decodePanasonicAC',['../classIRrecv.html#a0f78e180ed731e8fb16d1c85aa721c95',1,'IRrecv']]],
|
||||
['decodepanasonicac32_3927',['decodePanasonicAC32',['../classIRrecv.html#a89ce20e483b1297cae05ab1ae96d24ec',1,'IRrecv']]],
|
||||
['decodepioneer_3928',['decodePioneer',['../classIRrecv.html#a78a9487cbe8a562392a07a4090b3091e',1,'IRrecv']]],
|
||||
['decoderc5_3929',['decodeRC5',['../classIRrecv.html#adab9dffbeceee514520fababd0e721bd',1,'IRrecv']]],
|
||||
['decoderc6_3930',['decodeRC6',['../classIRrecv.html#a67316499ef37db82e3b3ecaac25c5980',1,'IRrecv']]],
|
||||
['decodercmm_3931',['decodeRCMM',['../classIRrecv.html#a0e7bf769cb5bebf174e852e4b0b08cf3',1,'IRrecv']]],
|
||||
['decodesamsung_3932',['decodeSAMSUNG',['../classIRrecv.html#a18b6cf177364faf11b9a076dd2025eec',1,'IRrecv']]],
|
||||
['decodesamsung36_3933',['decodeSamsung36',['../classIRrecv.html#a290a9e6a0b12ef1fe02a92a456c8ad57',1,'IRrecv']]],
|
||||
['decodesamsungac_3934',['decodeSamsungAC',['../classIRrecv.html#ae779c76ebd0f3cd1fc13abaa55f80d67',1,'IRrecv']]],
|
||||
['decodesanyoac_3935',['decodeSanyoAc',['../classIRrecv.html#ab6c02d8b8079d7f344e141e6a4e7e225',1,'IRrecv']]],
|
||||
['decodesanyolc7461_3936',['decodeSanyoLC7461',['../classIRrecv.html#a01a165bf2e7d16dbbb916d1eae740bc5',1,'IRrecv']]],
|
||||
['decodesharp_3937',['decodeSharp',['../classIRrecv.html#a3390d63ba21a835d7c74c261532a22a7',1,'IRrecv']]],
|
||||
['decodesharpac_3938',['decodeSharpAc',['../classIRrecv.html#a8a9b920079f783e236f8a938e20b9743',1,'IRrecv']]],
|
||||
['decodesony_3939',['decodeSony',['../classIRrecv.html#ab03227955cf7d1d00c1620c55d7f9f18',1,'IRrecv']]],
|
||||
['decodesymphony_3940',['decodeSymphony',['../classIRrecv.html#a61cdf4d891654521afbc6ca9fb415745',1,'IRrecv']]],
|
||||
['decodetechnibelac_3941',['decodeTechnibelAc',['../classIRrecv.html#a2f022741309ad814bf11aec440a838d0',1,'IRrecv']]],
|
||||
['decodeteco_3942',['decodeTeco',['../classIRrecv.html#a950711d7df8dfe4cda86f53650cd9f56',1,'IRrecv']]],
|
||||
['decodetoshibaac_3943',['decodeToshibaAC',['../classIRrecv.html#aae6ab687ae319ae50a52238916bcfb1a',1,'IRrecv']]],
|
||||
['decodetostate_3944',['decodeToState',['../namespaceIRAcUtils.html#ac5eb498bf12cb6cba023c9c1e9726949',1,'IRAcUtils']]],
|
||||
['decodetranscold_3945',['decodeTranscold',['../classIRrecv.html#a16c44538d7e01d9b118d983de39d18e3',1,'IRrecv']]],
|
||||
['decodetrotec_3946',['decodeTrotec',['../classIRrecv.html#ae2920c488173f3fa37f5325438157ced',1,'IRrecv']]],
|
||||
['decodevestelac_3947',['decodeVestelAc',['../classIRrecv.html#a5d48b3c91434c18c7726cca504d75b73',1,'IRrecv']]],
|
||||
['decodevoltas_3948',['decodeVoltas',['../classIRrecv.html#a43539320036ba1c17e9875e4dc9fd055',1,'IRrecv']]],
|
||||
['decodewhirlpoolac_3949',['decodeWhirlpoolAC',['../classIRrecv.html#a0d1eec83cf092f5621cb34b3e94777c4',1,'IRrecv']]],
|
||||
['decodewhynter_3950',['decodeWhynter',['../classIRrecv.html#a66289f6a462557ad26e6c0a64f36cf02',1,'IRrecv']]],
|
||||
['decodezepeal_3951',['decodeZepeal',['../classIRrecv.html#a72afd857c8b2e0192021a40afc96c2d8',1,'IRrecv']]],
|
||||
['defaultbits_3952',['defaultBits',['../classIRsend.html#a70a2256bee8ad9b8ea8571dd4f26596f',1,'IRsend']]],
|
||||
['delonghiac_3953',['delonghiac',['../classIRac.html#af290b0b08cff5121bb88c62051ed1074',1,'IRac']]],
|
||||
['disableirin_3954',['disableIRIn',['../classIRrecv.html#a9f4a719e756ad78c7dd47186f8bef087',1,'IRrecv']]],
|
||||
['disableofftimer_3955',['disableOffTimer',['../classIRDaikinESP.html#a1e4e05ad0799002d0ab25db92dcaac06',1,'IRDaikinESP::disableOffTimer()'],['../classIRDaikin2.html#a8cbdbc0de31b14f974cd8cd87f3ca54a',1,'IRDaikin2::disableOffTimer()']]],
|
||||
['disableontimer_3956',['disableOnTimer',['../classIRDaikinESP.html#a0733e4a15d76baac23493926ef1765b1',1,'IRDaikinESP::disableOnTimer()'],['../classIRDaikin2.html#a170a1e9ddb7873dc1392184a85387cc3',1,'IRDaikin2::disableOnTimer()']]],
|
||||
['disablesleeptimer_3957',['disableSleepTimer',['../classIRDaikin2.html#a152532ef9d905e26930ae145a9623877',1,'IRDaikin2']]]
|
||||
];
|
@ -1,4 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['kelvinator_4189',['kelvinator',['../classIRac.html#a6e4d8061841a7271205f81bd8e7d6171',1,'IRac']]]
|
||||
];
|
@ -1,7 +0,0 @@
|
||||
var searchData=
|
||||
[
|
||||
['ledoff_4190',['ledOff',['../classIRsend.html#ae71cc5aa99f894785fb4f7abc05841b2',1,'IRsend']]],
|
||||
['ledon_4191',['ledOn',['../classIRsend.html#a13d804171fa7c14aff4def38c6ffb6c8',1,'IRsend']]],
|
||||
['lg_4192',['lg',['../classIRac.html#afad31ecf9eae573882d53dd6629485fb',1,'IRac']]],
|
||||
['lowlevelsanitycheck_4193',['lowLevelSanityCheck',['../namespaceirutils.html#af67b75834051c4aced358b274c1c55a8',1,'irutils']]]
|
||||
];
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user