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 :

Contrôle de gain automatique


Sujet :

C#

  1. #21
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    C'est parce que tu oublies de fermer la caméra quand tu quittes le formulaire. (dans le FormClosing par exemple).
    Le message est clair; les dernières lignes disent que la caméra est ouverte par un autre client

    Perso l'ouverture de la caméra je la met dans la callback de l'évent Shown du formulaire et dans un while.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    while(!camera.connexion())
    {
    var ret = MessageBox.Show("Echec de connexion à la caméra; voulez-vous réessayer ?", "Erreur", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
    if (ret == DialogResult.No)
    {
    this.Close();
    return;
    }
    }
    Qqe chose comme ça...

  2. #22
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 104
    Points : 30
    Points
    30
    Par défaut
    Merci pour ta réponse !

    Le problème c'est que j'ai mis "camera.Close();" et même quand je mets cette ligne dans FormClosing l'exception apparaît lorsque je souhaite sélectionner la caméra dans mon interface.

    Oui c'est exact, la caméra semble ouverte par un autre client, mais je ne vois pas lequel et comment faire pour éviter ça ou corriger ça (dans le cas où ça serait mon programme qui ouvre déjà la caméra ).

    J'ai essayé de mette l'ouverture de la caméra dans l'évènement Shown du formulaire comme tu me l'as indiqué dans ton message, mais le même message d'exception apparaît lorsque j'essaie d'ouvrir la caméra dans mon interface.
    Je n'ai pas pu mettre "camera.Open();" dans le while parce que le type ne peut pas être convertit en bool.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private void MainForm_Shown(object sender, EventArgs e)
            {
                camera.Open();
                {
                    var ret = MessageBox.Show("Echec de connexion à la caméra; voulez-vous réessayer ?", "Erreur", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                    if (ret == DialogResult.No)
                    {
                        this.Close();
                        return;
                    }
                }
            }
    Je te remercie encore pour ta réponse,

    Sebbur

  3. #23
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    Je pense qu'il faut débrancher et rebrancher ta caméra. C'est bien ton application qui l'a laissée bloquée.

    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
     
    while(true)
    {
     
    try
    {
    camera.Open();
    this.m_CameraOuverte = true;//Variable de classe de type bool indique si la caméra est ouverte; par défaut initialisé à false dans le constructeur de la classe
    break;
    }
    catch(Exception ex)
    {
    var ret = MessageBox.Show("Echec de connexion à la caméra : " + ex.Message + "\nVoulez-vous réessayer ?", "Erreur", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
    if (ret == DialogResult.No)
    {
    this.Close();
    return;
    }
    }
    }
    Enfin il faut savoir si tu souhaite ouvrir la caméra dès que le formulaire s'ouvre ou bien si tu veux que ce soit l'utilisateur qui sélectionne la caméra et l'ouvre. Tu ne placera pas le code ci-dessus au même endroit.

    Par contre il faut toujours fermer la caméra quand on quitte. Sauf si l'utilisateur à cliqué sur un bouton qui permet de le faire ?
    Donc dans le FormClosing :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if(this.m_CameraOuverte)
    {
     
    try
    {
    camera.Close();
    this.m_CameraOuverte = false;
    }
    catch(Exception ex)
    {
    MessageBox.Show("Echec de fermeture de la caméra : " + ex.Message, "Erreur", MessageBoxButtons.Ok, MessageBoxIcon.Error);
    }
    }

  4. #24
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 104
    Points : 30
    Points
    30
    Par défaut
    Salut,

    C'est bien ce que je pensais.
    Je souhaite que l'utilisateur puisse sélectionner et ouvrir lui-même la caméra, comme je le fais actuellement.

    Oui exact, lorsque l'utilisateur ferme l'interface, la caméra se ferme toute seule. Le code exemple de la caméra concernant le FormClosing est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    /* Closes the image provider when the window is closed. */
            private void MainForm_FormClosing(object sender, FormClosingEventArgs ev)
            {
                /* Stops the grabbing of images. */
                Stop();
                /* Close the image provider. */
                CloseTheImageProvider();
     
            }
    Je te remercie pour ta réponse,

    Sebbur

Discussions similaires

  1. Gain automatique en C#
    Par sebbur dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 17/06/2016, 08h47
  2. Réponses: 2
    Dernier message: 06/09/2014, 14h39
  3. Réponses: 2
    Dernier message: 22/12/2011, 18h19
  4. Contrôle préalable et automatique de l'activation des Macros Excel ?
    Par Capt_Nemo dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/09/2009, 18h47
  5. Réponses: 1
    Dernier message: 28/09/2005, 09h01

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