Serialport [Résolu]

ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 11 mai 2007 à 11:07 - Dernière réponse : ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention
- 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.
Afficher la suite 

18 réponses

Répondre au sujet
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 11 mai 2007 à 15:30
+3
Utile
SerialPort sp = new ....
sp.DataReceived += new SerialDataReceivedEventHandler(sp_dataReceived);

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

<hr />
-Blog-
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Bidou
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 14 mai 2007 à 11:26
+3
Utile
Ceci est conseillé ou pas?
enum
Etat{Repos, Lire,Ecrire };
Etat etat ;
etat=Etat.Repos;
switch (etat)
{
 case Etat.Lire:
......
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ddove53
leprov 1163 Messages postés vendredi 23 juillet 2004Date d'inscription 21 octobre 2010 Dernière intervention - 11 mai 2007 à 12:27
0
Utile
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
Commenter la réponse de leprov
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 11 mai 2007 à 13:19
0
Utile
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();
}
}
Commenter la réponse de ddove53
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 11 mai 2007 à 14:04
0
Utile
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?
Commenter la réponse de ddove53
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 11 mai 2007 à 14:40
0
Utile
Help pleaz.
Commenter la réponse de ddove53
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 11 mai 2007 à 14:57
0
Utile
BIdou?
Commenter la réponse de ddove53
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 14 mai 2007 à 07:39
0
Utile
Merci Bidou.
Commenter la réponse de ddove53
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 14 mai 2007 à 08:43
0
Utile
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.
Commenter la réponse de ddove53
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 14 mai 2007 à 09:25
0
Utile
leprov peux-tu m'aider stp?
Commenter la réponse de ddove53
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 14 mai 2007 à 10:00
0
Utile
Slt,Bidou.Ai-je un probléme de syntaxe?
Commenter la réponse de ddove53
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 14 mai 2007 à 10:06
0
Utile
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-
Commenter la réponse de cs_Bidou
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 14 mai 2007 à 10:13
0
Utile
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.
Commenter la réponse de ddove53
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 14 mai 2007 à 10:32
0
Utile
Bidou?
Commenter la réponse de ddove53
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 14 mai 2007 à 10:57
0
Utile
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;
......
}
Commenter la réponse de ddove53
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 14 mai 2007 à 10:58
0
Utile
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-
Commenter la réponse de cs_Bidou
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 14 mai 2007 à 10:59
0
Utile
Comment faire alors?
Commenter la réponse de ddove53
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 14 mai 2007 à 15:15
0
Utile
C'est bien comme j'ai fait au dessus.
Commenter la réponse de ddove53

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.