arduino stuffs
Diffstat (limited to 'libraries/Firmata/utility/WiFiStream.h')
| -rw-r--r-- | libraries/Firmata/utility/WiFiStream.h | 226 |
1 files changed, 0 insertions, 226 deletions
diff --git a/libraries/Firmata/utility/WiFiStream.h b/libraries/Firmata/utility/WiFiStream.h deleted file mode 100644 index 1ad44bb..0000000 --- a/libraries/Firmata/utility/WiFiStream.h +++ /dev/null @@ -1,226 +0,0 @@ -/* - WiFiStream.h - - An Arduino Stream extension for a WiFiClient or WiFiServer to be used - with legacy Arduino WiFi shield and other boards and shields that - are compatible with the Arduino WiFi library. - - Copyright (C) 2015-2016 Jesse Frush. All rights reserved. - Copyright (C) 2016 Jens B. All rights reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - See file LICENSE.txt for further informations on licensing terms. - - Last updated April 23rd, 2016 - */ - -#ifndef WIFI_STREAM_H -#define WIFI_STREAM_H - -#include <inttypes.h> -#include <Stream.h> - -#define HOST_CONNECTION_DISCONNECTED 0 -#define HOST_CONNECTION_CONNECTED 1 - -extern "C" { - // callback function types - typedef void (*hostConnectionCallbackFunction)(byte); -} - -class WiFiStream : public Stream -{ -protected: - WiFiClient _client; - bool _connected = false; - hostConnectionCallbackFunction _currentHostConnectionCallback; - - //configuration members - IPAddress _local_ip; // DHCP - IPAddress _subnet; - IPAddress _gateway; - IPAddress _remote_ip; - uint16_t _port; - uint8_t _key_idx; //WEP - const char *_key = nullptr; //WEP - const char *_passphrase = nullptr; //WPA - char *_ssid = nullptr; - - /** - * check if TCP client is connected - * @return true if connected - */ - virtual bool connect_client() = 0; - -public: - /** constructor for TCP server */ - WiFiStream(uint16_t server_port) : _port(server_port) {} - - /** constructor for TCP client */ - WiFiStream(IPAddress server_ip, uint16_t server_port) : _remote_ip(server_ip), _port(server_port) {} - - inline void attach( hostConnectionCallbackFunction newFunction ) { _currentHostConnectionCallback = newFunction; } - -/****************************************************************************** - * network configuration - ******************************************************************************/ - -#ifndef ESP8266 - /** - * configure a static local IP address without defining the local network - * DHCP will be used as long as local IP address is not defined - */ - inline void config(IPAddress local_ip) - { - _local_ip = local_ip; - WiFi.config( local_ip ); - } -#endif - - /** - * configure a static local IP address - * DHCP will be used as long as local IP address is not defined - */ - inline void config(IPAddress local_ip, IPAddress gateway, IPAddress subnet) - { - _local_ip = local_ip; - _subnet = subnet; - _gateway = gateway; -#ifndef ESP8266 - WiFi.config( local_ip, IPAddress(0, 0, 0, 0), gateway, subnet ); -#else - WiFi.config( local_ip, gateway, subnet ); -#endif - } - - /** - * @return local IP address - */ - inline IPAddress getLocalIP() - { - return WiFi.localIP(); - } - -/****************************************************************************** - * network functions - ******************************************************************************/ - - /** - * maintain WiFi and TCP connection - * @return true if WiFi and TCP connection are established - */ - virtual bool maintain() = 0; - -#ifdef ESP8266 - /** - * get status of TCP connection - * @return status of TCP connection - * CLOSED = 0 (typical) - * LISTEN = 1 (not used) - * SYN_SENT = 2 - * SYN_RCVD = 3 - * ESTABLISHED = 4 (typical) - * FIN_WAIT_1 = 5 - * FIN_WAIT_2 = 6 - * CLOSE_WAIT = 7 - * CLOSING = 8 - * LAST_ACK = 9 - * TIME_WAIT = 10 - */ - inline uint8_t status() - { - return _client.status(); - } -#endif - - /** - * close TCP client connection - */ - virtual void stop() = 0; - -/****************************************************************************** - * WiFi configuration - ******************************************************************************/ - - /** - * initialize WiFi without security (open) and initiate client connection - * if WiFi connection is already established - * @return WL_CONNECTED if WiFi connection is established - */ - inline int begin(char *ssid) - { - _ssid = ssid; - - WiFi.begin(ssid); - int result = WiFi.status(); - return WiFi.status(); - } - -#ifndef ESP8266 - /** - * initialize WiFi with WEP security and initiate client connection - * if WiFi connection is already established - * @return WL_CONNECTED if WiFi connection is established - */ - inline int begin(char *ssid, uint8_t key_idx, const char *key) - { - _ssid = ssid; - _key_idx = key_idx; - _key = key; - - WiFi.begin( ssid, key_idx, key ); - return WiFi.status(); - } -#endif - - /** - * initialize WiFi with WPA-PSK security and initiate client connection - * if WiFi connection is already established - * @return WL_CONNECTED if WiFi connection is established - */ - inline int begin(char *ssid, const char *passphrase) - { - _ssid = ssid; - _passphrase = passphrase; - - WiFi.begin(ssid, passphrase); - return WiFi.status(); - } - - -/****************************************************************************** - * stream functions - ******************************************************************************/ - - inline int available() - { - return connect_client() ? _client.available() : 0; - } - - inline void flush() - { - if( _client ) _client.flush(); - } - - inline int peek() - { - return connect_client() ? _client.peek(): 0; - } - - inline int read() - { - return connect_client() ? _client.read() : -1; - } - - inline size_t write(uint8_t byte) - { - return connect_client() ? _client.write( byte ) : 0; - } - -}; - -#endif //WIFI_STREAM_H |