Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème envoi caractère port série

Sujet résolu
    22 juin 2009 à 11:01:42

    Bonjour !

    J'ai un souci au niveau de l'envoi d'un caractère sur mon port série (API javax.comm) :

    Méthode de création et d'ouverture de mon port :
    public void createPort(String port, int speed, int databits, int stopbits, int parity) {
    	// Recuperation of the port identifier
    	try {
    		portId = CommPortIdentifier.getPortIdentifier(port);
    	} catch (NoSuchPortException e) {
    		e.printStackTrace();
    	}
    	// Port Opening
    	try {
    		sPort = (SerialPort) portId.open("PortSérie", 30000);
    	} catch (PortInUseException e) {
    		e.printStackTrace();
    	}
    	// Sets the connection settings
    	try {
    		sPort.setSerialPortParams(speed, databits, stopbits, parity);
    	} catch (UnsupportedCommOperationException e) {
    		e.printStackTrace();
    	}
    	// Recuperation of the buffer reader and the buffer write
    	try {
    		outStream = sPort.getOutputStream();
    		bufRead = new BufferedReader(new InputStreamReader(sPort.getInputStream()));
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    }
    


    Méthode pour envoyer un caractère :
    public String communique(char order) {
    	received = "";
    	try {
    		outStream.write(order);
    		outStream.write('\n);
    		received = bufRead.readLine().trim();
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    	return received;
    }
    


    J'ai utilisé un moniteur de port pour voir ce que j'envoie pour chaque caractère et par exemple au lieu d'envoyer le caractère 'b', mon programme envoie 'b' puis '.' ceci étant indépendant de ma volonté... Je n'ai jamais demandé à ce qu'un '.' soit envoyé. Est-ce normal ?

    Quelqu'un aurait-il le même problème ?

    Je vous remercie d'avance pour votre aide !
    • Partager sur Facebook
    • Partager sur Twitter
      22 juin 2009 à 13:34:43

      Juste une question, que fait la méthode trim ?
      Sinon moi je me demande si tu n'a pas oublié de faire une flush avant l'envoi du caractère.

      Mmmm... moi j'avais aussi eu un moment donné des points en trop mais c'était en utilisant la méthode received de la classe DatagramSocket, enfin, je n'envoie jamais un seul caractère en général, et là tu mélange des char et des String, received c'est un String vide d'après ce que je vois et ton flux de sortie contient des chars.
      String chaine = order + "\n";
      outStream.write(chaine);
      outStream.flush();
      

      Chez moi ça, ça marche en tout cas, là tu te complique un peu la vie je crois.

      • Partager sur Facebook
      • Partager sur Twitter

      Problème envoi caractère port série

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown