Come si fa ad inviare/ricevere file in VB.NET tramite USB?
Ho trovato un paio di librerie, ma nessun sorgente di esempio in VB.net, solo in c++...
L'unica che dovrebbe funzionare è questa (l'altra che ho trovato e bacata e non piu' sviluppata); sto provando a convertire i sorgenti c# in VB.net, ma senza successo.
Per esempio, questa funzione mi dà sempre errore:
Mia versione VB:codice:private bool openDevice(int index) { int ret; bool bRtn = false; closeDevice(); chkRead.CheckedChanged -= chkRead_CheckedChanged; chkRead.Checked = false; cmdRead.Enabled = true; chkRead.CheckedChanged += chkRead_CheckedChanged; mDev = mDevList[index]; mDev.Open(); Debug.Assert(mDev.SetConfiguration(1) == 0); Debug.Assert(mDev.ClaimInterface(0) == 0); mEpReader = mDev.OpenBulkEndpointReader(ReadEndpoints.Ep01); mEpWriter = mDev.OpenBulkEndpointWriter(WriteEndpoints.Ep01); mEpReader.DataReceived += mEp_DataReceived; panTransfer.Enabled = true; byte bTestType; if (mDev.Info.IdVendor == VID && mDev.Info.IdProduct == PID) if (getTestType(out bTestType)) { if (bTestType != 3) { ret = mDev.IOControlMessage(0xC0, 14, 3, 0, new byte[0], 1000); if (ret >= 0) { byte[] _bTemp = new byte[64]; Int64 tickStart = DateTime.Now.Ticks; while ((DateTime.Now.Ticks - tickStart) < 50000000) { ret = mEpReader.Read(_bTemp, 1000); if (ret >= 0) { if ((ret == 1) && (_bTemp[0] == 0x80)) { bRtn = true; break; } } Application.DoEvents(); } } } else bRtn = true; } if (bRtn) tsStatus.Text = "Device Opened."; else tsStatus.Text = "Device Failed to Opened!"; return bRtn; }
codice:Function openDevice(ByVal index As Integer) As Boolean Dim ret As Integer Dim bRtn As Boolean Dim bTestType As Byte Dim _bTemp(64) As Byte Dim tickStart As Int64 bRtn = False Dim b(100) As Byte ' closeDevice(); mDev = mDevList(index) mDev.Open() Debug.Assert(mDev.SetConfiguration(1) = 0) Debug.Assert(mDev.ClaimInterface(0) = 0) mEpReader = mDev.OpenBulkEndpointReader(ReadEndpoints.Ep01) mEpWriter = mDev.OpenBulkEndpointWriter(WriteEndpoints.Ep01) ' mEpReader.DataReceived = mEpReader.DataReceived + mEp_DataReceived If getTestType(bTestType) Then If bTestType <> 3 Then ret = mDev.IOControlMessage(192, 14, 3, 0, b, 1000) If ret >= 0 Then tickStart = DateTime.Now.Ticks While (DateTime.Now.Ticks - tickStart) < 50000000 ret = mEpReader.Read(_bTemp, 1000) If ret >= 0 Then If ret = 1 And _bTemp(0) = 128 Then bRtn = True Exit While End If End If Application.DoEvents() End While End If Else bRtn = True End If End If If (bRtn) Then Debug.Print("Device successfully Opened.") Else Debug.Print("Device Failed to Opened!") End If Return bRtn End Function

Rispondi quotando