IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#] Client/serveur avec port série


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 58
    Par défaut [C#] Client/serveur avec port série
    Bonjour,

    J'ai une application cliente que je voudrais faire communiquer avec une application serveur (située sur un autre poste) via le port série (COM1). Je ne sais pas trop comment m'y prendre. Pour l'instant, à part avoir créer un port série sur chaque application et les avoir paramétrer de la même façon, je bloque un peu sur la façon de pouvoir envoyer/lire des données d'une application vers l'autre (à part faire le OpenPort() au début de la requête puis le ClosePort() à la fin, je sais pas trop quoi mettre entre pour pouvoir envoyer/lire des données du client vers le serveur et vice-versa).

    De plus, quand on communique via le port série, comment dire à l'appli qu'on veut utiliser le protocole modbus? (je suis nul en réseau, et à part le fait qu'il s'agit apparemment d'un protocole qui décrit le format des données à émettre/recevoir, je vois pas trop à quoi il sert...)

    Merci par avance à ceux qui pourront éclairer un peu mon chemin (et ceux qui essaieront)

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Par défaut
    Salut, je suis en train de developper un soft qui utilise ModBus aussi en serie aussi.
    Modbus est un protocol qui permet de comprendre quelles sont les trames envoyer, la signification des différents champs. IL faut que tu te rensigne la dessus, l'entreprise dans laquelle tu ai a forcement de la documentation la dessus.

    Pour la communication serie, je me suis inspirer de ca :
    http://www.codeproject.com/csharp/Se...munication.asp
    c'est nikel !

    Bonne chance

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 58
    Par défaut
    Tout d'abord, merci pour ta réponse.

    Niveau modbus, j'ai bien de la doc dessus, et donc vu comment ça fonctionnait pour le format des trames, etc.

    Pour le read/write ça fonctionne lorsque je le fais à partir de la même appli depuis une textBox. Le véritable problème est que je ne vois pas comment dire à mon client: "Connecte toi à l'appli serveur" (qui est sur une autre machine) pour pouvoir ensuite envoyer mes data vers cette appli (et vice-versa).

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Par défaut
    Que tu sois sur la même machine ou pas c'est pareil, il faut juste que tu ai un cable croisé entre les deux ports.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private void OuvertureDuPort()
    {
         try
         {
               _Port = new SerialPort(_PortName, _BaudRate, _parity, _nb_Bits_Char, _stopBits);
                _Port.Open();
          }
           catch (IOException ioex)
           {
                ......   
            }            
    }
    Si de l'autre coté, un ecouteur est en place et que la config est la même (baud rate, parity...) ca va marcher.

    Si tu arrives à le faire marcher sur ta machine c'est bon ca tournera en réseau. La communication Serie, c'est pas TCP/IP, y a pas a se prendre la tete c'est très facile.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 58
    Par défaut
    Ben le problème, c'est que j'ai bien ouvert le port série des 2 côtés (même config) mais j'arrive pas à faire un écouteur côté serveur

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Par défaut
    ... Tu fait la même chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonSerialPort.Read(Buffer, 0,20)
    Ca va mettre ton serveur en attente d'une connection, une fois que quelqu'un va se connecter il pourra envoyer son message.
    Attention, il faut penser à utiliser les threads si nécessaire.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/02/2006, 17h41
  2. Réponses: 1
    Dernier message: 01/02/2006, 17h48
  3. Client-serveur avec VB6 inside
    Par kremvax dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/11/2005, 13h08
  4. Problème avec port Série sur Win XP
    Par alexorel dans le forum MFC
    Réponses: 9
    Dernier message: 27/10/2005, 15h32
  5. [SOCKET] connexion client serveur avec applet
    Par kaiser2003 dans le forum Applets
    Réponses: 2
    Dernier message: 06/10/2004, 22h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo