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 :

récéption de texte ASCII bizarre avec serialport


Sujet :

VB.NET

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut récéption de texte ASCII bizarre avec serialport
    Bonjour,

    voila j'ai un programme qui récupère dans une textbox les données qui transitent sur un port série, voici mon code :
    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
    Public Class Form1
        Dim inputData As String = ""
     
        Public Event DataReceived As IO.Ports.SerialDataReceivedEventHandler
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'les valeurs de quelques proprietes
            SerialPort1.PortName = "COM1"
            SerialPort1.BaudRate = 9600
            SerialPort1.Parity = IO.Ports.Parity.None
            SerialPort1.DataBits = 8
            SerialPort1.StopBits = IO.Ports.StopBits.One
            SerialPort1.Handshake = IO.Ports.Handshake.None
            SerialPort1.RtsEnable = True
     
            ' ouvir le port serie
            SerialPort1.Open()
     
        End Sub
     
        ' recevoir des donnees de port serie
        Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, _
                          ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _
                          Handles SerialPort1.DataReceived
            inputData = SerialPort1.ReadExisting 'or SerialPort1.ReadLine
            Me.Invoke(New EventHandler(AddressOf DoUpdate))
        End Sub
     
        'afficher les donnees recues dans l’interface utilisateur
        Public Sub DoUpdate()
            TextBox1.Text = TextBox1.Text & inputData
        End Sub
     
        Private Sub Form1_FormClosed(ByVal sender As System.Object, _
                       ByVal e As System.Windows.Forms.FormClosedEventArgs) _
                       Handles MyBase.FormClosed
     
            ' fermer le port serie
            SerialPort1.Close()
        End Sub
     
    End Class
    Le soucis réside dans le fait que les données que j'obtiens sont totalement désordonné et incompréhensible, voici ce que je lis :

    U>5>79700>9MOYuOS>y>METVRe>eN>ouUVRe>LE<>6->>-?=>y>9>:6<
    ??s5INWeRVeNVION<NUMeRO?;?99>58797????}~enynv>: reRVRyog>NUsIE
    ?sommuneKNUVy8KNUVyNge??Oyvure>: INONfyWION>fE<LOsyU^??yfresse:>7>ZUu?ve>Ny>XqI^??soosgoonees :0>>?>>6??77>>>248>66>??Senseignemenvs>{om~nemenvyires>;??>>>>>8 8>sOU^USe>feS>FLUIfeS>efgusVUeE??MOYuNS>wu>Ny]yNGE8yNeZWeS>? >>>>?>>???>VVU<>>>NyYfI?????MOYeNS8fe>KNUWyNge?yLERVeS>;?????>>?<<8>>>Vf?>>>>KNUVD <>??KNUVynge>
    <>>eNgIn[?:>Vf> <>>KNUVv??>??VeRMINe???
    je ne comprend pas pourquoi ? une piste ou un moyen de transcrire les données en ASCII ???

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 291
    Points : 390
    Points
    390
    Par défaut
    Bonjour,

    En français

    En Anglais c'est un peu mieux car on lit:

    Reads all immediately available bytes, based on the encoding, in both the stream and the input buffer of the SerialPort object.
    Donc il faut déjà vérifier si l'encodage des caractères est bon en regardant la propriété encoding de l'objet serialport.

    Il est peut-être préférable d'utiliser des propriétés comme BytesToRead pour lire le tampon de réception.

  3. #3
    Membre averti Avatar de _PascalC_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 220
    Points : 428
    Points
    428
    Par défaut
    Salut, es-tu sûr que le BaudRate doit être à 9600 ? Ca peut te ressortir ce genre de données quand la vitesse n'est pas la bonne.

    Pascal

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/03/2010, 12h50
  2. [C# 2005] Reception texte avec SerialPort
    Par FredericB dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/06/2006, 09h27
  3. [C#] Truc bizarre avec DataSet
    Par bendj dans le forum ASP.NET
    Réponses: 15
    Dernier message: 13/07/2005, 19h51
  4. Texte en transparence avec TextOut
    Par TigreRouge dans le forum MFC
    Réponses: 2
    Dernier message: 06/06/2005, 22h57
  5. problèmes bizarres avec jdbc
    Par jaimepasteevy dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 12/12/2003, 12h00

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