Aller au contenu

[Contourné][C#] Need help sur composant SerialPort


Drak

Messages recommandés

Aloha les fous,

Je vous explique mon soucis... je me lance dans la création d'une application en C# qui contrôle en fait une station météo branchée sur un port série

Sous .NET 2.0 il y a un nouveau composant "SerialPort" qui permet de simplifier toutes les commandes... mais bon l'aide MSDN c'est vraiment, vraiment pas ça sur ce coup là... alors si quelqu'un avec un lien vers une aide ou des exemples plus fournis...

Merci d'avance.... si d'autres questions n'hésitez pas

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Salut

Effectivement l'utilisation du port série sur les PC est un peu obsolète, ça fait que tu vas avoir un peu de mal à trouver des exemples en c#

Par contre pour les pocket PC, c'est très utilisé, bien sur il n'y a pas de port RS232 sur le pocket mais pour les communications le bluetooth, port IR et le port USB sont vus comme un port COM série.

Donc si tu veux trouver des exemples cherche à "serialport pocket pc " tu devrais trouver des exemples intéressants.

Pour PC j'ai deux adresses sur code project :

un exemple en VB.net très simple ( facilement transposable en c# ) :

http://www.codeproject.com/KB/system/Seria...aspx?print=true

un exemple en c# un peu plus complexe :

http://www.codeproject.com/KB/system/rs232...aspx?print=true

Voici un exemple basique : d'écriture sur le port série

// Création d'un objet Port série avec son paramétrage : 
// COM1 : nom du port com 
// 9600 : vitesse en baud du port 
//  Parity.None : type de parité utilisé ici pas de parité 
// 8 : 8 bits de données 
// StopBits.One : un bit de stop 

SerialPort Port  = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One)
// on ouvre ( reserve ) le port pour l'utiliser 
Port.Open()
// on envoie Hello world sur le port 
Port.Write("Hello world")
// ferme ( rend ) le port 
Port.Close()

Pour la reception c'est un poil plus compliqué, on gère la reception de caractère de façon evenementielle : une fonction que tu auras déclarée va être appelée sur reception de donnée, dans cette fonction tu va alors récupérer/traiter/stocker les données reçues.

// déclaration de la fonction appelée sur reception de donnée 
Port.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(Port_DataReceived);

// fonction appelée sur reception de donnée 
void Port_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{

// lecture de toutes les données disponible sur le port 
string Message = Port.ReadExisting();
...

}

J'espère que ces quelques infos vont t'aider.

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Re Aloha ici.... bon bah finalement je me suis fait un programme en C directement pour communiquer avec la station météo via le pour série et une partie en C# qui se charge de lancer le programme C en arrière plan, de rediriger la sortie de ce programme vers C# pour l'interprétation et affichage des infos...

Donc pour la peine...... je me fais un auto :francais:

Encore merci de votre aide !!

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...