Bonjour,
Il faut juste copier dans le bon emplacement que je l'ai déjç te donner.Pour faire une vérification tu dois aller dans ton projet au niveau d'Eclipse et tu cherches dans les librairie JRE s'il y'a comm.jar si tu le trouve alors c bon
Pour le code que j'itulise:
Afficher la liste des ports disponibles dans la machine:
package Commande;
import java.io.*;
import java.util.*;
import javax.comm.*;
public class affichePort {
private Enumeration listPort;
private CommPortIdentifier IdPort;
private SerialPort portSerie;
public affichePort()
{
listPort = CommPortIdentifier.getPortIdentifiers();
System.out.println("Listage des ports trouvés:" );
System.out.print("List des ports disponibles sur la machine windows:\n");
while (listPort.hasMoreElements()) {
IdPort = (CommPortIdentifier) listPort.nextElement();
if (IdPort.getPortType() == CommPortIdentifier.PORT_SERIAL) {
System.out.println(IdPort.getName());
}
}
}
}
Communique avec le port:
package Commande;
//import gnu.io.*;
import javax.comm.*;
import javax.swing.JOptionPane;
import java.io.*;
import java.util.*;
public class communiquePort {
//déclarration des variables
private Enumeration listPort;
private CommPortIdentifier IdPort;
private SerialPort portSerie;
BufferedReader in;
OutputStream out;
/**
* Fonction:Conversion du code ASCII
* @param ascii
* @return
*/
public static String charOf(int ascii)
{
byte[] b=new byte[]{(byte)ascii};
String c=new String(b);
return c;
}
/**
* Constructeur qui permet de communiquer avec un port donné comme paramêtre
* @param Port
*/
//Créer un constructeur
public communiquePort(String Port)
{
listPort = CommPortIdentifier.getPortIdentifiers();
while (listPort.hasMoreElements()) {
IdPort = (CommPortIdentifier) listPort.nextElement();
if (IdPort.getPortType() == CommPortIdentifier.PORT_SERIAL)
{
if (IdPort.getName().equals(Port))
{
System.out.println("Le port: "+IdPort.getName()+" est bien trouvé");
try {
//ouverture du port série:
/**
* Ouverture du port
*/
IdPort=CommPortIdentifier.getPortIdentifier(Port);
portSerie=(SerialPort)IdPort.open("Envoi",2000);
System.out.println("Ouverture du port......");
/**
* Configuration du port
*/
portSerie.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
System.out.println("Configuration du port détecté\n Vitesse: "+portSerie.getBaudRate()+"\n Data bit: "+portSerie.getDataBits()+"\n Stop bit: "+portSerie.getStopBits()+"\n Parité: "+portSerie.getParity());
/**
* Communication avec la pointeuse
*/
//pour lire et écrire avec des streams:
in=new BufferedReader(new InputStreamReader(portSerie.getInputStream()));
out = portSerie.getOutputStream();
//Tester la lecture/écriture sur le port série
//La trame à envoyer
String trame="La trame utilisée et qui ça depend su terminal";
System.out.println("La trame envoyée est: "+trame);
byte[] b = trame.getBytes();
System.out.println(b);
out.write( b, 0 , b.length );
System.out.println("Conversion du trame en byte: "+trame.getBytes());
/*System.out.println(trame.getBytes());
System.out.println(trame.getBytes());*/
int i=in.read();
String reponse=in.readLine();
System.out.println("La réponse est: "+reponse+" nbr: "+i);
/**
* fermeture
*/
in.close();
out.close();
portSerie.close();
}
catch (Exception e) {System.out.println(e.getMessage());}
}
}
}
}
}
Menu princimal pour l'appel ç ces classes:
package Commande;
public class Menu
{
public static void main(String[] args)
{
affichePort aP=new affichePort();
communiquePort cP=new communiquePort("Le port disonible sur la machine");
}
}
Pour moi c tous ce que je fais et ça marche très bien.
Rq:Tu travailles avec quel version de java comm et sous quel IDE?
Dans tous les cas j'attends ta réponse.