Files
DP44/docs/ai/Common/DTS.Common.IConnection/USBConnection/HIDUSBConnection.md
2026-04-17 14:55:32 -04:00

3.1 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.Common.IConnection/USBConnection/HIDUSBConnection/HIDUSBConnection.cs
2026-04-17T15:42:39.330640+00:00 zai-org/GLM-5-FP8 1 7d6d1a6f53e67671

HIDUSBConnection Documentation

1. Purpose

HIDUSBConnection implements the IConnection interface to provide asynchronous communication with USB Human Interface Device (HID) hardware. It targets specific DTS devices identified by Vendor ID 0x1CB9 and Product ID 0x0003. The class wraps Windows HID API calls for device discovery, connection management, and bidirectional data transfer using input/output reports.


2. Public Interface

Constants

Name Value Description
HIDSLICE_PID 0x0003 Product ID for target HID device
DTS_VID 0x1CB9 Vendor ID for DTS devices

Properties

Signature Description
bool Connected { get; } Returns current connection state
string ConnectString { get; } Returns the device path name set via Create()
System.Net.Sockets.SocketFlags Flags { get; set; } Socket flags property (purpose unclear in HID context)

Events

Signature Description
event EventHandler OnDisconnected Event raised when device disconnects (defined but never invoked in source)

Methods

Signature Description
void Create(string ConnectString) Stores device path in Device_Name
void Dispose() Public disposal method implementing IDisposable pattern
IAsyncResult BeginConnect(AsyncCallback cb, object state) Queues async connect operation via ThreadPool
void EndConnect(IAsyncResult ar) Opens handles to device, retrieves capabilities, initializes buffers
static string GetFirstConnectString() Enumerates HID devices to find first matching VID/PID; returns device path or empty string
IAsyncResult BeginDisconnect(bool reuseSocket, AsyncCallback cb, Object state) Queues async disconnect operation
void EndDisconnect(IAsyncResult asyncResult) Closes _HIDHandle, _ReadHandle, _WriteHandle; sets _Connected = false
IAsyncResult BeginSend(byte[] buffer, int offset, int size, AsyncCallback cb, object state) Queues async send operation; validates handles first
int EndSend(IAsyncResult ar) Writes data to device via HID output reports; returns total bytes sent
IAsyncResult BeginReceive(byte[] buffer, int offset, int size, AsyncCallback cb, object state) Queues async receive operation; validates handles first
int EndReceive(IAsyncResult ar) Reads HID input report; copies to buffer (skipping first byte); returns bytes read or 0 on failure
double GetCurrentDownloadRate() Returns 0D (stub)
double GetCurrentUploadRate() Returns 0D (stub)
string GetConnectionData() Returns empty string (stub)
void Bind(int port) Throws NotSupportedException
void Listen(int backlog) Throws NotSupportedException
IAsyncResult BeginAccept(AsyncCallback callback, Object state)