bonjour a tous,

dans mon projet, j'envoie des data par usb sur un périphérique HID
j'arrive parfaitement à envoyer et à recevoir les données
j'utilise mchid.dll et mcHIDInterface.vb pour mon appli

seulement maintenant je voudrais synchroniser l'ensemble
ex :
envoie data1
attente ack
envoie data2
attente ack
etc...

mais helas, j'y arrive pas, j'ai tenté une boucle while avec l'utilisation d'un flag
mais lorsque je fais ça, je ne reçois plus aucun ack

une petite aide serait la bienvenue , merci

voila mon code:
pour l'envoie
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
 
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim testboucle As Integer
 
        ' RESET
        Commande_PC = Asc("R")
        BufferOut(0) = 0
        BufferOut(1) = Asc("R")
        BufferOut(2) = Asc("E")
        BufferOut(3) = Asc("S")
        BufferOut(4) = Asc("E")
        BufferOut(5) = Asc("T")
        BufferOut(6) = Asc(" ")
        hidWriteEx(VendorID, ProductID, BufferOut(0)) ' envoie la commande RESET au target
 
        While (reset_flag = 0)
        'attente que le reset se fasse ...
        End While
 
        ' FLASH
        BufferOut(0) = 0
        BufferOut(1) = Asc("F")
        BufferOut(2) = Asc("L")
        BufferOut(3) = Asc("A")
        BufferOut(4) = Asc("S")
        BufferOut(5) = Asc("H")
        BufferOut(6) = Asc(" ")
        hidWriteEx(VendorID, ProductID, BufferOut(0)) ' envoie la commande FLASH au target
 
...
 
  End Sub
et pour la reception
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
 
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...
            If Commande_PC = Asc("R") Then
                    reset_flag = 1
                   ...
            End If
        End If
    End Sub