예제 #1
0
        public void WriteReport(HidReport report, WriteCallback callback, int timeout)
        {
            var writeReportDelegate = new WriteReportDelegate(WriteReport);
            var asyncState          = new HidAsyncState(writeReportDelegate, callback);

            writeReportDelegate.BeginInvoke(report, timeout, EndWriteReport, asyncState);
        }
예제 #2
0
 /// <summary>
 /// Handle data transfers on the control channel.  This method places data on the control channel for devices
 /// that do not support the interupt transfers
 /// </summary>
 /// <param name="report">The outbound HID report</param>
 /// <returns>The result of the tranfer request: true if successful otherwise false</returns>
 ///
 public bool WriteReportSync(HidReport report)
 {
     if (null != report)
     {
         byte[] buffer = report.GetBytes();
         return(NativeMethods.HidD_SetOutputReport(Handle, buffer, buffer.Length));
     }
     else
     {
         throw new ArgumentException("The output report is null, it must be allocated before you call this method", "report");
     }
 }
예제 #3
0
        public async Task <bool> WriteReportAsync(HidReport report, int timeout = 0)
        {
            var writeReportDelegate = new WriteReportDelegate(WriteReport);

            return(await Task <bool> .Factory.FromAsync(writeReportDelegate.BeginInvoke, writeReportDelegate.EndInvoke, report, timeout, null));
        }
예제 #4
0
 public void WriteReport(HidReport report, WriteCallback callback)
 {
     WriteReport(report, callback, 0);
 }
예제 #5
0
 public bool WriteReport(HidReport report, int timeout)
 {
     return(Write(report.GetBytes(), timeout));
 }
예제 #6
0
 public bool WriteReport(HidReport report)
 {
     return(WriteReport(report, 0));
 }