2#pragma make_public(BaseCommunication)
4#include "WBaseSettings.h"
5#include "BaseCommunication.h"
8using namespace System::Threading;
10using namespace System::Runtime::InteropServices;
12public enum class CommunicationConnectionStatus
32 public ref class WBaseCommunication
abstract
60 return _communication->IsConnected();
69 CommunicationConnectionStatus toReturn;
71 if (_communication != NULL)
73 int state = _communication->GetConnectionState();
76 toReturn = CommunicationConnectionStatus::ConnectionLost;
79 toReturn = CommunicationConnectionStatus::Disconnecting;
82 toReturn = CommunicationConnectionStatus::Reconnecting;
85 toReturn = CommunicationConnectionStatus::Reconnected;
88 toReturn = CommunicationConnectionStatus::Disconnected;
91 toReturn = CommunicationConnectionStatus::ConnectionBack;
94 toReturn = CommunicationConnectionStatus::NoConnection;
97 toReturn = CommunicationConnectionStatus::Connected;
106 property WBaseSettings^ Settings {
107 WBaseSettings^ get() {
111 void set(WBaseSettings^ pSettings) {
112 _settings = pSettings;
116 property BaseCommunication* __nativeCommunication {
117 BaseCommunication* get() {
118 return _communication;
126 void StartMonitoring() {
127#ifdef MONITORING_ENABLED
128 ThreadStart^ threadDelegate = gcnew ThreadStart(
this, &WBaseCommunication::MonitoringProcess);
129 _monitoringWorker = gcnew Thread(threadDelegate);
130 _monitoringWorker->Start();
137 void StopMonitoring() {
138#ifdef MONITORING_ENABLED
139 _monitoringExit =
true;
140 _monitoringWorker->Join();
144 BaseCommunication* _communication;
145 bool _monitoringExit =
false;
148 WBaseSettings^ _settings;
149 Thread^ _monitoringWorker;
154 void MonitoringProcess() {
155 CommunicationConnectionStatus status = CommunicationConnectionStatus::Unknow;
156 CommunicationConnectionStatus lastStatus = CommunicationConnectionStatus::Unknow;
158 while (!_monitoringExit)
160 status = GetConnectionState();
161 if (status != lastStatus) {
Definition WBaseCommunication.h:25
public delegate void MonitorEventHandler(CommunicationConnectionStatus status)
A wrapper on the EthernetCommunication.
bool IsConnected()
Indicates, based on the 'GetConnectionState' method, if the device is connected or not.
Definition WBaseCommunication.h:59
WBaseCommunication()
Definition WBaseCommunication.h:36
event MonitorEventHandler Monitoring
Definition WBaseCommunication.h:43
CommunicationConnectionStatus GetConnectionState()
Returns the actual connection state. /!\: monitoring must be turned to ON to get the realtime status....
Definition WBaseCommunication.h:68
virtual void Disconnect()=0
Pure virtual method that will help the caller to proceed to media disconection.
~WBaseCommunication()
Definition WBaseCommunication.h:40
virtual void Connect()=0
Pure virtual method that will help the caller to proceed to the connection to media.