Serialport

Résolu
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010
- 11 mai 2007 à 11:07
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010
- 14 mai 2007 à 15:15
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

cs_Bidou
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Membre
Dernière intervention
20 juin 2013
59
11 mai 2007 à 15:30
SerialPort sp = new ....
sp.DataReceived += new SerialDataReceivedEventHandler(sp_dataReceived);

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

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

14 mai 2007 à 11:26
Ceci est conseillé ou pas?
enum
Etat{Repos, Lire,Ecrire };
Etat etat ;
etat=Etat.Repos;
switch (etat)
{
 case Etat.Lire:
......
3
leprov
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
17
11 mai 2007 à 12:27
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
0
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

11 mai 2007 à 13:19
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();
}
}
0

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

Posez votre question
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

11 mai 2007 à 14:04
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?
0
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

11 mai 2007 à 14:40
Help pleaz.
0
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

11 mai 2007 à 14:57
BIdou?
0
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

14 mai 2007 à 07:39
Merci Bidou.
0
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

14 mai 2007 à 08:43
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.
0
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

14 mai 2007 à 09:25
leprov peux-tu m'aider stp?
0
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

14 mai 2007 à 10:00
Slt,Bidou.Ai-je un probléme de syntaxe?
0
cs_Bidou
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Membre
Dernière intervention
20 juin 2013
59
14 mai 2007 à 10:06
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-
0
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

14 mai 2007 à 10:13
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.
0
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

14 mai 2007 à 10:32
Bidou?
0
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

14 mai 2007 à 10:57
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;
......
}
0
cs_Bidou
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Membre
Dernière intervention
20 juin 2013
59
14 mai 2007 à 10:58
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-
0
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

14 mai 2007 à 10:59
Comment faire alors?
0
ddove53
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

14 mai 2007 à 15:15
C'est bien comme j'ai fait au dessus.
0