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
j'ai également mis les fonctions d'écriture, ceux-ci fonctionnant très bien
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
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...
Partager