Previously, when SoftwareSerial was initialized, it would always be set
to an idle level of HIGH, even when inverted logic was enabled. Once a
byte is transmitted, the idle level gets correctly set to LOW instead.
This commit makes sure that the idle level is correct directly after
initialization already.
This fixes#1361.
calling https URLs without checking for the validity of SSL
certificates.
While this makes it a little insecure, nothing else can be done
while keeping the HTTPClient API simple: openwrt does not have a
SSL certificates bundle
Advanced users concerned about security should call "curl" on
their own using Process, supplying parameters such as "--cacert"
Fixes#1860
All the while() loops that check for the SPI transfer to be complete have the
semi-colon immediately after the closing parenthesis. This both causes a
compiler warning of "warning: suggest a space before ';' or explicit braces
around empty body in 'while' statement", and is considered a less-than-ideal
programming practice. This patch breaks the semi-colon on to the next line,
both eliminating the compiler error and making the code more readable.
In all probability the test should be moved into a macro or a inlineable
sub-routine.
EthernetClass is a friend class of IPAddress, so it is allowed to use
its _address attribute directly. However, it should be using
IPAddress::raw_address() instead, like all the other friend classes do.
This changes allows changing the _address attribute to fix some warnings
next.
Update FileIO::doBuffer() to check for TRANSFER_TIMEOUT and set buffered to 0, and optimize by incrementing readPos instead of moving all of the data one byte to the left in the buffer to skip the error code byte.
Previously, the row offsets were hardcoded to the ones used for 20x4
displays (which woudl also work for all 2-line displays). Now, the
number of columns given is used to calculate the offsets most likely to
apply.
For 2-line displays and 20x4 displays, the (used) offsets are completel
unchanged. With this change, common 16x4 displays and (if they even
exist) other 4-line and 3-line displays might also work (depending on
the hardware configuration used, of course).
See this page for some info on common LCD sizes and configurations
encountered in practice:
http://web.alfredstate.edu/weimandn/lcd/lcd_addressing/lcd_addressing_index.html
Before, the row value was maximized against _numlines already, but the
value from _numlines is not limited anywhere, so it could be longer than
the length of _row_offsets. This check makes sure the array bounds is
never exceeded.
Since these are memory addresses, there is no need to make them signed.
Furthermore, the HD44780 chip supports memory addresses up to 0x67, so
uint8_t shouldbe sufficient.