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 61
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 61
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 61
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
Rejoignez-nous