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

C# Discussion :

Problème donnée sur SerialPort


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Problème donnée sur SerialPort
    Bonjour à tous.

    J'ai développé une petite application recevant les informations qu'un équipement envoie sur une RS232
    Pour faciliter le développement j'ai utilisé un soft qui permet de transférer le flux RS232 (sur un PC distant) vers mon PC de développement (RS232 sur PC local -> Ethernet -> Port COM Virtuel sur PC de développement),
    Cela fonctionne sans problème dans cette configuration. Les 2 ports ont la même configuration.

    Lorsque je mets mon soft sur mon PC distant (donc en lecture direct sur la RS), je n'est plus aucune donnée intelligible (que des ? et des caractères spéciaux).

    J'ai essayé de changer la façon de lire les informations reçus (Readexisting, readLine, read (char ;; read (byte,,,),) mais rien n'y fait;
    J'ai essayé de modifier l'encodage pour la transformation en string, mais idem jamais je n'ai des données en clair.

    Avez-vous déjà rencontré ce problème ?
    Avez-vous des idées de solution ?
    D'avance Merci

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2011
    Messages : 72
    Points : 107
    Points
    107
    Par défaut
    Bonjour,

    Lorsque je mets mon soft sur mon PC distant (donc en lecture direct sur la RS), je n'est plus aucune donnée intelligible (que des ? et des caractères spéciaux).
    Ça ressemble bien à un problème de mauvaise configuration du port (Bauds, Parité, Nbr Bits, bit de stop ...)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonjour

    J'y ai pensé, mais non.
    Avec un hyperterminal et la même config, cela fonctionne très bien ( je reçois mes données).

    J'ai vérifié à plusieurs reprises que c'était bien la même config.

    Pour essayer d'aller plus loin, j'ai fait un petit programme en C++ (sans dotnet) en utilisant toujours la même config, et la cela fonctionne !!

    Une idée ?

    Cordialement

    JF

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2011
    Messages : 72
    Points : 107
    Points
    107
    Par défaut
    Voici ce bout de code qui pourra peut-être t'aider :

    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
     
     
            port.DataReceived +=new SerialDataReceivedEventHandler(Port_DataReceived);
     
            private void Port_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
                // Si port Com fermé ne rien faire
                if (!port.IsOpen) return;
     
                // Obtient le nombre de byte en attente dans le buffer
                int bytes = port.BytesToRead;
     
                // création du buffer
                byte[] buffer = new byte[bytes];
     
                // Lire les datas stockés dans le buffer 
                port.Read(buffer, 0, bytes);
     
                for (int i = 0; i < buffer.Count(); i++)
                    data += Convert.ToChar(buffer[i]);
     
            }
    Cordialement.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/10/2011, 03h41
  2. Réponses: 8
    Dernier message: 11/10/2006, 17h28
  3. [ODBC] [DB2] Problème de connexion à une base de données sur un as400 via PHP sous Linux
    Par boo64 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 19/04/2006, 09h51
  4. problème d'accès aux données sur serveur par poste client
    Par rahan_dave dans le forum Requêtes
    Réponses: 1
    Dernier message: 25/02/2006, 09h13
  5. Réponses: 5
    Dernier message: 11/03/2004, 15h34

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