Serialport [Résolu]

Signaler
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010
-
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010
-
Bonjour,quelqu'un a-t-il un exemple d'utilisation de:
public event SerialDataReceivedEventHandler DataReceived
J'ai cherché mais je n'ai pas vu d'exemple.
Merci.

18 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
SerialPort sp = new ....
sp.DataReceived += new SerialDataReceivedEventHandler(sp_dataReceived);

private void sp_dataReceived(object sender, SerialDataReceivedEventArgs e)
{
   ...
}

<hr />
-Blog-
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Ceci est conseillé ou pas?
enum
Etat{Repos, Lire,Ecrire };
Etat etat ;
etat=Etat.Repos;
switch (etat)
{
 case Etat.Lire:
......
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
17
bah tu as juste a effectuer tes appels a la déclinaison de la méthode "Read" qui te convient (ReadLine, ReadExisting, Read, etc...).
L'event ne fait que t'informet que le port contient de nouvel données et que tu peux lire dedans
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

J'ai pas bien compris,je veux par exemple envoyer 1 caractére "ab".Si ab==ACK  il me fait par exemple 1 messagebox"carac reçu" sinon il me fait 1 messagebox"echec".





Comment faire?Merci.


SerialPort
portcom;


enum



Etat
{ Lire,Ecrire };


public
Transfert_d_armure()
{
InitializeComponent();
}


private



void
Transfert_d_armure_Load(

object
sender,

EventArgs
e)
{


string
num_port = Properties.

Settings
.Default.Port;
portcom =

new



SerialPort
(num_port, 9600,

Parity
.None, 8,

StopBits
.Two);


//c'est ici que je veux utiliser de SerialDataReceived......

}







void
Lire(

uint
ab)
{}


public



void
Ecrire(

uint
ab)
{


portcom.Open();
portcom.Write(

"ab"
);
portcom.Close();
}
}
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Merci,je vois comment faire mais y a un probléme que j'arrive pas à résoudre:
private
voidTransfert_d_armure_Load(
objectsender,
EventArgse)
{
Recu( sender, 
e);  //c'est ici mon probléme

}

public
void Recu(
object sender,
SerialDataReceivedEventArgs e)
{
.....
}
Vu que les "e" sont pas les memes,j'ai une erreur.Pouvez vous m'aider?
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Help pleaz.
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

BIdou?
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Merci Bidou.
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

j'ai aussi une autre question,si j'ai:
Etat{Repos, Lire,Ecrire };
Etat = Repos();

if (... != Repos);

switch (Etat)
{

 case Lire:
 Lire(....);
 break;
 case Ecrire :
Ecrire(....);
 break;

}
Cette utilisation ne marche pas,ai-je une erreur de syntaxe?
Merci.
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

leprov peux-tu m'aider stp?
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Slt,Bidou.Ai-je un probléme de syntaxe?
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Dans le case, tu dois mettre Etat.Lire et pas Lire, même chose pour les autres...
Tu programmes avec quoi? Visual Studio?

Parce que normalement ton IDE dois te donner suffisamment d'explications pour que tu puisses corriger ce genre de problème comme un grand ;-)

<hr />
-Blog-
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

j'avais essayé avec comme tu dis mais il me mets: 'Etat' est un 'type' mais est utilisé comme un 'variable' 
Sisi j'utilise le IDE mais deouis quelques temps j'ai un probléme avec l'aide en ligne.
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Bidou?
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

j'ai fait comme suit et il n'y a plus d'erreur.Dites moi si c conseillé ou pas?Merci.
Etat etat = newEtat();
switch (etat)


{

 case Etat.Lire:

 .....

 break;
......
}
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Etat n'est pas une class mais un enum
Pas la peine de toujours mettre "Bidou?" je ne viens pas répondre plus rapidement...

<hr />
-Blog-
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Comment faire alors?
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

C'est bien comme j'ai fait au dessus.