bonjour à tous,

je ne sais pas si j'écris dans le bon forum, donc mes excuses si ça n'est pas le cas...

pour mon application personnel, j'ai besoin d'écrire et lire dans 2 interface HID (fait maison à base de microcontroleur), j'utilise donc la DLL fourni par microchip (mchid.dll)

la détection des 2 interfaces ainsi que l'écriture via le port USB fonctionnent très bien.

mon seul soucis, c'est que je n'arrive pas à différencier l'arrivée de donnée en fonction de l'interface qui m'interresse

voila le code que j'ai modifié pour tenter de lire les données

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
   Public Sub OnRead(ByVal pHandle As Integer)
        '*****************************************************************
        ' on read event...
        '*****************************************************************
        ' read the data (don't forget, pass the whole array)...
        'If hidRead(pHandle, BufferIn(0)) Then
        ' ** YOUR CODE HERE **
        ' first byte is the report ID, e.g. BufferIn(0)
        ' the other bytes are the data from the microcontroller...
        'End If
 
        If hidReadEx(VendorID_dev1, ProductID_dev1, BufferIn(0)) Then
            TextBox1.Text = BufferIn(1)
        End If
 
        If hidReadEx(VendorID_dev2, ProductID_dev2, BufferIn(0)) Then
            TextBox2.Text = BufferIn(1)
        End If
 
        BufferIn(1) = 0
    End Sub
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        BufferOut(0) = 0
        BufferOut(1) = &HAA
 
        hidWriteEx(VendorID_dev1, ProductID_dev1, BufferOut(0))   ' envoie les data au target
    End Sub
 
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        BufferOut(0) = 0
        BufferOut(1) = &HAA
 
        hidWriteEx(VendorID_dev2, ProductID_dev2, BufferOut(0))   ' envoie les data au target
 
    End Sub
j'ai également mis les fonctions d'écriture, ceux-ci fonctionnant très bien

mes interfaces sont differenciés par leur PID , le VID étant le meme
lorsque l'un d'elle reçoit $AA, elle incrémente un compteur interne (de 0 à 255)
et renvoie cette valeur au PC

l'incrémentation de chaque interface fonctionne très bien, mais lorsque le PC reçoit celle-ci, il ne differencie pas les 2 interfaces et donc affiche dans les 2 textbox la valeur reçu

ex : si je clique sur Button1 et que le compteur de l'interface1 renvoie 32, textbox1 et textbox2 prennent la valeur 32
si je clique sur Button2 et que le compteur de l'interface2 renvoie 128, textbox1 et textbox2 prennent la valeur 128
etc...