IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

synchronisation data HID


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 27
    Par défaut synchronisation data HID
    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

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 27
    Par défaut
    bon petite remonté d'info, ca peut servir à d'autre

    j'ai tenté ma chance avec différente boucle ... rien à faire, tant que je faisais une tâche, je savais pas en faire une autre

    tiens ça me dit un truc... à oui les threads
    étant débutant, j'ai cherché un petit moment à comprendre les threads
    mon code n'est pas beau à lire par des experts mais il marche

    si vous voyez une horreur d'écrire, ne crier pas

    déclaration du thread
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Dim th As New Thread(New ParameterizedThreadStart(AddressOf Envoie_Data))
    donc là, au click de bouton, on démarre le thread
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            th.Start()
     
     
        End Sub
    et la nouvelle méthode d'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
        Public Sub Envoie_Data()
            ' 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(" ")
            BufferOut(7) = &H0
            BufferOut(8) = &H3
            BufferOut(9) = &H0
            hidWriteEx(VendorID, ProductID, BufferOut(0)) ' envoie la commande RESET au target
     
            While (reset_flag = 0)
                'attente que le pic reponde au reset
            End While
     
            ...
    et donc maintenant mon thread attend la réponse avant de continuer

    seul bémol, je sais pas encore arreter le thread "proprement"
    au bout d'un moment, il est pas content

Discussions similaires

  1. synchronisation avec DATA INTEGRATOR de BO
    Par aigle dans le forum BODI
    Réponses: 1
    Dernier message: 31/03/2010, 16h34
  2. [Toad Data Modeler] Synchronisation avec la base
    Par fabko dans le forum Autres
    Réponses: 0
    Dernier message: 29/09/2008, 14h38
  3. Query data set
    Par Sandra dans le forum JBuilder
    Réponses: 3
    Dernier message: 20/01/2003, 10h08
  4. [Pointer]Treeview.Data
    Par rbag dans le forum Composants VCL
    Réponses: 7
    Dernier message: 31/08/2002, 01h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo