be84c8219c
## The problem WiFiClient's connect method variant where no timeout is passed can block esp32 MCU and may then cause watchdog to kick in and reset the device. This behavior is different from that, what is in arduino-esp8266 core. ## Summary Some cross-esp libraries (working both on esp32 and 8266), like PubSubClient simply call connect method on WiFiClient, to get connected to remote server. However, connect behavior varies betwen esp arduino 8266 and esp arduino 32 cores. This pull request tries introduce same behavior - to make connect method non-blocking on esp32, like it is with 8266 arduino core. ## Proposed solution Introduce default fixed timeout that can be changed by #define - by default set to 3 seconds. ### Affected components: WiFiClient ### Affected methods: ```c++ int connect(IPAddress ip, uint16_t port); int connect(const char *host, uint16_t port); ``` ### Impact May impact projects or libraries using connect method variant without specified timeout, where: - remote is located far away or - connection is heavily limited, or - remote is slow, when it comes to accept the connection |
||
---|---|---|
.. | ||
ArduinoOTA | ||
AsyncUDP | ||
BLE | ||
BluetoothSerial | ||
DNSServer | ||
EEPROM | ||
ESP32 | ||
ESPmDNS | ||
FFat | ||
FS | ||
HTTPClient | ||
HTTPUpdate | ||
HTTPUpdateServer | ||
LittleFS | ||
NetBIOS | ||
Preferences | ||
RainMaker | ||
SD | ||
SD_MMC | ||
SimpleBLE | ||
SPI | ||
SPIFFS | ||
Ticker | ||
Update | ||
USB | ||
WebServer | ||
WiFi | ||
WiFiClientSecure | ||
WiFiProv | ||
Wire | ||
README.md |
ESP32 Libraries
arduino-esp32 includes libraries for Arduino compatibility along with some object wrappers around hardware specific devices. Examples are included in the examples folder under each library folder. The ESP32 includes additional examples which need no special drivers.
ArduinoOTA
Over The Air firmware update daemon. Use espota.py to upload to the device.
AsyncUDP
Asynchronous task driven UDP datagram client/server
AzureIoT
Library to interact with Microsoft Azure IoT services
BLE
Bluetooth Low Energy v4.2 client/server framework
BluetoothSerial
Serial to Bluetooth redirection server
DNSServer
A basic UDP DNS daemon (includes captive portal demo)
EEPROM
Arduino compatibility for EEPROM (using flash)
ESP32
Additional examples
- AnalogOut
- Camera
- ChipID
- DeepSleep
- ESPNow
- FreeRTOS
- GPIO
- HallSensor
- I2S
- ResetReason
- RMT
- Time
- Timer
- Touch
ESPmDNS
mDNS service advertising
FFat
FAT indexed filesystem on SPI flash
FS
Filesystem virtualization framework
HTTPClient
A simple HTTP client, compatible with WiFiClientSecure
HTTPUpdate
Download a firmware update from HTTPd and apply it using Update
NetBIOS
NetBIOS name advertiser
Preferences
Flash keystore using ESP32 NVS
ESP RainMaker
End-to-end platform by Espressif that enables Makers to realize their IoT ideas faster
SD
Secure Digital card filesystem using SPI access
SD_MMC
Secure Digital card filesystem using 4-lane access
SimpleBLE
Minimal BLE advertiser
SPI
Arduino compatible Serial Peripheral Interface driver (master only)
SPIFFS
SPI Flash Filesystem (see spiffs-plugin to upload to device)
Ticker
A timer to call functions on an interval
Update
Sketch Update using ESP32 OTA functionality
WebServer
A simple HTTP daemon
WiFi
Arduino compatible WiFi driver (includes Ethernet driver)
WiFiClientSecure
Arduino compatible WiFi client object using embedded encryption
Wire
Arduino compatible I2C driver (master only)