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

Entrée/Sortie Java Discussion :

Utiliser port série sans le bloquer pour une autre appli


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut Utiliser port série sans le bloquer pour une autre appli
    Bonjour,

    L'objectif est de pouvoir lancer/fermer une application en fonction de requête arrivant sur le port COM.

    Pour la gestion de la liaison série je compte utiliser l'API javax.comm.
    Pour le lancement de l'appli externe j'utiliserai la classe Process.

    Mon problème sera à mon avis le suivant : l'appli que je lance doit utiliser le port COM que je monopolise déjà avec mon programme d'écoute.

    Ma question : est il possible d'écouter le port série de façon transparente pour les autres appli? de la même façon que le font les sniffers par exemple.

    Merci d'avance

    Cordialement,

  2. #2
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par wilv8 Voir le message
    Mon problème sera à mon avis le suivant : l'appli que je lance doit utiliser le port COM que je monopolise déjà avec mon programme d'écoute.
    J'vais dire une connerie mais tu peux pas simplement arrêter d'écouter le temps que l'autre process se finisse puis reprendre l'écoute ? au pire...
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Ce n'est pas une connerie... mais la dernière fois que j'ai fait une appli utilisant l'api javax.comm le seul moyen de rendre le port COM étatit de quitter l'appli.
    Hors la ce n'est pas possible.

    Mais effectivement, si ta une solution pour rendre le port COM sans être obliger de quitter le programme je suis prenneur...


    Merci pour ta réponse rapide.

  4. #4
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par wilv8 Voir le message
    Mais effectivement, si ta une solution pour rendre le port COM sans être obliger de quitter le programme je suis prenneur...
    Absolument pas... je n'ai jamais fait de javax.comm ... désolé.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  5. #5
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Le port COM est locké par l'application qui l'utilise, quel que soit le type d'application. Une application tierce ne peut pas "sniffer" le port, à la manière du port ethernet.
    Une solution possible :
    1. Ecouteur lancé, attend une trame spécifique sur le port COM
    2. trame de lancement lue, libération du port COM
    3. lancement de l'application
    4. l'écouteur s'arrête
    5. l'application, avant de s'arrêter, libère le port COM et relance l'écouteur.

    Pourquoi l'écouteur ne peut pas être aussi ton application ? Il y a plusieurs applications différentes ?

    Seconde solution : tu fais un proxy permanent qui lit les données sur le port COM. Il ne s'arreête jamais. Une application qui souhaite avoir des données du port COM se connecte en TCP sur ce proxy et lit le flux sans savoir que les infos viennent du port COM.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Par défaut
    Le port COM est locké par l'application qui l'utilise, quel que soit le type d'application. Une application tierce ne peut pas "sniffer" le port, à la manière du port ethernet.


    Sans vouloir te contre dire, je pense que c'est possible, mais à mon avis sans utiliser quelques api que ce soit. (en C par exemple). Le programme "portmon" fait ça très bien.

    Une solution possible :
    1. Ecouteur lancé, attend une trame spécifique sur le port COM
    2. trame de lancement lue, libération du port COM
    3. lancement de l'application
    4. l'écouteur s'arrête
    5. l'application, avant de s'arrêter, libère le port COM et relance l'écouteur.


    C'est éxactement la solution que j'envisage. Pour ce faire, je pense faire un ".jar" indépendant pour l'écoute que je pourrai quitter à souhait pour libérer le port COM.

    Pourquoi l'écouteur ne peut pas être aussi ton application ? Il y a plusieurs applications différentes ?

    L'application que je lance est une appli très lourde en borland C++ et il serait pour moi beaucoup plus long d'y implémenter cette fonctionnalité.

    Seconde solution : tu fais un proxy permanent qui lit les données sur le port COM. Il ne s'arreête jamais. Une application qui souhaite avoir des données du port COM se connecte en TCP sur ce proxy et lit le flux sans savoir que les infos viennent du port COM.

    Si la première solutioin ne fonctionne pas, je sais ce qu'il me reste à faire...


    Merci encore pour toutes ces infos.

  7. #7
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par wilv8 Voir le message
    Sans vouloir te contre dire, je pense que c'est possible, mais à mon avis sans utiliser quelques api que ce soit. (en C par exemple). Le programme "portmon" fait ça très bien.
    Effectivement
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut Résolu
    Juste pour vous tenir au courant :
    J'ai fait mon programme java sous la forme de 3 threads :
    le thread 1 qui synchronise
    le thread 2 : écoute du port com en boucle
    et
    le thread 3 : lancement de mon appli
    Le tout en boucle... Je me doute que c'est pas très clair exprimé comme ça mais c'est exactement ce dont j'avais besoin.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Salut.
    Je viens de lire vos messages, et j'ai un peu le même besoin.

    J'aimerai savoir quel javax.comm vous avez utilisé, car je veux faire un sniffer analogue au votre sous Windows, or celui qui est proposé par Sun existe en différentes versions (Linux, Generic, etc.) mais pas pour Windows.

    J'ai tenté d'utiliser le "Generic", mais cela ne fonctionne pas.

    Merci !

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    Voici un screenshot des classes à utiliser sous Windows...
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/06/2010, 16h38
  2. [MySQL] Utiliser la syntaxe d'un INSERT pour une mise à jour
    Par Concombre Masqué dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/05/2009, 21h14
  3. Wincom VT320 connexion sur port série sans réponses.
    Par Pitchou`n dans le forum Windows XP
    Réponses: 0
    Dernier message: 20/03/2008, 13h26
  4. Réponses: 6
    Dernier message: 03/05/2007, 11h28

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