13#pragma comment(lib, "Ws2_32.lib")
14#include "BaseCommunication.h"
15#include "EthernetSettings.h"
16#include "BaseDataExtractor.h"
18#include "DevicePinger.h"
22#ifdef STARFLEETTOOLBOX_EXPORTS
23#define ETHCOMM __declspec(dllexport)
25#define ETHCOMM __declspec(dllimport)
29#define DATA_NOT_READY 0;
37 public BaseCommunication
40 const int TCP_NEWORKQUEUE_OVERFLOWLIMIT = 20;
41 const int TCP_RAWDATA_QUEUE_OVERFLOWLIMIT = 20;
42 const int MAX_SIZE_TO_READ = 40000;
43 const int COMMAND_ACK_TIMEOUT = 5000;
91 string SendCommand(
string commandToSend);
100 RawData WaitForRawData(
int waitTimeout,
unsigned long* semStatus);
108 int GetCommunicationStatus();
114 void Connect(
bool forceMonitoring);
136 void DisconnectTcp();
141 void DisconnectUdp();
149 void StartTcpWorker();
158 void TcpWorkerBusiness(
string name);
159 bool _stopTcpThread =
false;
160 string _commandAckAnswer;
161 HANDLE _mutexcommandAckAnswer;
162 HANDLE _semCommandAckAvailable;
163 HANDLE _mutexSendAvailable;
168 void setCommandAckAnswer(
string pCommandAckAnswer);
174 string getCommandAckAnswer();
183 void StartUdpWorker();
191 void UdpWorkerBusiness(
string name);
192 bool _stopUdpThread =
false;
202 int ProcessRawData(
string dataPacket, vector<string>* dataVector);
204 queue<RawData> _rawDataQueue;
205 HANDLE _mutexRawDataQueue;
206 HANDLE _semRawDataAvailable;
214 bool _dataRequested =
false;
The ETHERNET device pinger: a helper to allow sending ICMP packets to a host.
Definition DevicePinger.h:29
An ETHERNET oriented communication class. It inherits from BaseCommunication. It ensures the ETHERNET...
Definition EthernetCommunication.h:38
The ETHERNET settings encapsulation for ETHERNET communication.
Definition EthernetSettings.h:21
The base class encapsulating sensor's RAW data.
Definition RawData.h:14