3#pragma comment(lib, "Ws2_32.lib")
4#include "BaseCommunication.h"
5#include "UsbSettings.h"
8#include "UsbInformation.h"
9#include "ClockUtilities.h"
11#ifdef STARFLEETTOOLBOX_EXPORTS
12#define USBCOMM __declspec(dllexport)
14#define USBCOMM __declspec(dllimport)
44 public BaseCommunication
47 const int COMMAND_ACK_TIMEOUT = 20000;
48 const int MAX_SIZE_TO_READ = 40000;
85 string SendCommand(
string commandToSend);
94 RawData WaitForRawData(
int waitTimeout,
unsigned long* semStatus);
101 static vector<UsbInformation> GetDeviceList();
109 atomic<chrono::time_point<std::chrono::steady_clock>> _lastUsbDataTime;
111 void Disconnect(
bool reconnecting);
113 std::atomic<bool> _stopHandle;
114 std::atomic<bool> _connected;
116 std::atomic<bool> _alreadydisconnected;
117 std::atomic<bool> _disconnectCalledByPeer;
120 std::atomic<int> _mainConnectionStatus;
121 int _callbackConnectionStatus = 0;
124 thread _usbReceiveData;
126 HANDLE _mutexSendAvailable;
132 void UsbEventDataReceiverBusiness(
void* param);
139 static void __stdcall callbackUSBReadTransferComplete(
struct libusb_transfer* xfr);
Definition CommunicationStructures.h:24
The base class encapsulating sensor's RAW data.
Definition RawData.h:14
A structure definition to handle USB callback event.
Definition UsbCommunication.h:20
BaseDataExtractor * extractor
Definition UsbCommunication.h:26
string commandResult
Definition UsbCommunication.h:30
struct libusb_transfer * transfer
Definition UsbCommunication.h:21
RawData extractedData
Definition UsbCommunication.h:33
HANDLE dataAvailableSemaphore
Definition UsbCommunication.h:27
struct libusb_device_handle * device_handle
Definition UsbCommunication.h:22
bool treat
Definition UsbCommunication.h:31
bool interruptTransfer
Definition UsbCommunication.h:34
atomic< chrono::time_point< std::chrono::steady_clock > > lastUsbDataTime
Definition UsbCommunication.h:36
int * callbackConnectionStatus
Definition UsbCommunication.h:37
vector< string > localVector
Definition UsbCommunication.h:32
HANDLE semReadyToConsume
Definition UsbCommunication.h:29
unsigned char input_endpoint
Definition UsbCommunication.h:23
CommunicationStatus commStatus
Definition UsbCommunication.h:35
struct libusb_context * usbContext
Definition UsbCommunication.h:24
HANDLE rawDataAvailableSemaphore
Definition UsbCommunication.h:28
This class handles the USB communication.
Definition UsbCommunication.h:45
The USB settings encapsulation for USB communication.
Definition UsbSettings.h:18