Main MRPT website > C++ reference for MRPT 1.9.9
xsens/xswinusb.h
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2018, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 #ifndef XSWINUSB
10 #define XSWINUSB
11 
12 #include <windows.h>
13 #include <winusb.h>
14 
15 struct XsLibraryLoader;
16 
17 typedef BOOL __stdcall WinUSB_Initialize(
18  HANDLE DeviceHandle, WINUSB_INTERFACE_HANDLE* InterfaceHandle);
19 typedef BOOL __stdcall WinUSB_Free(WINUSB_INTERFACE_HANDLE InterfaceHandle);
21  WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AssociatedInterfaceIndex,
22  WINUSB_INTERFACE_HANDLE* AssociatedInterfaceHandle);
23 typedef BOOL __stdcall WinUSB_GetDescriptor(
24  WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR DescriptorType, UCHAR Index,
25  USHORT LanguageID, PUCHAR Buffer, ULONG BufferLength,
26  PULONG LengthTransferred);
28  WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AltSettingIndex,
29  PUSB_INTERFACE_DESCRIPTOR UsbAltInterfaceDescriptor);
31  WINUSB_INTERFACE_HANDLE InterfaceHandle, ULONG InformationType,
32  PULONG BufferLength, PVOID Buffer);
34  WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AltSettingNumber);
36  WINUSB_INTERFACE_HANDLE InterfaceHandle, PUCHAR AltSettingNumber);
37 typedef BOOL __stdcall WinUSB_QueryPipe(
38  WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AltSettingNumber,
39  UCHAR PipeIndex, PWINUSB_PIPE_INFORMATION PipeInformation);
40 typedef BOOL __stdcall WinUSB_SetPipePolicy(
41  WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, ULONG PolicyType,
42  ULONG ValueLength, PVOID Value);
43 typedef BOOL __stdcall WinUSB_GetPipePolicy(
44  WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, ULONG PolicyType,
45  PULONG ValueLength, PVOID Value);
46 typedef BOOL __stdcall WinUSB_ReadPipe(
47  WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, PUCHAR Buffer,
48  ULONG BufferLength, PULONG LengthTransferred, LPOVERLAPPED Overlapped);
49 typedef BOOL __stdcall WinUSB_WritePipe(
50  WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, PUCHAR Buffer,
51  ULONG BufferLength, PULONG LengthTransferred, LPOVERLAPPED Overlapped);
52 typedef BOOL __stdcall WinUSB_ControlTransfer(
53  WINUSB_INTERFACE_HANDLE InterfaceHandle, WINUSB_SETUP_PACKET SetupPacket,
54  PUCHAR Buffer, ULONG BufferLength, PULONG LengthTransferred,
55  LPOVERLAPPED Overlapped);
56 typedef BOOL __stdcall WinUSB_ResetPipe(
57  WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID);
58 typedef BOOL __stdcall WinUSB_AbortPipe(
59  WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID);
60 typedef BOOL __stdcall WinUSB_FlushPipe(
61  WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID);
62 typedef BOOL __stdcall WinUSB_SetPowerPolicy(
63  WINUSB_INTERFACE_HANDLE InterfaceHandle, ULONG PolicyType,
64  ULONG ValueLength, PVOID Value);
65 typedef BOOL __stdcall WinUSB_GetPowerPolicy(
66  WINUSB_INTERFACE_HANDLE InterfaceHandle, ULONG PolicyType,
67  PULONG ValueLength, PVOID Value);
68 typedef BOOL __stdcall WinUSB_GetOverlappedResult(
69  WINUSB_INTERFACE_HANDLE InterfaceHandle, LPOVERLAPPED Overlapped,
70  LPDWORD lpNumberOfBytesTransferred, BOOL bWait);
71 
72 class XsWinUsb
73 {
74  public:
75  XsWinUsb(void);
76  ~XsWinUsb(void);
77 
98 
99  private:
100  typedef struct _WINUSB_API
101  {
122  } WINUSB_API;
123 
126 
127  void initLibrary();
128 };
129 
130 #endif // file guard
WinUSB_QueryPipe
BOOL __stdcall WinUSB_QueryPipe(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AltSettingNumber, UCHAR PipeIndex, PWINUSB_PIPE_INFORMATION PipeInformation)
Definition: xsens/xswinusb.h:37
XsWinUsb::_WINUSB_API::GetPipePolicy
WinUSB_GetPipePolicy * GetPipePolicy
Definition: xsens/xswinusb.h:112
XsWinUsb::_WINUSB_API::Free
WinUSB_Free * Free
Definition: xsens/xswinusb.h:103
XsWinUsb::m_libraryLoader
XsLibraryLoader * m_libraryLoader
Definition: xsens/xswinusb.h:125
XsWinUsb::SetCurrentAlternateSetting
WinUSB_SetCurrentAlternateSetting SetCurrentAlternateSetting
Sets the alternate setting of an interface. Sets the active bAlternateSetting for the current/default...
Definition: xsens/xswinusb.h:84
XsWinUsb::WINUSB_API
struct XsWinUsb::_WINUSB_API WINUSB_API
XsWinUsb::_WINUSB_API::QueryDeviceInformation
WinUSB_QueryDeviceInformation * QueryDeviceInformation
Definition: xsens/xswinusb.h:107
WinUSB_GetOverlappedResult
BOOL __stdcall WinUSB_GetOverlappedResult(WINUSB_INTERFACE_HANDLE InterfaceHandle, LPOVERLAPPED Overlapped, LPDWORD lpNumberOfBytesTransferred, BOOL bWait)
Definition: xsens/xswinusb.h:68
XsWinUsb::QueryPipe
WinUSB_QueryPipe QueryPipe
Retrieves information about a pipe that is associated with an interface. The QueryPipe function does ...
Definition: xsens/xswinusb.h:86
WinUSB_SetCurrentAlternateSetting
BOOL __stdcall WinUSB_SetCurrentAlternateSetting(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AltSettingNumber)
Definition: xsens/xswinusb.h:33
XsWinUsb::GetPowerPolicy
WinUSB_GetPowerPolicy GetPowerPolicy
Gets the power policy for a device.
Definition: xsens/xswinusb.h:96
XsWinUsb::AbortPipe
WinUSB_AbortPipe AbortPipe
Aborts all of the pending transfers for a pipe.
Definition: xsens/xswinusb.h:93
XsWinUsb::_WINUSB_API::QueryInterfaceSettings
WinUSB_QueryInterfaceSettings * QueryInterfaceSettings
Definition: xsens/xswinusb.h:106
XsWinUsb::GetPipePolicy
WinUSB_GetPipePolicy GetPipePolicy
Gets the policy for a specific pipe (endpoint).
Definition: xsens/xswinusb.h:88
XsWinUsb::ReadPipe
WinUSB_ReadPipe ReadPipe
Reads data from the specified pipe.
Definition: xsens/xswinusb.h:89
WinUSB_GetDescriptor
BOOL __stdcall WinUSB_GetDescriptor(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR DescriptorType, UCHAR Index, USHORT LanguageID, PUCHAR Buffer, ULONG BufferLength, PULONG LengthTransferred)
Definition: xsens/xswinusb.h:23
XsWinUsb::XsWinUsb
XsWinUsb(void)
Definition: xswinusb.cpp:17
XsWinUsb::ResetPipe
WinUSB_ResetPipe ResetPipe
Resets the data toggle and clears the stall condition on a pipe.
Definition: xsens/xswinusb.h:92
WinUSB_Free
BOOL __stdcall WinUSB_Free(WINUSB_INTERFACE_HANDLE InterfaceHandle)
Definition: xsens/xswinusb.h:19
XsWinUsb::_WINUSB_API::ReadPipe
WinUSB_ReadPipe * ReadPipe
Definition: xsens/xswinusb.h:113
XsWinUsb::_WINUSB_API::GetAssociatedInterface
WinUSB_GetAssociatedInterface * GetAssociatedInterface
Definition: xsens/xswinusb.h:104
WinUSB_Initialize
BOOL __stdcall WinUSB_Initialize(HANDLE DeviceHandle, WINUSB_INTERFACE_HANDLE *InterfaceHandle)
Definition: xsens/xswinusb.h:17
WinUSB_ReadPipe
BOOL __stdcall WinUSB_ReadPipe(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, PUCHAR Buffer, ULONG BufferLength, PULONG LengthTransferred, LPOVERLAPPED Overlapped)
Definition: xsens/xswinusb.h:46
WinUSB_ResetPipe
BOOL __stdcall WinUSB_ResetPipe(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID)
Definition: xsens/xswinusb.h:56
WinUSB_SetPipePolicy
BOOL __stdcall WinUSB_SetPipePolicy(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, ULONG PolicyType, ULONG ValueLength, PVOID Value)
Definition: xsens/xswinusb.h:40
WinUSB_GetCurrentAlternateSetting
BOOL __stdcall WinUSB_GetCurrentAlternateSetting(WINUSB_INTERFACE_HANDLE InterfaceHandle, PUCHAR AltSettingNumber)
Definition: xsens/xswinusb.h:35
WinUSB_ControlTransfer
BOOL __stdcall WinUSB_ControlTransfer(WINUSB_INTERFACE_HANDLE InterfaceHandle, WINUSB_SETUP_PACKET SetupPacket, PUCHAR Buffer, ULONG BufferLength, PULONG LengthTransferred, LPOVERLAPPED Overlapped)
Definition: xsens/xswinusb.h:52
WinUSB_GetPipePolicy
BOOL __stdcall WinUSB_GetPipePolicy(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, ULONG PolicyType, PULONG ValueLength, PVOID Value)
Definition: xsens/xswinusb.h:43
WinUSB_GetPowerPolicy
BOOL __stdcall WinUSB_GetPowerPolicy(WINUSB_INTERFACE_HANDLE InterfaceHandle, ULONG PolicyType, PULONG ValueLength, PVOID Value)
Definition: xsens/xswinusb.h:65
WinUSB_GetAssociatedInterface
BOOL __stdcall WinUSB_GetAssociatedInterface(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AssociatedInterfaceIndex, WINUSB_INTERFACE_HANDLE *AssociatedInterfaceHandle)
Definition: xsens/xswinusb.h:20
WinUSB_QueryDeviceInformation
BOOL __stdcall WinUSB_QueryDeviceInformation(WINUSB_INTERFACE_HANDLE InterfaceHandle, ULONG InformationType, PULONG BufferLength, PVOID Buffer)
Definition: xsens/xswinusb.h:30
XsWinUsb::_WINUSB_API::QueryPipe
WinUSB_QueryPipe * QueryPipe
Definition: xsens/xswinusb.h:110
XsWinUsb::Initialize
WinUSB_Initialize Initialize
Creates/opens a WinUsb interface handle from the device list.
Definition: xsens/xswinusb.h:78
XsWinUsb::~XsWinUsb
~XsWinUsb(void)
Definition: xswinusb.cpp:23
XsWinUsb::FlushPipe
WinUSB_FlushPipe FlushPipe
Discards any data that is cached in a pipe.
Definition: xsens/xswinusb.h:94
XsWinUsb::GetOverlappedResult
WinUSB_GetOverlappedResult GetOverlappedResult
Retrieves the results of an overlapped operation on the specified winUSB handle.
Definition: xsens/xswinusb.h:97
XsWinUsb::initLibrary
void initLibrary()
Definition: xswinusb.cpp:24
WinUSB_FlushPipe
BOOL __stdcall WinUSB_FlushPipe(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID)
Definition: xsens/xswinusb.h:60
XsWinUsb::_WINUSB_API::GetCurrentAlternateSetting
WinUSB_GetCurrentAlternateSetting * GetCurrentAlternateSetting
Definition: xsens/xswinusb.h:109
XsWinUsb::_WINUSB_API::AbortPipe
WinUSB_AbortPipe * AbortPipe
Definition: xsens/xswinusb.h:117
XsWinUsb::GetDescriptor
WinUSB_GetDescriptor GetDescriptor
Gets the requested descriptor. This is a synchronous operation.
Definition: xsens/xswinusb.h:81
WinUSB_WritePipe
BOOL __stdcall WinUSB_WritePipe(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, PUCHAR Buffer, ULONG BufferLength, PULONG LengthTransferred, LPOVERLAPPED Overlapped)
Definition: xsens/xswinusb.h:49
XsWinUsb::_WINUSB_API::GetDescriptor
WinUSB_GetDescriptor * GetDescriptor
Definition: xsens/xswinusb.h:105
XsWinUsb::QueryDeviceInformation
WinUSB_QueryDeviceInformation QueryDeviceInformation
Retrieves information about the physical device that is associated with a WinUSB handle.
Definition: xsens/xswinusb.h:83
XsWinUsb::_WINUSB_API::ControlTransfer
WinUSB_ControlTransfer * ControlTransfer
Definition: xsens/xswinusb.h:115
XsLibraryLoader
The Xsens dynamic library loader base class.
Definition: xslibraryloader.h:41
XsWinUsb::_WINUSB_API
Definition: xsens/xswinusb.h:100
BOOL
int BOOL
Definition: xstypedefs.h:76
XsWinUsb::_WINUSB_API::FlushPipe
WinUSB_FlushPipe * FlushPipe
Definition: xsens/xswinusb.h:118
XsWinUsb::SetPowerPolicy
WinUSB_SetPowerPolicy SetPowerPolicy
Sets the power policy for a device. The following list summarizes the effects of changes to power man...
Definition: xsens/xswinusb.h:95
XsWinUsb::WritePipe
WinUSB_WritePipe WritePipe
Writes data to a pipe.
Definition: xsens/xswinusb.h:90
XsWinUsb::SetPipePolicy
WinUSB_SetPipePolicy SetPipePolicy
Sets the policy for a specific pipe associated with an endpoint on the device. This is a synchronous ...
Definition: xsens/xswinusb.h:87
XsWinUsb::QueryInterfaceSettings
WinUSB_QueryInterfaceSettings QueryInterfaceSettings
Retrieves the interface descriptor for the specified alternate interface settings for a particular in...
Definition: xsens/xswinusb.h:82
WinUSB_QueryInterfaceSettings
BOOL __stdcall WinUSB_QueryInterfaceSettings(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AltSettingIndex, PUSB_INTERFACE_DESCRIPTOR UsbAltInterfaceDescriptor)
Definition: xsens/xswinusb.h:27
XsWinUsb::_WINUSB_API::GetOverlappedResult
WinUSB_GetOverlappedResult * GetOverlappedResult
Definition: xsens/xswinusb.h:121
XsWinUsb::_WINUSB_API::Initialize
WinUSB_Initialize * Initialize
Definition: xsens/xswinusb.h:102
XsWinUsb::GetCurrentAlternateSetting
WinUSB_GetCurrentAlternateSetting GetCurrentAlternateSetting
Gets the current alternate interface setting for an interface. Gets the active bAlternateSetting for ...
Definition: xsens/xswinusb.h:85
XsWinUsb::GetAssociatedInterface
WinUSB_GetAssociatedInterface GetAssociatedInterface
Retrieves a handle for an associated interface.
Definition: xsens/xswinusb.h:80
XsWinUsb::_WINUSB_API::SetPowerPolicy
WinUSB_SetPowerPolicy * SetPowerPolicy
Definition: xsens/xswinusb.h:119
XsWinUsb::_WINUSB_API::ResetPipe
WinUSB_ResetPipe * ResetPipe
Definition: xsens/xswinusb.h:116
XsWinUsb::ControlTransfer
WinUSB_ControlTransfer ControlTransfer
Transmits control data over a default control endpoint. A ControlTransfer is never cached....
Definition: xsens/xswinusb.h:91
XsWinUsb::_WINUSB_API::GetPowerPolicy
WinUSB_GetPowerPolicy * GetPowerPolicy
Definition: xsens/xswinusb.h:120
XsWinUsb::_WINUSB_API::SetPipePolicy
WinUSB_SetPipePolicy * SetPipePolicy
Definition: xsens/xswinusb.h:111
XsWinUsb::_WINUSB_API::SetCurrentAlternateSetting
WinUSB_SetCurrentAlternateSetting * SetCurrentAlternateSetting
Definition: xsens/xswinusb.h:108
XsWinUsb::_WINUSB_API::WritePipe
WinUSB_WritePipe * WritePipe
Definition: xsens/xswinusb.h:114
XsWinUsb::m_winUsb
WINUSB_API m_winUsb
Definition: xsens/xswinusb.h:124
WinUSB_SetPowerPolicy
BOOL __stdcall WinUSB_SetPowerPolicy(WINUSB_INTERFACE_HANDLE InterfaceHandle, ULONG PolicyType, ULONG ValueLength, PVOID Value)
Definition: xsens/xswinusb.h:62
XsWinUsb::Free
WinUSB_Free Free
Frees a WinUsb interface handle.
Definition: xsens/xswinusb.h:79
WinUSB_AbortPipe
BOOL __stdcall WinUSB_AbortPipe(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID)
Definition: xsens/xswinusb.h:58
XsWinUsb
Class for dynamic loading of winusb.
Definition: xsens/xswinusb.h:72



Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST