Skip to content

Retro-compatibility with ArduinoIoTCloud v0.8.4 #19

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 64 additions & 59 deletions src/Arduino_ConnectionHandler.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,65 +18,6 @@
#ifndef ARDUINO_CONNECTION_HANDLER_H_
#define ARDUINO_CONNECTION_HANDLER_H_

/******************************************************************************
INCLUDES
******************************************************************************/

#include <Arduino_DebugUtils.h>

/******************************************************************************
TYPEDEFS
******************************************************************************/

enum class NetworkConnectionState {
INIT,
CONNECTING,
CONNECTED,
GETTIME,
DISCONNECTING,
DISCONNECTED,
CLOSED,
ERROR
};

enum class NetworkConnectionEvent {
INIT, CONNECTING, CONNECTED, DISCONNECTING, DISCONNECTED, CLOSED, ERROR
};

typedef void (*OnNetworkEventCallback)(void * /* arg */);

/******************************************************************************
CLASS DECLARATION
******************************************************************************/

class ConnectionHandler {
public:
virtual void init() = 0;
virtual void check() = 0;
virtual void update() = 0;

virtual NetworkConnectionState getStatus() {
return netConnectionState;
}
virtual void connect();
virtual void disconnect();
void addCallback(NetworkConnectionEvent const event, OnNetworkEventCallback callback);
void addConnectCallback(OnNetworkEventCallback callback);
void addDisconnectCallback(OnNetworkEventCallback callback);
void addErrorCallback(OnNetworkEventCallback callback);

protected:
OnNetworkEventCallback _on_connect_event_callback = NULL,
_on_disconnect_event_callback = NULL,
_on_error_event_callback = NULL;

unsigned long lastValidTimestamp = 0; /* UNUSED */
NetworkConnectionState netConnectionState = NetworkConnectionState::DISCONNECTED;

static void execNetworkEventCallback(OnNetworkEventCallback & callback, void * callback_arg);

};

#ifdef ARDUINO_SAMD_MKR1000
#include <WiFi101.h>
#include <WiFiUdp.h>
Expand Down Expand Up @@ -162,6 +103,70 @@ class ConnectionHandler {
#define WIFI_FIRMWARE_VERSION_REQUIRED WIFI_FIRMWARE_REQUIRED
#endif

/******************************************************************************
INCLUDES
******************************************************************************/

#include <Arduino_DebugUtils.h>

/******************************************************************************
TYPEDEFS
******************************************************************************/

enum class NetworkConnectionState {
INIT,
CONNECTING,
CONNECTED,
GETTIME,
DISCONNECTING,
DISCONNECTED,
CLOSED,
ERROR
};

enum class NetworkConnectionEvent {
INIT, CONNECTING, CONNECTED, DISCONNECTING, DISCONNECTED, CLOSED, ERROR
};

typedef void (*OnNetworkEventCallback)(void * /* arg */);

/******************************************************************************
CLASS DECLARATION
******************************************************************************/

class ConnectionHandler {
public:
virtual void init() = 0;
virtual void check() = 0;
virtual void update() = 0;

#if defined(BOARD_HAS_WIFI) || defined(BOARD_HAS_GSM) || defined(BOARD_HAS_NB)
virtual unsigned long getTime() = 0;
virtual Client &getClient() = 0;
virtual UDP &getUDP() = 0;
#endif

virtual NetworkConnectionState getStatus() {
return netConnectionState;
}
virtual void connect();
virtual void disconnect();
void addCallback(NetworkConnectionEvent const event, OnNetworkEventCallback callback);
void addConnectCallback(OnNetworkEventCallback callback);
void addDisconnectCallback(OnNetworkEventCallback callback);
void addErrorCallback(OnNetworkEventCallback callback);

protected:
OnNetworkEventCallback _on_connect_event_callback = NULL,
_on_disconnect_event_callback = NULL,
_on_error_event_callback = NULL;

unsigned long lastValidTimestamp = 0; /* UNUSED */
NetworkConnectionState netConnectionState = NetworkConnectionState::DISCONNECTED;

static void execNetworkEventCallback(OnNetworkEventCallback & callback, void * callback_arg);

};

#if defined(BOARD_HAS_WIFI) || defined(BOARD_HAS_GSM) || defined(BOARD_HAS_NB)
#include "Arduino_TcpIpConnectionHandler.h"
Expand Down