Sphinx 1.8.0 seems to always fail to build the docs due to interactions
with doctest.py. This means no CI builds can pass and no new PRs can be
applied.
Fix the version at 1.7.9 for now until the dependencies get updated to with 1.8.
The error seen is:
File "/home/travis/.local/lib/python2.7/site-packages/sphinx/highlighting.py", line 26, in <module>
from sphinx.ext import doctest
SyntaxError: unqualified exec is not allowed in function 'run' it contains a nested function with free variables (doctest.py, line 97)
The full traceback has been saved in /tmp/sphinx-err-e8JyUQ.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
With the changes in PR #5117, blink and other examples compile but the 8266
gets stuck in a reset loop. Undo the changes from that commit until we can
figure out the root cause and fix it.
boards generator updates:
* simplified mapping description: only flash and spiffs sizes are needed
* some ldscripts are renamed due to autogenerated names
* +2M/0, +2M/512K spiffs, +4M0
* reduce length of hidden strings in boards.txt (#5100, https://github.com/arduino/arduino-builder/issues/284)
* give more details in ldscripts (address, size, +rf-cal, +sdk-wifi-settings)
* Add information about the max_connection constructor argument.
* Correct information about max soft-AP connections.
* Add information about what happens when max_connection is reached.
* Correct terminology
* - Correct the valid range of max_connection to 1 - 8.
- Include reference.
* add stubs for more exception throw calls
Fixes https://github.com/esp8266/Arduino/issues/3358
* libc: make putc_r implementation weak
newlib provides its own implementation of _putc_r, which will call
_write_r (possibly after buffering). Make our implementation weak to
allow using the one from newlib.
Fixes https://github.com/esp8266/Arduino/issues/4630
* libc: fix incorrect return value of _write_r call
Should return number of bytes written, actually returned zero. This
resulted in std::cout going into failed state after the first write.
* tests: add test for output to std::cout
arduino-builder 1.3.25 (shipped with Arduino 1.8.5) forces full
recompilation when any file in the core directory is modified. Avoid
full recompilation by placing generated ld script into build
directory, not source directory.
Also fix an issue where git version description would not be generated
if there were spaces in build path.
In tools menu, boards belonging to each platform are grouped together.
The title of the groups is the board package name. When switching
between versions, mentioning the version number in package name helps
identify the installed version.
Rename board group from "ESP8266 Modules" to "ESP8266 Boards", to be
more similar to other platforms, and to reflect the fact that most
entries included are boards, not modules.
As an extra change, when building the boards manager package, set
version number in platform.txt based on git tag name. This saves one
step when creating the release — don't need to update platform.txt
twice.
Closes https://github.com/esp8266/Arduino/issues/5007.
The memory allocation failure message was accidentally stored in RAM
and not in PROGMEM.
panic() did not place the __FILE__ string in PROGMEM, either.
Move both to PROGMEM, save ~64 bytes of heap (depends on size of path
of the Arduino core library).
__FILE__ is used to name the segments used for each PROGMEM constant,
but __FILE__ may have a space in it. This would cause compilation
errors.
Add quotes around the entire segment name to work around this.
According to the GCC man page, __section__ attributes should only be used
for global variables. However, the PROGMEM and ICACHE_RODATA macros use
this variable decorator even for local variables. Most of the time it works,
but when a static or inlined function tries to use a PROGMEM/PSTR/etc.
variable the compiler can throw an error like:
error: XXX causes a section type conflict with YYY
Change the PROGMEM macro to emit a section name that is unique (a combo
of the file, line, and counter variables to ensure uniqueness). The
standard linker script will place them properly in .IROM without
any changes.
Fixes#5036 and others.
* Implementation of Functional and Scheduled option in Ticker lib
* Update example formatting
* More example updates
* More updates to example
* More updates to example
* Analog input voltage can be 3.3V
According to this tutorial and my personal test with my Amica, 1.0V delivers 320 and 3.3V delivers 1024 at 10-bit resolution. I guess 3.3V is possible.
* Update reference.rst
Added warnings.
* Update reference.rst
* Update reference.rst
requested changes
* ci: work around tagging issue in Travis CI deployment
When `draft: true` is set, incorrect commit/tag information is sent to
Github. Override tag/target fields for correct behavior.
Ref. https://github.com/travis-ci/travis-ci/issues/9852
* doc: clarify some points in the release process
* Function added to detect baudrate
* Added uart_start_detect_baudrate, detectBaudrate() wrappers for HardwareSerial and an example usage SerialDetectBaudrate.ino
* Some layout changes to pass Travis tests
* Some more nitty-gritty layout changes to pass Travis tests
* Some even more nitty-gritty layout changes to pass Travis tests
* renamed one function to testBaudrate() and updated doc/reference.rst
* Minor updates to doc/reference.rst
* New lines added
* Make mesh network actually usable. Make mesh network use static IP during initial connection to speed up connection time. Add separate handlers for requests and responses. Add network password. Provide more detailed code example. Add optional verbose mode. Improve comments. Add readme file.
* Fix compiler warnings. Fix code style of HelloMesh.ino to avoid upsetting Travis.
* Remove stray spaces.
* Make mesh network WiFi password settable via the ESP8266WiFiMesh constructor. Make use of static IP optional by moving static IP initialization code to setStaticIP method. Increase scanning interval from one to two seconds in the HelloMesh.ino example to increase chances of successful connections. Update comments. Update README.rst.
* Increase specificity in the conditions of the waitForClientTransmission method (renamed from waitForClient) to avoid issues related to #4626 , #4728 and #4754 in the future.
* Improve most parts of the library to achieve better performance and greatly increase flexibility.
Changes:
* Make WiFi-connection related variables static to allow for the use of multiple ESP8266WiFiMesh instances on a single node (useful e.g. when communicating with several different mesh networks).
* Make it possible to choose AP port, which is helpful when using multiple ESP8266WiFiMesh AP:s on a single node.
* Add user-customizable network filter.
* Make activation of own AP optional for each mesh node.
* Add ways to change mesh network name and node id for existing ESP8266WiFiMesh instances.
* Add verboseModePrint method to clean up the code.
* Add reactivation of static IP after successful data transfers to speed up re-connection attempts.
* Add empty_IP constant which can be used to check if static IP is disabled for a ESP8266WiFiMesh instance.
* Remove the WiFiClient _client class variable in ESP8266WiFiMesh since there is no need to save _client in the class instance.
* Add transmission status as a return value from attemptTransmission.
* Pass calling ESP8266WiFiMesh instance pointer to callback functions to allow for greater range of actions in callbacks.
* Make transmission message a class variable to allow it to be stored in the class and accessed from callbacks.
* Add getters for mesh name and node id to ESP8266WiFiMesh.
* Add getter and setter for networkFilter to ESP8266WiFiMesh.
* Increase range of available node_id:s by changing the type to String and adding functions to convert between String and uint64_t using a customizable radix between 2 and 36.
* Make it possible to connect to several nodes during each attemptTransmission call.
* Add static connection_queue and latest_transmission_outcomes vectors to the ESP8266WiFiMesh class, a NetworkInfo class and a TransmissionResult class to aid in bookkeeping when connecting to several AP:s during one attemptTransmission call.
* Make wifi_channel and BSSID optional when connecting to an AP (though excluding them will slow down the connection process).
* Add optional scan and static ip optimizations available in Arduino core for ESP8266 version 2.4.2.
* Add functions to check lwIP version in order to enable WiFi optimizations only available with lwIP2.
* Add concluding_disconnect, initial_disconnect and no_scan options to the attemptTransmission method.
* Update documentation.
* Improve README.rst formatting.
* Further improve README.rst.
* Even further improve README.rst.
* Make source code comments Doxygen compatible. Improve README file and change its file format to .md.
* Add temporary compatibility layer to ensure backwards compatibility with the old mesh network library API until the next major core release (2.5.0).
* Polish documentation slightly.
* Add scan_all_wifi_channels option to attemptTransmission method.
* - Add getter and setter for the WiFi channel of a ESP8266WiFiMesh instance.
- Separate methods for changing mesh name and node id from AP control methods.
- Add methods getAPController and isAPController to better handle situations when multiple ESP8266WiFiMesh instances take turns to be in control of the AP.
- Create separate UtilityMethods.cpp file for utility methods.
- Improve code efficiency and robustness, e.g. by passing arguments by reference instead of by value for non-POD types and employing typedefs.
- Update README.md.
* Make the code more stylish.
* Update README.md with the new ESP8266WiFiMesh constructor documentation.
* Make attemptScan method in CompatibilityLayer use reference as argument.
* Make it possible to use const String as argument to attemptScan.
* - Make code use camelCase instead of snake_case.
- Improve documentation.
* Rename Uint64ToString to uint64ToString and StringToUint64 to stringToUint64, since they are methods.
* Add valgrind and string tests to host_tests
Valgrind identified an error that was causing intermittent failures in
the host tests, and can check for subtle memory access and allocation bugs.
Add it to the standard host_test suite, and any errors will cause test
failure.
Also start adding string tests, since two undefined behaviors have been
found so far just by inspection.
* Add additional String tests
Looks like a possible bug in the concatenation operator, need to verify
expected behavior.
* Remove verbose from valgrind run
No need to be so chatty on the test. Errors were a little hard to spot.
Go to normal verbosity.
* Add lcov and more string tests
LCOV and genhtml can generate nice HTML coverage charts hilighting test
coverage issues in a much simpler way than gcov text format. Generate these
automatically from gcov output.
Add additional string creation and comparison tests.
* Move String coverage to >50%
Additional string tests and checks
* 66% test coverage in String
* Add allocation-unit-sized strings test
Ensure that strings that are right on the edge of the allocation
size are handled properly and account for trailing 0.