Simulation via hyperterminal

Artamonbya Messages postés 12 Date d'inscription mardi 7 mars 2017 Statut Membre Dernière intervention 25 avril 2017 - 13 mars 2017 à 16:33
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 25 avril 2017 à 16:32
Bonjour, je travail actuellement avec un module Gadgeteer FEZ Spider pour un projet de fin de BTS. Ma partie consiste à écrire un programme C# pour réceptionner une trame par liaison série puis l'afficher sur un LCD graphique.
Je dois donc tout d'abord utiliser hyperterminal pour tester mon programme de réception de données.

J'ai tout compris sauf que : je n'ai jamais utilisé hyperterminal et pour le programme je suis un peu largué....
Si vous pourriez me donner un petit coup de pouce pour me dirigez car mon projet prend fin dans 5 semaines. Merci d'avance pour votre aide :)

7 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
13 mars 2017 à 17:25
Bonjour,

si tu sais faire du rs en C#, écrit un petit petit programme de test, qui envoie les bonnes trames.

Sinon des tutoriels, pour utliser hypertmer y'en a plein le web.
Si tu as un problème avec le code, on t'aidera, mais t'apprendre à te servir d'un logiciel n'est pas le but de ce forum.
0
Artamonbya Messages postés 12 Date d'inscription mardi 7 mars 2017 Statut Membre Dernière intervention 25 avril 2017
14 mars 2017 à 10:00
Merci de ta réponse !

Sincèrement là où je bloque vraiment c'est le programme de réception de trames...
0
Artamonbya Messages postés 12 Date d'inscription mardi 7 mars 2017 Statut Membre Dernière intervention 25 avril 2017
14 mars 2017 à 10:08
J'aimerai vraiment savoir quoi mettre comme fonction.
Je ne demande pas le programme en entier mais quelques info. Ça serait cool.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
14 mars 2017 à 19:30
Bonsoir

Voici un exemple pour envoyer 2 trames de texte ASCII:
        SerialPort rs;
        private void button1_Click(object sender, EventArgs e) // A mettre dans un bouton// 
        {
            rs = new SerialPort("COM1",9600,Parity.None,8,StopBits.None);

            rs.Write("Coucou");//juste coucou est envoyé
            Thread.Sleep(500);//on fait une pause de 500 ms avant le prochain envoi
            rs.WriteLine("Comment ça va?");//rs va rajouter un fin de ligne à la fin,d'ou writeLine
        }

A toi de configurer le port com, comme il faut.

Ensuite, sur un second PC ou sur le même si tu as 2 port com, (il faut les relier)

