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 :

Programmation port série


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut Programmation port série
    Salut,
    Dans le cadre de mon stage de projet de fin d’étude, je devrai crée une application de gestion de caisse en java, parmi les fonctionnalités que je devrai implémenter c’est de connecté une caisse à un PC en utilisant le port série, dont je devrai commander l’ouverture et la fermeture de la caisse par programmation et afficher la désignation d’un article dans un afficheur spécial (comme ceux que l’on voit dans les magasins).
    On cherchant sur internet j’ai pu savoir que je devrai utiliser l’API Java Communications API, le pb c’est que cet API n’existe pas sous Windows, donc je devrai télécharger la version générique de sun conjointement avec l’API rxtx, malheureusement, en allant sur le site http://www.rxtx.org/ je ne peux pas télécharger l’API.
    Pourriez-vous s’il vous plaît, me donner un autre lien ou me joindre ce qui me manque ?
    Autre question : comment faire pour rediriger mon flux de sortie vers un afficheur extérieur, branché sur port série, pour afficher les prix des articles ? et quelle est le principe que je devrai utiliser pour, à partir d’un prg java, je pourrai ouvrir ou fermer une caisse ?
    Merci d’avance de vos réponses.

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    Bonjour,
    Enfin, J’ai pu télécharger RXTX, néanmoins je n’arrive pas à trouver la classe Win32Driver ni dans comm.jar ni dans RXTXcomm.jar, pourtant, j’ai téléchargé la version générique de sun
    Donc j’ai remplacé Win32Driver par RXTXCommDriver, il me semble qu’il reconnait le driver car j’ai eu le msg suivant dans la console :
    evel Library
    =========================================
    Native lib Version = RXTX-2.0-7pre1
    Java lib Version = RXTX-2.0-7pre1
    Mais j’ai une l’exception suivante :

    Error loading SolarisSerial: java.lang.UnsatisfiedLinkError: no SolarisSerialParallel in java.library.path
    Caught java.lang.UnsatisfiedLinkError: readRegistrySerial while loading driver com.sun.comm.SolarisDriver

    Pourtant com
    me je l’ai dit j’ai telecharger la version générique
    Est-ce que quelqu’un peut m’aider
    Merci d’avance
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    package src;
     
    import gnu.io.RXTXCommDriver;
    import java.util.Enumeration;
    import javax.comm.*;
     
     
    public class TestPortSerie {
     
    	public TestPortSerie(){
    		RXTXCommDriver rXTXCommDriver= new RXTXCommDriver();
    		rXTXCommDriver.initialize();
    //		récupération de l'énumération
    		Enumeration portList=CommPortIdentifier.getPortIdentifiers();
    //		affichage des noms des ports
    		CommPortIdentifier portId;
    		while (portList.hasMoreElements()){
    			portId=(CommPortIdentifier)portList.nextElement();
    			System.out.println(portId.getName());
    		}
    	}
     
    	public static void main(String[] args){
    		TestPortSerie t=new TestPortSerie();
    	}
    }

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    J'ai résolu le pb de l'exception en créant un fichier nommée javax.comm.properties qui contient le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # Driver de RXTX
    Driver=gnu.io.RXTXCommDriver
    Maintenant il me liste les differents port que j'ai
    est ce que qq peut me dire comment faire pour commander l'ouverture et la fermeture de la caisse et comment faire pour afficher dans une autre ecran, sachant que je n'ai pas la documentation matérielle càd je ne connait pas les commandes que je devrai utilisé pour assurer la communication entre mon PC, la caisse et l'afficheur

  4. #4
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Citation Envoyé par Ganymede Voir le message
    Maintenant il me liste les differents port que j'ai
    est ce que qq peut me dire comment faire pour commander l'ouverture et la fermeture de la caisse et comment faire pour afficher dans une autre ecran, sachant que je n'ai pas la documentation matérielle càd je ne connait pas les commandes que je devrai utilisé pour assurer la communication entre mon PC, la caisse et l'afficheur
    Si tu n'as pas de documentation, ce sera difficile. Sauf si tu as une installation qui fonctionne, tu peux "épier" la communication entre les différents dispositifs.

    A mon époque, il y a environ 20ans, on utilisait un montage électronique et un terminal pour "voir" les communications sur une ligne sérielle.

  5. #5
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Pour envoyer des trames sur un port série, tu devras toi même ouvrir le port série, puis un OutputStream. (tu as des exemples sur http://www.rxtx.com)

    Pour savoir ce que tu dois envoyer pour afficher un prix ou ouvrir la caisse, il faut te reporter à sa documentation. Les trames de communication doivent y être décrites précisément.

  6. #6
    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 : 44
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Je confirme. J'ai déjà eu à faire exactement la même chose il y a quelques années sur un gros projet de gestion d'officine.
    Pour ouvrir le tiroir-caisse, il suffisait d'envoyer n'importe quel caractère.
    Pour l'afficheur, il suffit de faire une recherche sur le net en précisant la marque de ton afficheur, et tu vas forcément trouver la documentation dessus. Il y aura un tableau avec les codes hexa et leurs significations.
    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.

  7. #7
    Invité de passage
    Inscrit en
    Juillet 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 1
    Par défaut Nouvelle discussion
    Salut à tous;
    Je suis en cycle BTS en Informatique Industrielle et je fais urn stage donc le thème est: Commande d'une lampe par un Pc. Je voudrais avoir quelques codes sources en C, le schéma de cablage de l'interface,... bref tout ce qui pourra m'aider à ne pas réinventer la roue.
    Merci.

  8. #8
    Membre éclairé Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 272
    Par défaut
    Bonjour à tous,

    j'ai repris cet exemple de code mais une station météo.

    La documentation de la station est identique c'est à dire au niveau de la communicatio on a : 9600, 8, 1,0

    Actuellement j'envoie des commande à la station par port série sur HyperTerminal par ex: 0XU ou OSU etc... donc pas en hexadecimal.

    J'ai repris ce que le bout de code et modifié mais cela ne fonctionne pas.

    int hex=0x1B11;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     OutputStream ous=serialPort.getOutputStream();       
     
    		 String s=new String("0R0"); 
     
    		 byte[] b=s.getBytes(); 
     
    		 ous.write(b, 0, b.length);
     
    		 ous.flush()
     
    		 //ous.write(hex);
     
    		 ous.flush();
     
    		 //hex=0x0C;
     
    		 //ous.write(hex);
     
    		 ous.flush();
     
    		 ous.close();
     
    		 System.out.println("FIN ECRITURE");
    Que se passe-t-il je suis débutant en java.
    Mon projet est dans un premier temps d'envoyer les commandes par mon prog java au lieu de passer par HyperTerminal.

    Merci de votre aide
    ssmano

Discussions similaires

  1. [AC-2010] Programmer le port série
    Par f-leb dans le forum Access
    Réponses: 3
    Dernier message: 21/01/2013, 19h59
  2. Programmation des port série
    Par lovelace dans le forum Général Java
    Réponses: 2
    Dernier message: 10/11/2008, 18h51
  3. Réponses: 1
    Dernier message: 14/05/2007, 09h44
  4. Programmer le port série utilisant VC++6
    Par alesencevennes dans le forum Visual C++
    Réponses: 2
    Dernier message: 03/11/2006, 10h50
  5. [Programmation] port série / adaptateur RS232
    Par benhua dans le forum Windows
    Réponses: 8
    Dernier message: 15/09/2004, 20h52

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