Communication série

Fermé
eclipsia - 23 févr. 2009 à 17:45
 loupius - 23 févr. 2009 à 18:50
Bonsoir,
J'ai une question et problème.

Question:
Pour tester la communication série est ce qu'il faut brancher quelque chose dans le port série?

Problème:
j'ai déjà suivi les démarches pour l'installation de l'API javacomm et lorsque je vérifie les matériels je trouve qu'il y a 2 com(com5 et com6).
Voici mon code:

package Console;
import javax.comm.*;
import java.io.*;
import java.util.*;
/*
# Cette classe permet de tester les ports séries disponibles
# en les listant puis en créant un stream d'entrée et de sortie
# */
public class TestComS{
CommPortIdentifier portId;
BufferedReader in;
PrintWriter out;
SerialPort serialPort;

/*
# Constructeur de la classe test qui prend en paramètre le port série à utiliser.
# Dans un premier temps on liste les ports disponibles sur le pc
# */
public TestComS (String com)
{
System.out.println("liste des ports série disponibles:" );
listePortsDispo();
try
{
// ouverture du port série:
portId=CommPortIdentifier.getPortIdentifier(com);
serialPort=(SerialPort)portId.open("Envoi",2000);


// on sélectionne tous les paramètres de la connexion série:
serialPort.setSerialPortParams(1200,SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
System.out.println("Ouverture du port "+com);


// pour lire avec des streams:
in=new BufferedReader(new InputStreamReader(serialPort.getInputStream()));

// Teste de lecture sur le port série

String codeBarre = new String();
try {
//lecture du buffer et affichage
codeBarre = (String) in.readLine();
System.out.println(codeBarre);
} catch (IOException e) {
}
in.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}//fin constructeur

public void listePortsDispo()
{
System.err.println("recherche..." );
Enumeration portList=CommPortIdentifier.getPortIdentifiers();
if (portList==null)
{
System.err.println("Aucun port de communication détecté" );
return;
}
while (portList.hasMoreElements())
{
portId=(CommPortIdentifier)portList.nextElement();
System.out.println("* "+portId.getName());
} //fin while
} //fin de la methode listePortsDispo()

/*
# Methode main qui permet de tester notre classe de tester en ouvrant une connexion sur le port COM1.
# */
public static void main(String args[])
{
new TestComS ("COM6" );
}//fin du main
}//fin de la classe

et voilà ce que je reçu au niveau de la console:

liste des ports série disponibles:
recherche...
javax.comm.NoSuchPortException
at javax.comm.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:105)
at Console.TestComS.<init>(TestComS.java:26)
at Console.TestComS.main(TestComS.java:80)



j'attends vos réponses.

C'est urgent.

*Merci*

1 réponse

Si on veut tester, il vaut mieux mettre quelque chose; en général on met un bouchon dit null-modem; ceci permet de négliger les signaux afin de pouvoir émettre et recevoir ce que l'on a émis.
Pour cela il faut réunir les broches suivantes (pour un connecteur 25 broches):
2 et 3,
4 et 5,
6 et 8 et 20.
0