dans le load
        SerialPort rs;
        private void Form1_Load(object sender, EventArgs e)
        {


            rs = new SerialPort("COM2", 9600, Parity.None, 8, StopBits.None);
            rs.DataReceived += rs_DataReceived;//on s'abonne à l'évènement de la classe qui signal que quelque chose est arrivé
//......
}



        void rs_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            if (rs.BytesToRead > 0)//on vérifie qu'il y a bien quelque chose à lire
            {
                //Option 1 tes trames ne sont pas des lignes
                Thread.Sleep(100);//on attend un peu, les données RS n'arrivent pas toujours bien en même temps

                byte[] buffer = new byte[rs.BytesToRead];//on initialise un tableau de bytes pouvant contenir ce qu'il y a dans le tampon du port
                rs.Read(buffer, 0, rs.BytesToRead); //on vide le tampon dans le tableau

                //A toi de faire le traitement, dans le cas de mon exemple, c'est assez simple
                string texte = ASCIIEncoding.ASCII.GetString(buffer);

                switch(texte)
                {
                    case "Coucou":
                        MessageBox.Show("J'ai reçu coucou");
                        break;

                    case "Comment ça va?\r\n"://il faut vérifier la valeur de rs.newLine 
                        MessageBox.Show("J'ai reçu une ligne");
                        break;

                    default:
                        MessageBox.Show("J'ai reçu autre chose");
                        break;


                }

                return;
                //si tu veux essayer l'option 2, il faut commenter toute l'option 1

                //Option 2, tes trames sont des lignes, il faut que le fin de ligne de chaque PC soit le même
                //ReadLine va attendre de recevoir le fin de ligne pour tout lire d'un coup
                string texte2 = rs.ReadLine();
                MessageBox.Show("J'ai reçu la ligne: " + texte2);
            }
        }

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Artamonbya Messages postés 12 Date d'inscription mardi 7 mars 2017 Statut Membre Dernière intervention 25 avril 2017
15 mars 2017 à 08:35
Ah oui je vois ! Merci beaucoup je vais essayer et je te dit !
0
Artamonbya Messages postés 12 Date d'inscription mardi 7 mars 2017 Statut Membre Dernière intervention 25 avril 2017
20 mars 2017 à 10:40
Après je ne sais pas si ça rentre dans le thème de mon projet puisque je dois écrire un programme pour réceptionner des trames et non les envoyer...
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
20 mars 2017 à 12:07
T'as deux options, soit tu te fais ton simulateur, soit tu te connectes directement sur la source et tu développes en réception des trames réelles.
0
Artamonbya Messages postés 12 Date d'inscription mardi 7 mars 2017 Statut Membre Dernière intervention 25 avril 2017
3 avril 2017 à 08:42
moi c'est la deuxième
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656 > Artamonbya Messages postés 12 Date d'inscription mardi 7 mars 2017 Statut Membre Dernière intervention 25 avril 2017
3 avril 2017 à 09:21
Alors pourquoi le titre de ton sujet parle de simulation?
0
Artamonbya Messages postés 12 Date d'inscription mardi 7 mars 2017 Statut Membre Dernière intervention 25 avril 2017
3 avril 2017 à 13:55
oui mais finalement je ne vais pas passer via hyperterminal mais directement avec le LCD puisque je n'ai pas 2 PC , ni 2 ports COM ..c'est assez limité niveau équipement dans mon lycée
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656 > Artamonbya Messages postés 12 Date d'inscription mardi 7 mars 2017 Statut Membre Dernière intervention 25 avril 2017
3 avril 2017 à 17:34
SI tu as un pc avec un port com et que tu as l'équipement et bien tu peux effectivement directement coder.
0
SerialPort rs;
private object rs_Datareceived;
private void button1_Click(object sender, EventArgs e)
{

rs = new SerialPort("COM5", 9600, Parity.None, 8, StopBits.None);

rs.Write("Coucou");
Thread.Sleep(500);
rs.WriteLine("Comment ça va?");
}

private void Form1_Load(object sender, EventArgs e)
{


rs = new SerialPort("COM2", 9600, Parity.None, 8, StopBits.None);
rs.DataReceived = rs_Datareceived;
}


void rs_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
if (rs.BytesToRead > 0)
{
Thread.Sleep(100);

byte[] buffer = new byte[rs.BytesToRead];
rs.Read(buffer, 0, rs.BytesToRead);

Encoding ascci = Encoding.ASCII;

switch (texte)
{
case "Coucou":
MessageBox.Show("J'ai reçu coucou");
break;

case "Comment ça va?\r\n":
MessageBox.Show("J'ai reçu une ligne");
break;

default:
MessageBox.Show("j'ai reçu autre chose");

}

return;

string texte2 = rs.ReadLine();
MessageBox.Show("Jai reçu la ligne:" + texte2);

}
}


public string texte { get; set; }
}
}

Voila le programme
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
24 avril 2017 à 13:53
Et?
0
Artamonbya Messages postés 12 Date d'inscription mardi 7 mars 2017 Statut Membre Dernière intervention 25 avril 2017
25 avril 2017 à 10:01
Y'a t'il une erreur ?
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
25 avril 2017 à 12:45
Apparement non
0
étrange...je pense que mon projet est mort alors
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
25 avril 2017 à 16:32
Attends tu montres le code pour ton problème de using?

Je t'ai dit de vérifier les références de ton projet.
C'est dans les références du projet, pas dans le code.
0
Rejoignez-nous