* Use #line directives in generated C++ code for lambdas
The #line directive in gcc is meant specifically for pieces of imported
code included in generated code, exactly what happens with lambdas in
the yaml files: https://gcc.gnu.org/onlinedocs/cpp/Line-Control.html
With this change, if I add the following at line 165 of kithen.yaml:
- lambda: undefined_var == 5;
then "$ esphome kitchen.yaml compile" shows the following:
INFO Reading configuration kitchen.yaml...
INFO Generating C++ source...
INFO Compiling app...
INFO Running: platformio run -d kitchen
<...>
Compiling .pioenvs/kitchen/src/main.cpp.o
kitchen.yaml: In lambda function:
kitchen.yaml:165:7: error: 'undefined_var' was not declared in this scope
*** [.pioenvs/kitchen/src/main.cpp.o] Error 1
== [FAILED] Took 2.37 seconds ==
* Silence gcc warning on multiline macros in lambdas
When the \ is used at the end of the C++ source in a lambda (line
continuation, often used in preprocessor macros), esphome will copy that
into main.cpp once as code and once as a // commment. gcc will complain
about the multiline commment:
Compiling .pioenvs/kitchen/src/main.cpp.o
kitchen.yaml:640:3: warning: multi-line comment [-Wcomment]
Try to replace the \ with a "<cont>" for lack of a better idea.
* Add Inkplate 6 support
Inkplate 6 is e-paper display based on ESP32. This commit adds support for integrating Inkplate 6 into the ESPHome. Find more info here: inkplate.io
* Greyscale working
* Update inkplate.h
* Fix formatting
* Formatting
* Update esphome/components/inkplate6/display.py
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Update esphome/components/inkplate6/display.py
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Fix some lint errors
Ignore some lint errors
Only allow on ESP32
* Update the codeowners file
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Add Inkplate 6 support
Inkplate 6 is e-paper display based on ESP32. This commit adds support for integrating Inkplate 6 into the ESPHome. Find more info here: inkplate.io
* Greyscale working
* Update inkplate.h
* Fix formatting
* Formatting
* Update esphome/components/inkplate6/display.py
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Update esphome/components/inkplate6/display.py
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Fix some lint errors
Ignore some lint errors
Only allow on ESP32
* Update the codeowners file
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
Without the flag lwip only holds a reference to the supplied buffers and the reference must be valid until the tcp ack is received. This can't be guaranteed for stack allocated buffers
Without the flag lwip only holds a reference to the supplied buffers and the reference must be valid until the tcp ack is received. This can't be guaranteed for stack allocated buffers
* Fixed half half step mode
Half step mode originally had second and third steps mixed up for output A.
https://github.com/esphome/issues/issues/1655
* Updated half step mode to have no branching
Code based off comments in PR: https://github.com/esphome/esphome/pull/1397#issuecomment-739413973
* removed variable declarations in the switch/case
Oops. No explicit declarations.
Rearranged to be tidier, same output sequence.
* Fixed typo bracket
Minor typo fixed - logic complete to do branchless half stepping.
* Format the brackets to satisfy clang