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 :

Progress bar avec l'envoi des données sur le port série


Sujet :

C#

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut Progress bar avec l'envoi des données sur le port série
    bonjour,
    je voudrais mettre en oeuvre une barre de progression avec l'envoie des données sur le port série, j'ai écris ce bout de code mais il me renvoi une erreur.
    voila le 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
    43
    44
    45
    46
    47
    48
     
    private void button_envoyer_Click(object sender, EventArgs e)
            {
                StatusLabel1.Text = "Appuyez sur 'F6' de la commande numérique puis patientez...";
               // backgroundWorker1.RunWorkerAsync();// executer le Background worker doWork()
                progressBar2.Visible = true;
                progressBar2.Minimum = 1;
                progressBar2.Maximum = bBufferBytes.Length;
                progressBar2.Value = 1;
                progressBar2.Step = 1;
     
                StreamReader sr = new StreamReader(openFileDialog1.OpenFile(), Encoding.Default); 
     
                try
                {
                    string data = sr.ReadLine();
     
                    while (data != null)
                    {
                        bBufferBytes = System.Text.Encoding.ASCII.GetBytes(data); //Place le contenu dans un buffer d'octets (ASCII: 1 char = 1 octet) (UNICODE: 1 Char = 2 octets)
                        serialPort1.Write(bBufferBytes, 0, bBufferBytes.Length); // Ecrit le buffer complet sur le SerialPort
     
                        data = sr.ReadLine();
     
                      // StatusLabel1.Text = "Transfert en cours...";
     
                    }
                    for (int x = 1; x <= bBufferBytes.Length; x++)
                     {
                         // Copy the file and increment the ProgressBar if successful.
     
                         if (serialPort1.Write((bBufferBytes[x - 1]) == true))
                        {
                             // Perform the increment on the ProgressBar.
                             progressBar2.PerformStep();
                         }
                     }
     
                }
     
                finally
                {
                    if (sr != null)
                        sr.Close();
                    StatusLabel1.Text = "Transfert Fini ";
                }
     
            }


    Nom : erreur.PNG
Affichages : 217
Taille : 11,9 Ko

    comment on peut remédie à ça ?????

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    l'erreur est toute indiquée : tu ne peux pas comparer directement un byte et un bool.

    NB : il y a un bouton "modifier" en-dessous de ton message qui, comme son nom l'indique, permet de le modifier et donc de ne pas reposter 3x la même question.
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    bonjour,
    dsl pour la répétition du message je l'ai pas fait exprès.
    comment convertir ça ???

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Si c'est comme en C (càd 0 correspond à false et une autre valeur à true) alors remplace "== true" par "!= 0".

    Mais il y a plusieurs choses à dire sur cette partie du code :
    - veux-tu vraiment écrire "true" ou "false" (textuellement) dans ton serialPort1, car c'est ce qu'il va se passer,
    - la fonction StreamWriter.Write(object) ne renvoie rien, alors mettre un if dessus n'a pas trop de sens.
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    salut,
    le code est en C#.
    cette partie du code permet: on cliquant sur le bouton envoyer , il va envoyer des données (que j'ai télécharger sur mon pc) que je stock dans le byte[] bBufferBytes; (buffer a envoyer) sur le port série. donc la je veux faire une synchronisation entre l'envoie des données et la progressBar.

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    Nom : cg.PNG
Affichages : 193
Taille : 2,1 Ko

    donc avec le bouton charger: je charge un fichier de mon pc et j'affiche les données sur la textBox et je les stock aussi dans un buffer( bBufferBytes.
    le bouton envoyer : j'envoie c'est données sur le port série.

    => envoyer les données sur port série et incrémenter le ProgressBar en cas de succès

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    parenthèse mal positionnée...

    et il me semble que la fonction Write est de type void, donc, elle ne va pas renvoyer grand chose )
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  8. #8
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    la j'arrive à envoyer les données sur le port, je veux juste suivre le transfert des données avec progressBar.

  9. #9
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    ajoute un

    sinon, l'ihm ne sera pas rafraîchie !
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  10. #10
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     public Form1()
            {
                InitializeComponent();
                this.Refresh();
    j'ai met ça tout ou début

  11. #11
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    Je crois que j'ai dit une bétise...

    le performStep() fait la mise à jour de l'IHM sans avoir besoin du Application.DoEvents();
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  12. #12
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    bonjour,
    quelqu'un aurait il une idée pour faire lancer l'avancement avec la progressBar lorsque je click sur le buttons envoyer (qui permet d'envoyé les données via le port série), je veux que la progressBar arrive au pourcentage de 100% et se ferme.
    comment appeler la progressBar en parallèle avec la fonction d'envoi?

Discussions similaires

  1. [Débutant] envoi des données via le port série
    Par tintine dans le forum C#
    Réponses: 4
    Dernier message: 17/04/2015, 09h12
  2. Envoyer des données sur le port série
    Par jbidou88 dans le forum Flash
    Réponses: 3
    Dernier message: 18/09/2006, 11h33
  3. [javax.comm] Envoyer des données sur le Port série
    Par deuspi dans le forum Applets
    Réponses: 2
    Dernier message: 29/08/2006, 09h40

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