Visioscan Set SDK Libraries 1.0.28
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#include "WCommunicationStatus.h"
7
8using namespace System::Threading;
9using namespace System;
10using namespace System::Runtime::InteropServices;
11
12public delegate void ManagedDelegate(CommunicationStatus*);
13
14public delegate void CommunicationEventHandler(System::Object^ sender, WUtils::WCommunicationStatus^ e);
15
16namespace WBase {
17
18 public ref class WBaseCommunication abstract
19 {
20 public:
21
24
27
33
37 virtual void Disconnect() = 0;
38
43 bool IsConnected() {
44 return _communication->IsConnected();
45 }
46
47 // Properties
48 property WBaseSettings^ Settings {
49 WBaseSettings^ get() {
50 return _settings;
51 }
52
53 void set(WBaseSettings^ pSettings) {
54 _settings = pSettings;
55 }
56 }
57
58 property BaseCommunication* __nativeCommunication {
59 BaseCommunication* get() {
60 return _communication;
61 }
62 }
63
64 event CommunicationEventHandler^ CommunicationEvent {
65 void add(CommunicationEventHandler^ handler) {
66 if (!_callbackAssigned) {
67 IntPtr ptr = this->GetFunctionPointer();
68 MarshallingConnectionCheckerCallback nativeFunc = reinterpret_cast<MarshallingConnectionCheckerCallback>(ptr.ToPointer());
69 _communication->SetCommunicationCallback(nativeFunc);
70 _callbackAssigned = true;
71 }
72
73 _communicationEvent += handler;
74 }
75 void remove(CommunicationEventHandler^ handler) {
76 _communicationEvent -= handler;
77 }
78 }
79
80 protected:
81 ManagedDelegate^ del = gcnew ManagedDelegate(this, &WBaseCommunication::CommunicationCallback);
83 return Marshal::GetFunctionPointerForDelegate(del);
84 }
85
88 for (int i = 0; i < status->Channels.size(); i++) {
89 WUtils::WChannel^ toAdd = gcnew WUtils::WChannel();
90 toAdd->RawDataAvailability = static_cast<DataAvailabilityEnum>(status->Channels[i].RawDataAvailability);
91 toAdd->Type = static_cast<ChannelTypeEnum>(status->Channels[i].Type);
92
93 eventDataToFire->Channels->Add(toAdd);
94 }
95
96 eventDataToFire->ErrorCode = gcnew WUtils::WCommunicationErrorCode();
97 eventDataToFire->ErrorCode->ErrorCode = status->ErrorCode.ErrorCode;
98 eventDataToFire->ErrorCode->ErrorMeaning = gcnew String(status->ErrorCode.ErrorMeaning.c_str());
99
100 eventDataToFire->Status = static_cast<ConnectionStatusEnum>(status->Status);
101
102 _communicationEvent(this, eventDataToFire);
103 }
104
105 BaseCommunication* _communication;
106 bool _monitoringExit = false;
107
108 private:
109 bool _callbackAssigned = false;
110 event CommunicationEventHandler^ _communicationEvent;
111 WBaseSettings^ _settings;
112 Thread^ _monitoringWorker;
113 };
114}
Definition WBaseCommunication.h:16
DataAvailabilityEnum
Definition WEnums.h:28
ChannelTypeEnum
Definition WEnums.h:27
ConnectionStatusEnum
Definition WEnums.h:26
std::string ErrorMeaning
Definition CommunicationStructures.h:16
int ErrorCode
Definition CommunicationStructures.h:15
Definition CommunicationStructures.h:24
ConnectionState Status
Definition CommunicationStructures.h:26
vector< Channel > Channels
Definition CommunicationStructures.h:25
CommErrorCode ErrorCode
Definition CommunicationStructures.h:27
bool IsConnected()
Indicates, based on the 'GetConnectionState' method, if the device is connected or not.
Definition WBaseCommunication.h:43
WBaseCommunication()
Definition WBaseCommunication.h:22
IntPtr GetFunctionPointer()
Definition WBaseCommunication.h:82
virtual WUtils::WCommunicationStatus Connect()=0
Pure virtual method that will help the caller to proceed to the connection to media.
virtual void Disconnect()=0
Pure virtual method that will help the caller to proceed to media disconection.
void CommunicationCallback(CommunicationStatus *status)
Definition WBaseCommunication.h:86
~WBaseCommunication()
Definition WBaseCommunication.h:25
BaseCommunication * _communication
Definition WBaseCommunication.h:105
Definition WChannel.h:12
property ChannelTypeEnum Type
Definition WChannel.h:22
Definition WCommunicationErrorCode.h:6
Definition WCommunicationStatus.h:16
property List< WChannel^> Channels
Definition WCommunicationStatus.h:24