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 exception C#


Sujet :

C#

  1. #21
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    @Bluedeep
    Ce n'est pas le constructeur, mais le nom de l'une des méthode que comprend la classe.

    D'où la confusion de nom!

  2. #22
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    Le programme ce lance ! mais il y a des confusions avec les changements que l'ont a fait je vais essayer de voir ça

  3. #23
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2010
    Messages : 62
    Par défaut
    Si vous ne démarrez pas le thread, avez vous un message d'erreur ?
    Vous devriez pouvoir utiliser votre bouton 1 pour connecter normalement.

    Même en ayant le port connecté en fait, 'Lire' ne va pas faire grand chose à part une nouvelle erreur si le thread essaye de changer le valeur d'un label.

    Le code vous à été fourni et vous devez faire afficher l'état des LED sur un écran ?
    Précisez le code fourni et celui que vous avez ajouté ainsi que le but, cela permettra de voir plus clair.

  4. #24
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    Voilà ce que j'ai :

    Je me connecte au port COM9 ou ce situ ma µChameleon



    Je clique sur le Bouton1...



    Et voilà l'erreur :


  5. #25
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    Citation Envoyé par BB-69 Voir le message
    Si vous ne démarrez pas le thread, avez vous un message d'erreur ?
    Vous devriez pouvoir utiliser votre bouton 1 pour connecter normalement.

    Même en ayant le port connecté en fait, 'Lire' ne va pas faire grand chose à part une nouvelle erreur si le thread essaye de changer le valeur d'un label.

    Le code vous à été fourni et vous devez faire afficher l'état des LED sur un écran ?
    Précisez le code fourni et celui que vous avez ajouté ainsi que le but, cela permettra de voir plus clair.
    Une partie du code a été fournis par le professeur pour un projet antérieur j'ai donc récupéré celui-ci affin de garder les fonctions relier à la µChameleon qui me permet de lire les entrées des Pins, le but de cette partie du projet et de géré 8 capteurs indépendants ( tout ou rien ).

    Ici je voudrais voir les états des capteurs " en live " pour trouver un éventuelle mal fonctionnement du système : voir tout simplement quels capteurs sont actif ou non.

    Les parties de code que j'ai moi même crée et/ou changer sont : la création du thread ainsi que sa methode Lire() , la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public int LireEntreeTOR(int NumeroPin)
    et j'ai ensuite changer le tableau suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Pin[] Bornier = new Pin[100];
    avant Pin étais à 18 au lieu de 100 puis quelque référence concernant ComUSB.

  6. #26
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2010
    Messages : 62
    Par défaut
    Revenez sur votre code d'origine en désactivant le thread déjà, les modifications faites sur une partie du code que le programme n'atteignait jamais pose surement problème.

  7. #27
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    Alors, j'ai repris le code à part j'ai réalisé quelque modifications :
    Serie n'avais rien a faire dans le code, erreur de ma part Serie = Com en faite.
    Maintenant quand je lance l'application ( sans le thread ) ça tourne je peut donc me connecter au port COM9 et vérifier si la carte µchameleon répond grâce a la led.
    mais une fois le thread en place la même erreur surgit
    Le port est fermé
    ça dois donc venir de mon thread, je vais éplucher ça

  8. #28
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    peut être du au faite que j'ai mis la méthode du thread : en public et non en static ?
    mais quand je la passe en static il ne reconnait pas dans l'instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     this.label9.Text = "OK";

  9. #29
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2010
    Messages : 62
    Par défaut
    Pour ce qui est de votre code dans un premier temps:

    - Un petit tour sur les tuto. à propos des threads en particulier sur les methodes pour modifier un label (ou autre) dans la form.
    - Votre fonction Lire doit tester à intervale régulière les led ? il va falloir revoir la conception car elle le fait pas.
    - Dans 'LireEntreeTOR' vous n'utilisez pas le port ouvert fait par votre bouton de connexion, ce qui ne pourra donc pas fonctionner.

    Etes vous certains de l'utilité de passer le test dans un thread séparé ?

  10. #30
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    ma fonction Lire dois afficher "OK" dans le label "Pas de Capteur" quand il y a présence d'un capteur (TOR, comme un interrupteur en faite )
    je vais me renseigner pour modifier un label car j'ai un doute aussi

  11. #31
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2010
    Messages : 62
    Par défaut
    Citation Envoyé par Amiral62 Voir le message
    peut être du au faite que j'ai mis la méthode du thread : en public et non en static ?
    Non, cela ne vient pas de la déclaration de Lire qui peut rester private dans votre cas.

    Je vous conseil de lire un cours sur le fonctionnement de public, private, static, etc . . .
    Un petit coup d'oeil au passage sur 'this'.
    Suffisamment d'information sur le site pour cela.

  12. #32
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par bugg7111 Voir le message
    @Bluedeep
    Ce n'est pas le constructeur, mais le nom de l'une des méthode que comprend la classe.
    Pas du tout. Sa classe comporte deux constructeurs et aucune méthode avec le nom de la classe(d'ailleurs C# ne permet pas d'avoir une méthode qui a le nom de la classe, que ce soit une méthode d'instance ou statique).

  13. #33
    Membre confirmé
    Homme Profil pro
    Développeur UNIFACE, C, C++, C#, Java
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur UNIFACE, C, C++, C#, Java
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Par défaut
    Bonjour,
    ou conseillez vous de mettre mon thread ?

  14. #34
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Pas du tout. Sa classe comporte deux constructeurs et aucune méthode avec le nom de la classe(d'ailleurs C# ne permet pas d'avoir une méthode qui a le nom de la classe, que ce soit une méthode d'instance ou statique).
    D'accord! Comme quoi on en apprend tout les jours

  15. #35
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2010
    Messages : 62
    Par défaut
    Le thread est en fait le dernier de vos soucis, avant de vouloir l'utiliser il va falloir revoir vos bases.
    Vous ne semblez pas comprendre la différence entre les variables locales et globales. Avant de poursuivre je vous invite à reprendre vos cours sur le c# pour comprendre ce qui ne va pas et revenir avec quelques correction sur votre code.
    Quelques annotations pour piste.
    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
    public partial class Form1 : Form
        {
            // Variable Globale
            private CSerie Serie;
            private bool EtatConnexion;
            private CChameleon CarteChameleon;
     
            public Form1()
            {
                InitializeComponent();
                CSerie Serie = new CSerie(); // Inutile de créer une variable locale ici que vous n'utilisez pas.
                CChameleon CarteChameleon = new CChameleon(); // Idem Inutile de créer une variable locale ici que vous n'utilisez pas.
                Thread th = new Thread(Lire); // Toujours pas certains de l'intéret de passer par un thread, mais bon c'est juste un avis. A voir une fois le reste terminé.
                th.Start();
            }
     
    public void Lire()
           {
                int i = 1;
                int retour;
                int GestionCapteurs = 1;
                CChameleon CarteChameleon = new CChameleon(); // Pourquoi créer encore une variable locale ? Sans l'initialiser correctement pour une connexion en plus.
     
     
     
                retour = CarteChameleon.LireEntreeTOR(i); // Utilisation de la variable locale !?  
     
                if (retour == 1)
                {
                    switch (GestionCapteurs)
                    {
                        case 1:
                            i++; // Pourquoi incrémenter i que vous n'utilisez jamais ?
                            this.label9.Text = "OK";
                            break;
                        case 2:
                            i++;
                            this.label10.Text = "OK";
                            break;
                        case 3:
                            i++;
                            this.label11.Text = "OK";
                            break;
                        case 4:
                            i++;
                            this.label12.Text = "OK";
                            break;
                        case 5:
                            i++;
                            this.label13.Text = "OK";
                            break;
                        case 6:
                            i++;
                            this.label14.Text = "OK";
                            break;
                        case 7:
                            i++;
                            this.label15.Text = "OK";
                            break;
                        case 8:
                            i++;
                            this.label16.Text = "OK";
                            break;
     
                    }
                }
            }
    }
    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
    class CChameleon
        {
            CSerie ComUSB;
            Pin[] Bornier = new Pin[100];
     
            struct Pin{
                public int Config;
                public int Valeur;
            };
     
            public enum ConfigPin
            {  
               Entree = 0, 
               Sortie = 1           
            }  
     
            public CChameleon()
            {
                ComUSB = null;
            }
     
            public CChameleon(CSerie Ref)
            {
                ComUSB = Ref;
                this.InitialisationDefaut();
            }
     
    public int LireEntreeTOR(int NumeroPin)
            {
                string Trame;
                string TrameReponse;
                int Etat = -1;
     
                CSerie ComUSB = new CSerie(); // A nouveau, pourquoi créer encore une variable locale ? Sans l'initialiser correctement pour une connexion en plus.
     
                if (this.Bornier[NumeroPin - 1].Config == 0) /* Si configurer en entree */
                {  
                    Trame = "pin " + NumeroPin + " state";
                    ComUSB.Envoi_Trame(Trame); // Utilisation de la variable locale !?
                    TrameReponse = ComUSB.Recevoir_Trame(); // Utilisation de la variable locale !?
                    Etat = this.DecoderEtatEntreeTOR(TrameReponse);
                    this.Bornier[NumeroPin - 1].Valeur = Etat;
                }
                return Etat;
             }
    }

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Comment résoudre ce probléme : Exception d'E/S: Connection refused ?
    Par adil_vpb dans le forum Connexions aux bases de données
    Réponses: 17
    Dernier message: 19/11/2007, 16h19
  2. [System.IO.Ports] Problème Exception
    Par goddet dans le forum C#
    Réponses: 6
    Dernier message: 11/09/2007, 10h23
  3. [C#] Problème exception mscorlib.dll
    Par moulefrite dans le forum Windows Forms
    Réponses: 2
    Dernier message: 31/07/2007, 15h21
  4. problème exception java.io.IOException
    Par boulette85 dans le forum Langage
    Réponses: 4
    Dernier message: 01/05/2007, 11h30
  5. Problème Exception EOFException
    Par jason69 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 04/09/2006, 14h47

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