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

Java Discussion :

RXTX Problème en réception


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par défaut RXTX Problème en réception
    Bonjour,
    les données que je transmets sont bonne en réception par contre les valeurs ne sont pas correcte.
    Quelqu'un a une idée SVP.
    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
     
     
    public class SerialCom implements SerialPortEventListener {
     
    	final int MAXSIZE = 1024;
     
    public void openCom() throws PortInUseException,
    			UnsupportedCommOperationException, IOException,
    			TooManyListenersException {
     
    		aSerialComPort = (SerialPort) theId.open(theNameaPli, theTimeOut);
     
    //		aSerialComPort.setSerialPortParams(theConfig.getBaudsRate(),
    //				theConfig.getNberOfBit(), theConfig.getStopBit(),
    //				theConfig.getParity());
     
    		aSerialComPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
    		aSerialComPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
     
    //		bufRead = new BufferedReader(new InputStreamReader(
    //				aSerialComPort.getInputStream()));
    		bufWrite = aSerialComPort.getOutputStream();
    		this.bufRead = new BufferedReader( new InputStreamReader(aSerialComPort.getInputStream(), "ISO-8859-1") );
    //		aSerialComPort.addEventListener(this);
    //		aSerialComPort.notifyOnDataAvailable(true);
    	}
     
    	public void  closeCome() {
    		aSerialComPort.close();
    		aSerialComPort=null;
    		try {
    			bufRead.close();
    			bufWrite.close();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
     
    	}
     
    	public void write(String string) {
    		if ( aSerialComPort != null)
    		{
    			threadSerialWriter mySenderTheard = null;
    			mySenderTheard = new threadSerialWriter(bufWrite, string.getBytes(),
    					string.length());
    			mySenderTheard.start();
    		}
    		else 
    		{
    			System.out.println("port close");
     
    		}
    	}
     
    	public byte[] read(  int _NberOfCar)
    	{
    		byte value =0;
    		int aChar = 0;
    		indexReceivedBuffer = 0;
    		while (indexReceivedBuffer < MAXSIZE )
    		{
    			bufferReceived[indexReceivedBuffer]=0;
    			indexReceivedBuffer++;
    		}
    		indexReceivedBuffer =0;
     
    		do {
    			try {
    				aChar = bufRead.read();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			value = (byte) (0xff & aChar);
    			if (value > 0)
    			{
    				bufferReceived[indexReceivedBuffer] = value;
    System.out.println(Integer.toHexString(bufferReceived[indexReceivedBuffer]));
    				indexReceivedBuffer++;
    			}
    		}
    		while  (_NberOfCar > indexReceivedBuffer );
    		System.out.println(bufferReceived);
    		indexReceivedBuffer=0;
    		return bufferReceived.clone();
    	}
    	private 
    configSerial theConfig;
    	private String theNameaPli;
    	private CommPortIdentifier theId;
    	private int theTimeOut;
    	private SerialPort aSerialComPort;
    	private BufferedReader bufRead; // flux de lecture du port
    	private OutputStream bufWrite; // flux d'écriture du port
    	private byte[] bufferReceived = null;
    	private int indexReceivedBuffer = 0;
     
    }
    En vous remerciant

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Que fait ton programme ?
    Que fait threadSerialWriter (Au passage, un nom de classe doit commencer par une Majuscule) ? Quel est son code ?
    Qu'est-ce que tu envoies ?
    Qu'est-ce que tu reçois ?

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par défaut
    Mon programme pour l'instant ne fait que transmettre et recevoir des données séries.
    Le thread serial writter transmet des données par la liaision série est fonctionne correctement.
    J'envoie et je reçois des trames binaires.
    Les valeurs transmisent sont correctes.
    Les valeurs lues n'étaient pas les bonnes.


    Mais l'ajout d'un blocage sur time out de la liasion série semble corriger le problème.
    Par contre, je ne comprends pas pourquoi....
    aSerialComPort.enableReceiveTimeout(10000);

    Cordialement

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

Discussions similaires

  1. [Configuration] problème de réception de mail via formulaire
    Par FraK dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 26/06/2007, 17h45
  2. problème de réception de formulaire
    Par oukok dans le forum Langage
    Réponses: 4
    Dernier message: 14/06/2007, 13h14
  3. Problème de réception TCP/IP.
    Par BigBulle dans le forum C#
    Réponses: 4
    Dernier message: 02/04/2007, 21h27
  4. Problème de réception d'e-mail
    Par Lenaick dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 02/03/2007, 22h35
  5. Réponses: 5
    Dernier message: 11/03/2004, 15h34

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