Partage
  • Partager sur Facebook
  • Partager sur Twitter

Petite problème de traduction VB6 to VB.NET

Port série

    19 avril 2011 à 11:29:46

    Citation : Nisnor

    Citation : HolyView

    Comment fais tu tes tests ?


    Il a parlé de port série virtuel un peu plus haut.

    Je ne sais pas si c'est pareil...Mais pour mes tests lors du développement de l'interface de programmation, j'utilisais une machine virtuelle VMWare avec un port série virtuel...Je n'ai jamais rencontré de problème d'octet arrivés dans le désordre. Peut-être ton émulateur de port de série est-il un peu bancal???



    La thèse de l'émulateur foireux est écartée puisque j'ai un programme type me permettant de vérifier les trames envoyées, si elles devaient arriver dans le désordre à cause de l'emulateur j'aurais ce problème avec le programme type aussi, mais non, donc c'est mon programme le souci ..

    Citation : HolyView

    Bon soyons sérieux ! tes octets seront envoyés dans cet ordre sur le port série !!!!
    Ca c'est fait.



    Apparemment, ce n'est pas le cas, mais d'où cela vient, je n'en sais rien ..
    On m'a parlé de propriétés comme .DiscardNull, cela peut être un problème d'ouverture du port série ?
    • Partager sur Facebook
    • Partager sur Twitter
      19 avril 2011 à 13:13:52

      peux-tu poster tout ton code se chargeant du port com ?
      • Partager sur Facebook
      • Partager sur Twitter
        19 avril 2011 à 14:15:21

        Le code du bouton de connexion :
        Private Sub btn_connecter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_connecter.Click
                If serialport.IsOpen = False Then
        
        
                    'first check to see if a product has been selected
                    If ProdFlag = 0 Then
                        MsgBox("Sélectionner un produit dans le menu Fichier.")
                        Exit Sub
                    End If
        
        
                    ' check to make sure a comm port number is entered
                    If txt_portnum.Text = "" Then
                        MsgBox("Entrez un numéro de port série.")
                        Exit Sub
                    End If
                    With serialport
                        .DiscardNull = False
                        .BaudRate = 115200
                        .Parity = IO.Ports.Parity.None
                        .DataBits = 8
                        .StopBits = IO.Ports.StopBits.One
                    End With
                    serialport.PortName = txt_portnum.Text
                    serialport.Open()
                    btn_connecter.Text = "Déconnecter"
                    gb_controle.Enabled = True
                    gb_modes.Enabled = True
                    btn_avance.Enabled = False
                    btn_recul.Enabled = False
                    btn_gauche.Enabled = False
                    btn_droite.Enabled = False
        
                Else
                    serialport.Close()
                    btn_connecter.Text = "Connecter"
                    gb_controle.Enabled = False
                    gb_modes.Enabled = False
                    gb_drive.Enabled = False
                    btn_avance.Enabled = False
                    btn_recul.Enabled = False
                    btn_gauche.Enabled = False
                    btn_droite.Enabled = False
                    btn_spot.Enabled = False
                    btn_clean.Enabled = False
                    btn_max.Enabled = False
        
                End If
            End Sub
        


        Celui de mon bouton pour avancer le robot :
        Private Sub btn_avance_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_avance.Click
                avancer()
            End Sub
        



        Et celui de ma fonction avancer() :
        Sub avancer()
                Dim Buffer() As Byte
                Buffer = New Byte() {137, 0, 255}
                serialport.Write(Buffer, 0, Buffer.Length)
            End Sub
        
        • Partager sur Facebook
        • Partager sur Twitter
          19 avril 2011 à 14:34:53

          pour info :

          Citation : MSDN

          Par défaut, SerialPort utilise ASCIIEncoding pour coder les caractères. ASCIIEncoding code tous les caractères supérieurs à 127 tels que (char)63 ou '?'. Pour prendre en charge d'autres caractères dans cette plage, affectez à Encoding la valeur UTF8Encoding, UTF32Encoding ou UnicodeEncoding.


          http://msdn.microsoft.com/fr-fr/librar [...] ownFilterText
          • Partager sur Facebook
          • Partager sur Twitter
            19 avril 2011 à 15:06:17

            Citation : HolyView

            pour info :

            Citation : MSDN

            Par défaut, SerialPort utilise ASCIIEncoding pour coder les caractères. ASCIIEncoding code tous les caractères supérieurs à 127 tels que (char)63 ou '?'. Pour prendre en charge d'autres caractères dans cette plage, affectez à Encoding la valeur UTF8Encoding, UTF32Encoding ou UnicodeEncoding.


            http://msdn.microsoft.com/fr-fr/librar [...] ownFilterText



            J'ai bien essayé ça, mais avec des encodages différents, il me met soit 30 zéros de trop à la fin de ma trame ( je ne sais pas si ça change grand chose mais bon ) ou il m'envoit carrément une trame qui n'a rien à voir .. Ne serait-il pas plus simple d'arranger le problème d'ordre plutôt que de changer d'encodage ?
            • Partager sur Facebook
            • Partager sur Twitter
              15 mai 2011 à 23:29:52

              Je me permet un "re-up" car je dois rendre mon programme mercredi et que je suis toujours bloqué sur ce problème .. :/
              • Partager sur Facebook
              • Partager sur Twitter

              Petite problème de traduction VB6 to VB.NET

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown