|  | 
|  | 1 | +/* | 
|  | 2 | +  This file is part of the ArduinoIoTCloud library. | 
|  | 3 | +
 | 
|  | 4 | +  Copyright (c) 2024 Arduino SA | 
|  | 5 | +
 | 
|  | 6 | +  This Source Code Form is subject to the terms of the Mozilla Public | 
|  | 7 | +  License, v. 2.0. If a copy of the MPL was not distributed with this | 
|  | 8 | +  file, You can obtain one at http://mozilla.org/MPL/2.0/. | 
|  | 9 | +*/ | 
|  | 10 | + | 
|  | 11 | +#pragma once | 
|  | 12 | + | 
|  | 13 | +#include <Arduino_ConnectionHandler.h> | 
|  | 14 | +#include <AIoTC_Config.h> | 
|  | 15 | + | 
|  | 16 | +#if defined(BOARD_HAS_OFFLOADED_ECCX08) | 
|  | 17 | +  /* | 
|  | 18 | +   * Arduino MKR WiFi1010 - WiFi | 
|  | 19 | +   * Arduino NANO 33 IoT  - WiFi | 
|  | 20 | +   */ | 
|  | 21 | +  #include "WiFiSSLClient.h" | 
|  | 22 | +  class TLSClientOta : public WiFiBearSSLClient { | 
|  | 23 | +#elif defined(BOARD_HAS_ECCX08) | 
|  | 24 | +  /* | 
|  | 25 | +   * Arduino MKR GSM 1400 | 
|  | 26 | +   * Arduino MKR NB 1500 | 
|  | 27 | +   * Arduino Portenta H7 | 
|  | 28 | +   * Arduino Giga R1 | 
|  | 29 | +   * OPTA | 
|  | 30 | +   */ | 
|  | 31 | +  #include <tls/BearSSLClient.h> | 
|  | 32 | +  class TLSClientOta : public BearSSLClient { | 
|  | 33 | +#elif defined(ARDUINO_PORTENTA_C33) | 
|  | 34 | +  /* | 
|  | 35 | +   * Arduino Portenta C33 | 
|  | 36 | +   */ | 
|  | 37 | +  #include <SSLClient.h> | 
|  | 38 | +  class TLSClientOta : public SSLClient { | 
|  | 39 | +#elif defined(ARDUINO_NICLA_VISION) | 
|  | 40 | +  /* | 
|  | 41 | +   * Arduino Nicla Vision | 
|  | 42 | +   */ | 
|  | 43 | +  #include <WiFiSSLSE050Client.h> | 
|  | 44 | +  class TLSClientOta : public WiFiSSLSE050Client { | 
|  | 45 | +#elif defined(ARDUINO_EDGE_CONTROL) | 
|  | 46 | +  /* | 
|  | 47 | +   * Arduino Edge Control | 
|  | 48 | +   */ | 
|  | 49 | +  #include <GSMSSLClient.h> | 
|  | 50 | +  class TLSClientOta : public GSMSSLClient { | 
|  | 51 | +#elif defined(ARDUINO_UNOR4_WIFI) | 
|  | 52 | +  /* | 
|  | 53 | +   * Arduino UNO R4 WiFi | 
|  | 54 | +   */ | 
|  | 55 | +  #include <WiFiSSLClient.h> | 
|  | 56 | +  class TLSClientOta : public WiFiSSLClient { | 
|  | 57 | +#elif defined(BOARD_ESP) | 
|  | 58 | +  /* | 
|  | 59 | +   * ESP32* | 
|  | 60 | +   * ESP82* | 
|  | 61 | +   */ | 
|  | 62 | +  #include <WiFiClientSecure.h> | 
|  | 63 | +  class TLSClientOta : public WiFiClientSecure { | 
|  | 64 | +#endif | 
|  | 65 | + | 
|  | 66 | +public: | 
|  | 67 | +  void begin(ConnectionHandler & connection); | 
|  | 68 | + | 
|  | 69 | +private: | 
|  | 70 | +  inline Client* getNewClient(NetworkAdapter net) { | 
|  | 71 | +    switch(net) { | 
|  | 72 | +#ifdef BOARD_HAS_WIFI | 
|  | 73 | +    case NetworkAdapter::WIFI: | 
|  | 74 | +      return new WiFiClient(); | 
|  | 75 | +#endif // BOARD_HAS_WIFI | 
|  | 76 | +#ifdef BOARD_HAS_ETHERNET | 
|  | 77 | +    case NetworkAdapter::ETHERNET: | 
|  | 78 | +      return new EthernetClient(); | 
|  | 79 | +#endif // BOARD_HAS_ETHERNET | 
|  | 80 | +#ifdef BOARD_HAS_NB | 
|  | 81 | +    case NetworkAdapter::NB: | 
|  | 82 | +      return new NBClient(); | 
|  | 83 | +#endif // BOARD_HAS_NB | 
|  | 84 | +#ifdef BOARD_HAS_GSM | 
|  | 85 | +    case NetworkAdapter::GSM: | 
|  | 86 | +      return new GSMClient(); | 
|  | 87 | +#endif // BOARD_HAS_GSM | 
|  | 88 | +#ifdef BOARD_HAS_CATM1_NBIOT | 
|  | 89 | +    case NetworkAdapter::CATM1: | 
|  | 90 | +      return new GSMClient(); | 
|  | 91 | +#endif // BOARD_HAS_CATM1_NBIOT | 
|  | 92 | +    default: | 
|  | 93 | +      return nullptr; | 
|  | 94 | +    } | 
|  | 95 | +  } | 
|  | 96 | +}; | 
0 commit comments