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

API standards et tierces Java Discussion :

[Rxtx] Lecture et écriture des données envoyées par Rs232


Sujet :

API standards et tierces Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut [Rxtx] Lecture et écriture des données envoyées par Rs232
    Bonjour ,

    je cherche à lire des données envoyées par un microcontrôleur PIC18 et les enregistrer dans un fichier via la librairie Rxtx.
    Cependant, je n'arrive pas à le faire, mon fichier reste vide et j'obtiens pas mal d'erreurs .
    Voici le code que j'ai fais :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
     
    import gnu.io.CommPort;
    import gnu.io.CommPortIdentifier;
    import gnu.io.NoSuchPortException;
    import gnu.io.PortInUseException;
    import gnu.io.SerialPort;
     
    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.PrintWriter;
     
    public class COMListener {
     
    	//private int rate=9600;
    	public int etatPort;	// 1 port en attente, 2 transmission, sinon pas detecté
    	private CommPort commPort;
    	public COMListener() {
    		super();
    	}
     
    	void connect(String portName) throws Exception {
     
    		try{
    			CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
     
    		if (portIdentifier.isCurrentlyOwned()) {
    			System.out.println("Erreur: Port déja en cours d'utilisation");
    		} else {
    			commPort = portIdentifier.open(this.getClass().getName(),2000);
    			System.out.println("port détecté ! ");
     
    			etatPort=1;
    			System.out.println("etatport " +getEtatPort());
    			if (commPort instanceof SerialPort) {
    				SerialPort serialPort = (SerialPort) commPort;
    				//serialPort.setSerialPortParams(57600, SerialPort.DATABITS_8,SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
    				serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8,SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
    				//serialPort.setSerialPortParams(rate, SerialPort.DATABITS_8,SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
     
     
    				InputStream in = serialPort.getInputStream();
    				OutputStream out = serialPort.getOutputStream();
     
    				(new Thread(new SerialReader(in))).start();
    				(new Thread(new SerialWriter(out))).start();	
    				System.out.println("Mot ecrit");
    			} else {
    				System.out.println("Erreur: Seuls les ports série sont utilisés");
     
    			}
     
    		}
     
    		}catch(NoSuchPortException ex){
    			System.out.println("Pas de port détecté ! ");
     
    		}
    		catch(PortInUseException e1){
    			System.out.println("Erreur: Port déja en cours d'utilisation dans un autre programme");
     
     
    		}
     
    	}
     
    	/** */
    	public static class SerialReader implements Runnable {
    		InputStream in;
     
    		public SerialReader(InputStream in) {
    			this.in = in;
    		}
     
     
     
    		public void run() {
    			PrintWriter out = null;
    			byte[] buffer = new byte[8];
    			int len = -1;
    			try {
    				out = new PrintWriter(new BufferedWriter(new FileWriter(
    						"fichiers/test.txt",true)));
     
    				while ((len = this.in.read(buffer)) > -1) {
    					String next=new String(buffer,0,len);
    					System.out.print(next);
    					out.print(next);
    					out.flush();
    				}
    		//	out.newLine();			//saut de ligne
     
    				System.out.println(out);
    			} catch (IOException e) {
    				if (out != null)
    					out.close();
    				e.printStackTrace();
    			}
    		}
    	}
     
    	/** */
    	public static class SerialWriter implements Runnable {
    		OutputStream out;
     
    		public SerialWriter(OutputStream out) {
    			this.out = out;
    		}
     
    		public void run() {
    			try {
    				int c = 0;
    				while ((c = System.in.read()) > -1) {
    					this.out.write(c);
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    	}
     
    	 public int getEtatPort() {
             return etatPort;
     }
    	 public void fermerPort(){
    		 commPort.close();
    	 }
     
     
     
    }

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Voila l'erreur que j'obtiens

    java.io.IOException: No error in readArray
    at gnu.io.RXTXPort.readArray(Native Method)
    at gnu.io.RXTXPort$SerialInputStream.read(RXTXPort.java:1398)
    at gnu.io.RXTXPort$SerialInputStream.read(RXTXPort.java:1287)
    at COMListener$SerialReader.run(COMListener.java:88)
    at java.lang.Thread.run(Unknown Source)


    quelqu'un saurait-il comment la résoudre? parce que moi le "no error" il m'a tué

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    J'ai réussi à régler mon problème et la réception de ce que j'envoie par la liaison fonctionne nickel .
    Par contre ce que je voudrais maintenant c'est pouvoir renvoyer un caractère 'R' pour indiquer que mon message a bien été reçu. Le problème c'est que je ne vois pas comment faire pour envoyer quelque chose dans la liaison :/
    Quelqu'un saurait-il comment procéder?

Discussions similaires

  1. [AJAX] json recuperer des donneés envoyé par php
    Par karimphp dans le forum AJAX
    Réponses: 1
    Dernier message: 14/05/2010, 11h13
  2. [PHP 5.3] Niveaux de protection des données envoyées par la méthode post
    Par bailamos dans le forum Langage
    Réponses: 1
    Dernier message: 24/03/2010, 20h30
  3. [AJAX] encodé des donnés envoyé par POST
    Par stc074 dans le forum AJAX
    Réponses: 2
    Dernier message: 19/07/2009, 18h00
  4. [Sécurité] Cryptage des données envoyées par le réseau
    Par DeusXL dans le forum Développement
    Réponses: 6
    Dernier message: 05/03/2007, 04h29
  5. Récuperation des données envoyées par Form en POST
    Par bobatel dans le forum Langage
    Réponses: 9
    Dernier message: 26/04/2006, 14h59

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