Visioscan Set SDK Libraries 1.0.14
Visioscan Set SDK Help documentation file for C++ and C++/CLI
 
Loading...
Searching...
No Matches
WBaseCommunication.h
1#pragma once
2#pragma make_public(BaseCommunication)
3
4#include "WBaseSettings.h"
5#include "BaseCommunication.h"
6
7
8using namespace System::Threading;
9using namespace System;
10using namespace System::Runtime::InteropServices;
11
12public enum class CommunicationConnectionStatus
13{
14 Unknow = 0,
15 ConnectionLost = 3,
16 Disconnecting = 4,
17 Reconnecting = 5,
18 Reconnected = 6,
19 Disconnected = 7,
20 ConnectionBack = 8,
21 NoConnection = 9,
22 Connected = 10
23};
24
25namespace WBase {
26
30 public delegate void MonitorEventHandler(CommunicationConnectionStatus status);
31
32 public ref class WBaseCommunication abstract
33 {
34 public:
35
37 StartMonitoring();
38 }
39
41 }
42
48 virtual void Connect() = 0;
49
53 virtual void Disconnect() = 0;
54
59 bool IsConnected() {
60 return _communication->IsConnected();
61 }
62
68 CommunicationConnectionStatus GetConnectionState() {
69 CommunicationConnectionStatus toReturn;
70
71 if (_communication != NULL)
72 {
73 int state = _communication->GetConnectionState();
74 switch (state) {
75 case CONNECTION_LOST:
76 toReturn = CommunicationConnectionStatus::ConnectionLost;
77 break;
78 case DISCONNECTING:
79 toReturn = CommunicationConnectionStatus::Disconnecting;
80 break;
81 case RECONNECTING:
82 toReturn = CommunicationConnectionStatus::Reconnecting;
83 break;
84 case RECONNECTED:
85 toReturn = CommunicationConnectionStatus::Reconnected;
86 break;
87 case DISCONNECTED:
88 toReturn = CommunicationConnectionStatus::Disconnected;
89 break;
90 case CONNECTION_BACK:
91 toReturn = CommunicationConnectionStatus::ConnectionBack;
92 break;
93 case NO_CONNECTION:
94 toReturn = CommunicationConnectionStatus::NoConnection;
95 break;
96 case CONNECTED:
97 toReturn = CommunicationConnectionStatus::Connected;
98 break;
99 }
100 }
101
102 return toReturn;
103 }
104
105 // Properties
106 property WBaseSettings^ Settings {
107 WBaseSettings^ get() {
108 return _settings;
109 }
110
111 void set(WBaseSettings^ pSettings) {
112 _settings = pSettings;
113 }
114 }
115
116 property BaseCommunication* __nativeCommunication {
117 BaseCommunication* get() {
118 return _communication;
119 }
120 }
121
122 protected:
126 void StartMonitoring() {
127#ifdef MONITORING_ENABLED
128 ThreadStart^ threadDelegate = gcnew ThreadStart(this, &WBaseCommunication::MonitoringProcess);
129 _monitoringWorker = gcnew Thread(threadDelegate);
130 _monitoringWorker->Start();
131#endif
132 }
133
137 void StopMonitoring() {
138#ifdef MONITORING_ENABLED
139 _monitoringExit = true;
140 _monitoringWorker->Join();
141#endif
142 }
143
144 BaseCommunication* _communication;
145 bool _monitoringExit = false;
146
147 private:
148 WBaseSettings^ _settings;
149 Thread^ _monitoringWorker;
150
154 void MonitoringProcess() {
155 CommunicationConnectionStatus status = CommunicationConnectionStatus::Unknow;
156 CommunicationConnectionStatus lastStatus = CommunicationConnectionStatus::Unknow;
157
158 while (!_monitoringExit)
159 {
160 status = GetConnectionState();
161 if (status != lastStatus) {
162 lastStatus = status;
163 Monitoring(status);
164 }
165 Thread::Sleep(50);
166 }
167 }
168 };
169}
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.