ArduinoCore-API
ArduinoCore-API copied to clipboard
Hardware independent layer of the Arduino cores defining the official API
I'm new to Arduino and as an exercise I'm working on a class encapsulating a digital input. The corresponding `read()` method returns a `PinStatus`. Normally it is `LOW` or `HIGH`,...
When we have classes that may be derived in c++ it is important to always put a virtual empty destructor, in particular on abstract classes, because this can lead to...
## Rewrite IPAddress without union Using a union allowed undefined behavior for 8-bit integer INPUT and OUTPUT arguments through a 32-bit integer (and vice versa). Write through `union::uint8_t[16]` and read...
In this PR, an implementation of `Pair` (analogous to `std::pair`), a helper function to create a `Pair` and two `Stream` insertion operators are added. The basic `Stream` insertion operator allows...
### API component IPAddress ### Description The `toString()` for an IPv6 type address has a different output from `printTo()`, and does not follow the RFC 5952 canonical format. It has...
Add features to Arduino::String and Arduino::Stream [x] String.insert [x] Stream.readln or Stream.readLine Requested by #152 More ideas are welcome
Rather than rely on sprintf or something like it, use a known implemenation of itoa. This replaces the file with the implementation from [ArduinoCore-samd](https://github.com/arduino/ArduinoCore-samd/blob/master/cores/arduino/itoa.c) which I hope avoids any licensing...
Have the tests use an implementation of `dtostrf` which checks for the largest buffer needed by the String class. Document the risks of that implementaton and add a TODO not...
In #208 I added pragmas to suppress deprecation warnings related to sprintf that were added in newer versions of GCC and CLang, and which caused compilation failure. These suppressions should...
In Serial communication sometimes one wants to flush all data in the receive buffer at once. E.g. because data has become invalid. - https://forum.arduino.cc/index.php?topic=530650 - The code to do this...