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 6 et antérieur Discussion :

aide utlisation fonction


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut aide utlisation fonction
    Bonjour a tous,

    Voici un bout de mon code. J'aimerai savoir si l'utilisation de ma fonction "TabGoTo" est correct, car quand je vais en mode debug et que je regarde ce que j'ecris dans le buffer, je m'aperçois que j'ai bien la commande voulu qui me permet de déplacer mon moteur, mais sa ne donne aucune action au niveau hardware sur les moteurs. Ai-je oublié quelque chose dans l'appelle de la fonction ou y-a-t-il quelque chose d'incorrect, que je ne vois pas? Si vous avez besoin de plus d'information demander. Merci à tous.
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    'Code
    ....
    Private Sub CmdMain_Click(Index As Integer)
    Dim Test As Long
     
      Select Case Index
      ' Go to the absolute position
        Case BtnAbsPos
          Test = TabGoto(1000, 1000)
     
      ' Close and reset the handle, btnClose = 6
        Case BtnClose
          CloseHandle
     
        Case Else
          Exit Sub
      End Select
     
    End Sub
     
    Function TabGoto(ByVal X As Long, ByVal Y As Long) As Long
    'X move
        lngBytesToWrite = Len("X" & X) + 1
        strWriteBuffer = "X" & (X) & vbCrLf
        WriteHandle
    ' Y move
        lngBytesToWrite = Len("Y" & Y) + 1
        strWriteBuffer = "Y" & (Y) & vbCrLf
        WriteHandle
      TabGoto = 0
      Exit Function
    End Function
     
    'Procedure to close the handle and "reset"
    Private Sub CloseHandle()
      Status = FT_Close(lngHandle)
      If Status <> FT_OK Then
        Exit Sub
      End If
     
      Status = FT_ResetDevice(lngHandle)
      If Status <> FT_OK Then
        Exit Sub
      End If
    End Sub
     
    'Procedure to write character in writting buffer, srtWriteBuffer in string
    Private Sub WriteHandle()
      lngBytesWritten = 0
      Status = FT_Write(lngHandle, strWriteBuffer, lngBytesToWrite, lngBytesWriten)
        If Status <> FT_OK Then
          Exit Sub
        End If
     
    End Sub
     
    'Procedure to read character put in the buffer reading
    Private Sub ReadHandle()
      Sleep (250)       ' Use to wait the buffer reading is full before go to read
     
      'Read the buffer from driver motors
      lpszBuffer = ""
      Status = FT_GetQueueStatus(lngHandle, amountInRxQueue)
      If Status <> FT_OK Then
        read = MsgBox(Error, ok & vbOKOnly, "False")
      Else
        Status = FT_Read(lngHandle, lpszBuffer, amountInRxQueue, lngBytesReturned)
        If Status <> FT_OK Then
          Exit Sub
        End If
      End If
     
       Disp1.Text = Disp1.Text & "rcvd < " & lpszBuffer & ""
     
      Sleep (250)
     
    End Sub

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    C'est quoi l'problème? Une erreur à l'exécution? Un résultat inattendu? ...?

    En passant, j'ai ajouté les balises CODE. C'est le bouton . La prochaine fois, s'il te plaît, penses-y.

    [Edit] bbil a été plus rapide que moi pour l'ajout des balises code. Salut bbil!

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par zazaraignée
    C'est quoi l'problème? Une erreur à l'exécution? Un résultat inattendu? ...?

    En passant, j'ai ajouté les balises CODE. C'est le bouton . La prochaine fois, s'il te plaît, penses-y.

    C'est un résultat inattendue. Au fait, quand j'envoie la commande le moteur n'a aucune réaction, lors de l'écriture. Est-ce un problème de passage des arguments, de timers, ??? je ne comprend pas.

    PS: dsl pour les balises.

  4. #4
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Un moteur ?

    Bon je n'ai pas tout compris l'objet du code ni de quel moteur il s'agit, mais quand il y a un Sleep, tout arrête! Alors, à mon avis, tu devrais programmer ton délai avec un Timer, et attendre ton entrée de données hardware avec un DoEvents. Mais c'est juste une idée. Je ne crois pas pouvoir tester, puisque je n'ai pas tout compris et que je n'ai probablement pas le hardware en question à ma disposition.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par zazaraignée
    Un moteur ?

    Bon je n'ai pas tout compris l'objet du code ni de quel moteur il s'agit, mais quand il y a un Sleep, tout arrête! Alors, à mon avis, tu devrais programmer ton délai avec un Timer, et attendre ton entrée de données hardware avec un DoEvents. Mais c'est juste une idée. Je ne crois pas pouvoir tester, puisque je n'ai pas tout compris et que je n'ai probablement pas le hardware en question à ma disposition.

    ok merci, je vais essayer sa.
    Pour info c'est un moteur PAS à PAS. avec un driver permettant de gerer les moteurs.

    je vais tester et essayer de me debrouiller, pas simple tous sa:-)

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour

    lngBytesToWrite = Len("X" & X) + 1
    strWriteBuffer = "X" & (X) & vbCrLf
    attention vbCrLf donne 2 caractères (teste avec des msgbox)
    lngBytesToWrite = 6
    len ( strWriteBuffer ) = 7

    essaye,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strWriteBuffer = "X" & (X) & vbCrLf
    lngBytesToWrite = len(strWriteBuffer )
    tu auras la bonne taille (idem pour Y)
    Je ne sais pas si cela résoudra ton problème, mais il me semble que si tu tronques l'envoie ça peut poser des problèmes.

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

Discussions similaires

  1. aide utilisation fonction MM_jumpMenu
    Par calitom dans le forum Langage
    Réponses: 5
    Dernier message: 20/07/2006, 16h53
  2. Besoin d'aide pour fonctions OpenSSL..... HELP !!!
    Par aide64 dans le forum Langage
    Réponses: 7
    Dernier message: 12/05/2006, 17h46
  3. besoin d'aide sur fonction curseur et procedure
    Par abdel54 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/11/2005, 18h05
  4. [Débutant] Aide utilisation fonctions :(
    Par trakiss dans le forum Débuter
    Réponses: 10
    Dernier message: 27/08/2004, 15h59
  5. Debutant en C cherche aide pour fonctions!!!!
    Par benji17c dans le forum C
    Réponses: 5
    Dernier message: 30/09/2003, 12h47

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