src/esphome/components/logger/logger.cpp: In member function 'void esphome::logger::Logger::pre_setup()':
src/esphome/components/logger/logger.cpp:142:29: error: 'Serial2' was not declared in this scope
this->hw_serial_ = &Serial2;
For printf formatting, a check is done to see if the number of
arguments matches the number of printf formatting placeholders.
The escape code `%%` that is used for representing a literal `%`
is also counted as a placeholder, but no argument will be provided
for that one.
This makes it impossible to use something like `("%f%%", percentage)`
in the code. In such case, one gets the error:
`Found 2 printf-patterns (%f, %%), but 1 args were given!`
This commit fixes this behavior by omitting the `%%` from the matches.
Co-authored-by: Maurice Makaay <mmakaay1@xs4all.net>
Also removed new line formatting tidy as it requires a bit of memory which might not be available.
* Use suitably scoped char for log newline stripping
* fix formatting
* Better fix for OOM logging crash
* Limit to ESP32 only
* format changes
* Fix logger uart conflict check
* Fix class for check func
* Fix syntax
Hope lint is OK with moving the end of the conditional outside the #IFDEF
* Move end of conditional inside ifdef and remove extra whitespace
* Simplify
clang-format did not like the ifdefs and was reformatting in a way that killed clang-tidy.
Simple solution is to use logger's hw_serial as source of truth
Also simplifies the code - uart doesn't need to know what the logger uart settings mean
## Description:
Move esphome-core codebase into esphome (and a bunch of other refactors). See https://github.com/esphome/feature-requests/issues/97
Yes this is a shit ton of work and no there's no way to automate it :( But it will be worth it 👍
Progress:
- Core support (file copy etc): 80%
- Base Abstractions (light, switch): ~50%
- Integrations: ~10%
- Working? Yes, (but only with ported components).
Other refactors:
- Moves all codegen related stuff into a single class: `esphome.codegen` (imported as `cg`)
- Rework coroutine syntax
- Move from `component/platform.py` to `domain/component.py` structure as with HA
- Move all defaults out of C++ and into config validation.
- Remove `make_...` helpers from Application class. Reason: Merge conflicts with every single new integration.
- Pointer Variables are stored globally instead of locally in setup(). Reason: stack size limit.
Future work:
- Rework const.py - Move all `CONF_...` into a conf class (usage `conf.UPDATE_INTERVAL` vs `CONF_UPDATE_INTERVAL`). Reason: Less convoluted import block
- Enable loading from `custom_components` folder.
**Related issue (if applicable):** https://github.com/esphome/feature-requests/issues/97
**Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here>
## Checklist:
- [ ] The code change is tested and works locally.
- [ ] Tests have been added to verify that the new code works (under `tests/` folder).
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated in [esphomedocs](https://github.com/OttoWinter/esphomedocs).