Serial.Read c#
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Serial.Read c#



  1. #1
    invitedc6b9908

    Serial.Read c#


    ------

    Bonjour,

    Tout d'abord je me présente,Herve j'ai 14 ans je débute sous visual c# pour un projet mais j'ai déjà de bonnes bases en arduino.
    Mon problème est de faire communiquer un arduino uno avec une app c#.

    Mon problème est le suivant dans le sens app --> arduino tout va bien mais dans l'autre sens impossible de recevoir quoi que ce soit.
    Voici mon code il n'est je pense pas très optimiser mais ayant commencé il y a trois jours merci d'être indulgent.

    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO.Ports;
    
    namespace WindowsFormsApplication2
    {
        public partial class Form1 : Form
        {
            public string ca1;
            public int c1;
            private SerialPort myport;
            public Form1()
    
            {
    
                InitializeComponent();
                init();
            }
    
    
    
            private void init()
            {
                try
                {
    
                    myport = new SerialPort();
                    myport.BaudRate = 9600;
                    myport.PortName = "COM" + numericUpDown1.Value;
    
                    myport.Parity = Parity.None;
                    myport.ReadTimeout = 10;
                    myport.StopBits = StopBits.One;
                }
                catch (Exception)
                {
                    MessageBox.Show("Error!!");
                }
    
            }
    
            private void Off_btn_Click(object sender, EventArgs e)
            {
                try
                { //myport.WriteLine("F")
                
            }
                catch (Exception)
                {
                    MessageBox.Show("Aucun gestionnaire de sac n'est connecté sur ce port");
                }
    
            }
            private void On_btn_click(object sender, EventArgs e)
            {
                string message = myport.ReadLine();
                sac101.Text = message;
    
            }
    
            private void Cobtn(object sender, EventArgs e)
            {
                try
    
                {
    
                    myport.PortName = "COM" + numericUpDown1.Value;
                    myport.Open();
                    MessageBox.Show("Vous etes desormé connecté au gestionnaire de sac");
                }
                catch (Exception)
                {
                    MessageBox.Show("Aucun gestionnaire de sac n'est connecté sur se port");
                }
    
    
    
            }
    
    
    
    
    
    
            private void checkBox1_CheckedChanged(object sender, EventArgs e)
            {
                if (c1 == 1)
                {
    
                    myport.WriteLine("a");
                    c1 = 0;
                }
                else
                {
                    myport.WriteLine("B");
                    c1 = 1;
                }
            }
    
            private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
               sac101.Text = "bonjour";
            }
    
           
      
        }
    }
    Merci d'avance.

    -----

  2. #2
    invite0bbe92c0

    Re : Serial.Read c#

    Bonjour

    Le problème est que ton évenement de réception n'est pas "cablé".
    Ou plutôt il est (peut être) cablé sur une instance de controle SerialPort qui n'est pas celui qu' instancie ton programme.

    Dans ton init essaye d'ajouter:

    Code:
    serial1 += serialPort1_DataReceived;

  3. #3
    invitedc6b9908

    Re : Serial.Read c#

    Bonjour,
    Merci beaucoup pour votre aide je n'ai pas vraiment eu le temps de me pencher sérieusement sur cette solution mais il y a a toujours un pb
    Lorsque je rentre directement ce ci en faisant un simple copier collé
    Code:
      serial1 += serialPort1_DataReceived;
    Erreur CS0103 Le nom 'serial1' n'existe pas dans le contexte actuel

    j'ai don tenté de modifier le code avec
    Code:
                    
    serialPort1 += serialPort1_DataReceived; 
    ou
    myport+= serialPort1_DataReceived;
    Mais dans les deux cas il m'affiche ce message:
    Impossible d'appliquer l'opérateur '+=' aux opérandes de type 'SerialPort' et 'groupe de méthodes'

    Seriez vous m'expliquer la raison de cette erreur merci d'avance.

  4. #4
    invite0bbe92c0

    Re : Serial.Read c#

    Bonsoir

    Citation Envoyé par Tektocraft Voir le message
    Merci beaucoup pour votre aide je n'ai pas vraiment eu le temps de me pencher sérieusement sur cette solution mais il y a a toujours un pb
    Lorsque je rentre directement ce ci en faisant un simple copier collé
    Désolé, j'ai tappé de mémoire (sans avoir l'IDE sous la main) et trop vite.
    c'est
    Code:
    myPort.DataReceived += serialPort1_DataReceived;
    Cette syntaxe signifie que tu "abonnes" la méthode serialPort1_DataReceived à l'événement DataReceived exposé par ton instance de SerialPort (myport ici).
    Tu trouveras ici la liste des évenements que "lève" l'object SerialPort : https://msdn.microsoft.com/en-us/lib...vs.100%29.aspx

  5. A voir en vidéo sur Futura
  6. #5
    invitedc6b9908

    Re : Serial.Read c#

    Merci beaucoup pour votre aide qui ma était très utile apres trois jour de recherche sans rien trouver sur les forum déja existant et merci pour l'explication suplémentaire.

  7. #6
    invitedc6b9908

    Re : Serial.Read c#

    au passage si qq sais pk l'orsque qu'un message est recus il m'affiche read timed out exception.
    Merci d'avance

  8. #7
    invitedc6b9908

    Re : Serial.Read c#

    Citation Envoyé par Tektocraft Voir le message
    au passage si qq sais pk l'orsque qu'un message est recus il m'affiche read timed out exception.
    Merci d'avance
    Solution trouver il suffisait de remplacer readline par readexisting

Discussions similaires

  1. Read et Fortran
    Par invite9f90c9cc dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 18/07/2012, 14h15
  2. The destination is read-only
    Par invite0bde6d7c dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 24/05/2012, 17h23
  3. communication hyperterminale avec serial usb cable + serial cable entre ordis
    Par inviteac751535 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 1
    Dernier message: 25/11/2010, 17h53