Previous commit broke the actual functionality. The code was confusing and worked until the previous commit.
The changes make it logically and functionally correct.
The SDClass class makes a reference to "SD.card" instead of just "card". SD is a global instance of SDClass.
This prevents any other instance of SDClass from functioning correctly.
The fix also allows SDClass to be used with an SD card which is removed and replaced, whereas previously, using the global instance SD did not allow this due to the limitation of begin() which cannot be called more than once.
correct SS pin setup is already handled by SPI subsystem.
this should prevent future issues like #2868
current implementation assures that:
* pin10 is OUTPUT HIGH if SPI.begin() is called and the pin was unconfigured
* pin10 state is not modified if pinMode(10, OUTPUT) is called before SPI.begin()
* pin10 is INPUT HI-Z if nor pinMode(10, OUTPUT) nor SPI.begin() are called
Bridge.put() was broken by #2781 because it used transfer() 2-parameters overloaded version, which imply that rxlen == 0.
But the Linux Bridge responded, so the check (i >= rxlen) was true and the function timed out after retrying 50 times.
Every bridge command (python side) has been checked and now SHOULD strictly follow this rule and never ignore silently the received data
Block send SMS until finished operation.
GSM3IO.h. Keeps most of board-dependant pins
Flush buffer after GPRS detach
Delete some references to HardwareSerial.h
Include OFF modem status