arduino stuffs
Diffstat (limited to 'libraries/Firmata/utility/EthernetClientStream.h')
-rw-r--r--libraries/Firmata/utility/EthernetClientStream.h141
1 files changed, 0 insertions, 141 deletions
diff --git a/libraries/Firmata/utility/EthernetClientStream.h b/libraries/Firmata/utility/EthernetClientStream.h
deleted file mode 100644
index 1b7d2e2..0000000
--- a/libraries/Firmata/utility/EthernetClientStream.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- EthernetClientStream.h
- An Arduino-Stream that wraps an instance of Client reconnecting to
- the remote-ip in a transparent way. A disconnected client may be
- recognized by the returnvalues -1 from calls to peek or read and
- a 0 from calls to write.
-
- Copyright (C) 2013 Norbert Truchsess. 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 June 18th, 2016
- */
-
-#ifndef ETHERNETCLIENTSTREAM_H
-#define ETHERNETCLIENTSTREAM_H
-
-#include <inttypes.h>
-#include <Stream.h>
-
-//#define SERIAL_DEBUG
-#include "firmataDebug.h"
-
-#define MILLIS_RECONNECT 5000
-
-class EthernetClientStream : public Stream
-{
- public:
- EthernetClientStream(Client &client, IPAddress localip, IPAddress ip, const char* host, uint16_t port);
- int available();
- int read();
- int peek();
- void flush();
- size_t write(uint8_t);
- void maintain(IPAddress localip);
-
- private:
- Client &client;
- IPAddress localip;
- IPAddress ip;
- const char* host;
- uint16_t port;
- bool connected;
- uint32_t time_connect;
- bool maintain();
- void stop();
-};
-
-
-/*
- * EthernetClientStream.cpp
- * Copied here as a hack to linker issues with 3rd party board packages that don't properly
- * implement the Arduino network APIs.
- */
-EthernetClientStream::EthernetClientStream(Client &client, IPAddress localip, IPAddress ip, const char* host, uint16_t port)
- : client(client),
- localip(localip),
- ip(ip),
- host(host),
- port(port),
- connected(false)
-{
-}
-
-int
-EthernetClientStream::available()
-{
- return maintain() ? client.available() : 0;
-}
-
-int
-EthernetClientStream::read()
-{
- return maintain() ? client.read() : -1;
-}
-
-int
-EthernetClientStream::peek()
-{
- return maintain() ? client.peek() : -1;
-}
-
-void EthernetClientStream::flush()
-{
- if (maintain())
- client.flush();
-}
-
-size_t
-EthernetClientStream::write(uint8_t c)
-{
- return maintain() ? client.write(c) : 0;
-}
-
-void
-EthernetClientStream::maintain(IPAddress localip)
-{
- // ensure the local IP is updated in the case that it is changed by the DHCP server
- if (this->localip != localip) {
- this->localip = localip;
- if (connected)
- stop();
- }
-}
-
-void
-EthernetClientStream::stop()
-{
- client.stop();
- connected = false;
- time_connect = millis();
-}
-
-bool
-EthernetClientStream::maintain()
-{
- if (client && client.connected())
- return true;
-
- if (connected) {
- stop();
- }
- // if the client is disconnected, attempt to reconnect every 5 seconds
- else if (millis() - time_connect >= MILLIS_RECONNECT) {
- connected = host ? client.connect(host, port) : client.connect(ip, port);
- if (!connected) {
- time_connect = millis();
- DEBUG_PRINTLN("Connection failed. Attempting to reconnect...");
- } else {
- DEBUG_PRINTLN("Connected");
- }
- }
- return connected;
-}
-
-#endif /* ETHERNETCLIENTSTREAM_H */