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 :

the port is close


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 99
    Par défaut the port is close
    bonjour,

    Voici mon programme de lecture écriture rs232.


    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
     // Connection COM1
                private void button1_Click(object sender, EventArgs e)
                {
                    int BaudRates = Convert.ToInt32(comboBox1.Text);
                    int DataBits = Convert.ToInt32(comboBox2.Text);
                    SerialPort port = new SerialPort("COM1", BaudRates, Parity.None, DataBits, StopBits.One);
     
                   port.Open();
     
                    if (port.IsOpen == true)
                        pictureBox1.Image = Properties.Resources.led_green;
                    else
                        pictureBox1.Image = Properties.Resources.led_red;
                }
     
     
                // Deconnection COM1
                private void button2_Click(object sender, EventArgs e)
                {
                    port.Close();
     
                    if (port.IsOpen == true)
                        pictureBox1.Image = Properties.Resources.led_green;
                    else
                        pictureBox1.Image = Properties.Resources.led_red;
                }
     
     
                // Lecture COM1
                private void button7_Click(object sender, EventArgs e)
                {
     
                    textBox1.Text = Convert.ToString(port.ReadChar());
                }
     
     
                // Ecriture COM1
                private void button9_Click(object sender, EventArgs e)
                {
                    string text = textBox2.Text;
                    port.Write(text);
                }
    Quand je veux lire ou écrire le programme me dit que le port est fermé pourtant j'ouvre bien le port?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SerialPort port = new SerialPort("COM1", BaudRates, Parity.None, DataBits, StopBits.One);
     
                   port.Open();

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Dans ta méthode button1_Click, tu déclares une variable locale port, donc tu travailles sur une variable locale et non sur le champ port de ta classe (qui est utilisé dans les autres méthodes). Change juste cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SerialPort port = new SerialPort("COM1", BaudRates, Parity.None, DataBits, StopBits.One);
    En ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    port = new SerialPort("COM1", BaudRates, Parity.None, DataBits, StopBits.One);

  3. #3
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 99
    Par défaut
    merci

    Par contre j'écris un mot pour envoyer, je relève TX j'ai rien dessus

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par cyriltec Voir le message
    Par contre j'écris un mot pour envoyer, je relève TX j'ai rien dessus
    Euh... jusqu'ici c'était juste une question C#, je pouvais t'aider... mais sur le fonctionnement du port série, j'y connais pas grand chose, désolé

  5. #5
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 99
    Par défaut
    Je vais me débrouiller je suis plus doué en électronique
    Merci

  6. #6
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 99
    Par défaut
    Pour le port "COM1" pas de problème en écriture, bloque en lecture mais je n'envoie aucune donnée dessus peu être a cause de ca.
    Par contre "COM2" :
    Access to the port"com2" is denied

    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO.Ports;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
     
     
    namespace WindowsFormsApplication5
    {
        public partial class Form1 : Form
        {
            private static SerialPort port = new SerialPort();
            private static SerialPort port2 = new SerialPort();
     
            public Form1()
            {
                InitializeComponent();
            }
     
                // Connection COM1
                private void button1_Click(object sender, EventArgs e)
                {
                    int BaudRates = Convert.ToInt32(comboBox1.Text);
                    int DataBits = Convert.ToInt32(comboBox2.Text);
                    port = new SerialPort("COM1", BaudRates, Parity.None, DataBits, StopBits.One);
     
                   port.Open();
     
                    if (port.IsOpen == true)
                        pictureBox1.Image = Properties.Resources.led_green;
                    else
                        pictureBox1.Image = Properties.Resources.led_red;
                }
     
     
                // Deconnection COM1
                private void button2_Click(object sender, EventArgs e)
                {
                    port.Close();
     
                    if (port.IsOpen == true)
                        pictureBox1.Image = Properties.Resources.led_green;
                    else
                        pictureBox1.Image = Properties.Resources.led_red;
                }
     
     
                // Lecture COM1
                private void button7_Click(object sender, EventArgs e)
                {
     
                    textBox1.Text = Convert.ToString(port.ReadChar());
                }
     
     
                // Ecriture COM1
                private void button9_Click(object sender, EventArgs e)
                {
                    string text = textBox2.Text;
                    port.Write(text);
                }
     
     
     
            //Connexion COM2
                private void button13_Click(object sender, EventArgs e)
                {
                    int BaudRates2 = Convert.ToInt32(comboBox8.Text);
                    int DataBits2 = Convert.ToInt32(comboBox7.Text);
                    port2 = new SerialPort("COM2", BaudRates2, Parity.None, DataBits2, StopBits.One);
     
                    port2.Open();
     
                    if (port2.IsOpen == true)
                        pictureBox1.Image = Properties.Resources.led_green;
                    else
                        pictureBox1.Image = Properties.Resources.led_red;
                }
     
     
            //Deconnexion COM2
                private void button14_Click(object sender, EventArgs e)
                {
                    port2.Close();
     
                    if (port2.IsOpen == true)
                        pictureBox1.Image = Properties.Resources.led_green;
                    else
                        pictureBox1.Image = Properties.Resources.led_red;
                }
     
     
            // Lecture COM2
                private void button12_Click(object sender, EventArgs e)
                {
                    textBox4.Text = Convert.ToString(port.ReadChar());
                }
     
     
            // Ecriture COM2
                private void button11_Click(object sender, EventArgs e)
                {
                    string text = textBox3.Text;
                    port.Write(text);
                }
     
     
            }
        }

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/02/2010, 22h41
  2. Operation is not allowed when the object is closed
    Par allexpert dans le forum Développement
    Réponses: 0
    Dernier message: 20/10/2009, 19h51
  3. Réponses: 2
    Dernier message: 24/02/2009, 10h19
  4. Réponses: 11
    Dernier message: 28/09/2008, 20h35
  5. Réponses: 8
    Dernier message: 21/11/2003, 18h38

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