|
30 | 30 | class AdafruitIO_WINC1500 : public AdafruitIO { |
31 | 31 |
|
32 | 32 | public: |
33 | | - AdafruitIO_WINC1500(const char *user, const char *key, const char *ssid, const char *pass); |
34 | | - ~AdafruitIO_WINC1500(); |
| 33 | + AdafruitIO_WINC1500(const char *user, const char *key, const char *ssid, const char *pass) : AdafruitIO(user, key) |
| 34 | + { |
| 35 | + _ssid = ssid; |
| 36 | + _pass = pass; |
| 37 | + _mqtt_client = new WiFiSSLClient; |
| 38 | + _mqtt = new Adafruit_MQTT_Client(_mqtt_client, _host, _mqtt_port); |
| 39 | + _http_client = new WiFiSSLClient; |
| 40 | + _http = new HttpClient(*_http_client, _host, _http_port); |
| 41 | + } |
35 | 42 |
|
36 | | - aio_status_t networkStatus(); |
37 | | - const char* connectionType(); |
| 43 | + ~AdafruitIO_WINC1500() |
| 44 | + { |
| 45 | + if (_mqtt_client) |
| 46 | + delete _http_client; |
| 47 | + if (_http_client) |
| 48 | + delete _mqtt_client; |
| 49 | + if (_mqtt) |
| 50 | + delete _mqtt; |
| 51 | + if (_http) |
| 52 | + delete _http; |
| 53 | + } |
| 54 | + |
| 55 | + aio_status_t networkStatus() |
| 56 | + { |
| 57 | + |
| 58 | + switch (WiFi.status()) |
| 59 | + { |
| 60 | + case WL_CONNECTED: |
| 61 | + return AIO_NET_CONNECTED; |
| 62 | + case WL_CONNECT_FAILED: |
| 63 | + return AIO_NET_CONNECT_FAILED; |
| 64 | + case WL_IDLE_STATUS: |
| 65 | + return AIO_IDLE; |
| 66 | + default: |
| 67 | + return AIO_NET_DISCONNECTED; |
| 68 | + } |
| 69 | + } |
| 70 | + const char *connectionType() |
| 71 | + { |
| 72 | + return "winc1500"; |
| 73 | + } |
38 | 74 |
|
39 | 75 | protected: |
40 | | - void _connect(); |
41 | 76 | const char *_ssid; |
42 | 77 | const char *_pass; |
43 | 78 |
|
44 | 79 | WiFiSSLClient *_http_client; |
45 | 80 | WiFiSSLClient *_mqtt_client; |
46 | 81 |
|
| 82 | + void _connect() |
| 83 | + { |
| 84 | + |
| 85 | + WiFi.setPins(WINC_CS, WINC_IRQ, WINC_RST, WINC_EN); |
| 86 | + |
| 87 | + // no shield? bail |
| 88 | + if (WiFi.status() == WL_NO_SHIELD) |
| 89 | + return; |
| 90 | + |
| 91 | + WiFi.begin(_ssid, _pass); |
| 92 | + _status = AIO_NET_DISCONNECTED; |
| 93 | + } |
47 | 94 | }; |
48 | 95 |
|
49 | 96 | #endif // ARDUINO_ARCH_SAMD |
|
0 commit comments