Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Работа с USB. Прием данных


Автор: Specialist 30.8.2008, 21:41
Привет.
Я отправляю данные по USB вот так. Раньше тут намного больше кода было, я лишнее убрал и все работает. А с приемом данных не могу понять.
Код

Byte[] dataBuffer = new Byte[1];
dataBuffer[0] = 1;
bytesToSend = Convert.ToUInt32(dataBuffer.GetLength(0));
success = myWinUsbDevice.SendViaInterruptTransfer(ref dataBuffer, bytesToSend);


Подскажите плиз вот мне нужно принять данные в массив. Как этот код работает. ?

Код

private void ReadDataViaInterruptTransfer() 
        {             
            IAsyncResult ar = null; 
            Byte[] buffer = new Byte[ 2 ]; 
            UInt32 bytesRead = 0; 
            UInt32 bytesToRead = System.Convert.ToUInt32( 2 ); 
            Boolean success = false; 
            
            try 
            { 
                //  Define a delegate for the ReadViaInterruptTransfer method of WinUsbDevice.
                
                ReadFromDeviceDelegate MyReadFromDeviceDelegate = new ReadFromDeviceDelegate( myWinUsbDevice.ReadViaInterruptTransfer ); 
                
                //  The BeginInvoke method calls MyWinUsbDevice.ReadViaInterruptTransfer to attempt 
                //  to read data. The method has the same parameters as ReadViaInterruptTransfer,
                //  plus two additional parameters:
                //  GetReceivedInterruptData is the callback routine that executes when 
                //  ReadViaInterruptTransfer returns.
                //  MyReadFromDeviceDelegate is the asynchronous delegate object.
                
                ar = MyReadFromDeviceDelegate.BeginInvoke
                    (System.Convert.ToByte( myWinUsbDevice.myDevInfo.interruptInPipe ), 
                    bytesToRead, 
                    ref buffer, 
                    ref bytesRead, 
                    ref success, 
                    new AsyncCallback( GetReceivedInterruptData ), 
                    MyReadFromDeviceDelegate );                 
            } 
            catch ( Exception ex ) 
            { 
                throw ; 
            }             
        }



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)