Bonjour,

Je cherche à afficher puis stocker les informations reçues par mon port série COM1.

Voici mon code:
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
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 Lecture{
    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 Lecture (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(300,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();
        }
    }
 
    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());
        }
    } 
 
    public static void main(String args[])
    {
        new Lecture ("COM1" );
    }
}
Voici ma console:
Liste des ports série disponibles :
recherche...
javax.comm.NoSuchPortException
at javax.comm.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:105)
at Lecture.<init>(Lecture.java:24)
at Lecture.main(Lecture.java:71)
Pour information, la communication fonctionne très bien puisqu'avec le logiciel HyperTerminal je peux voir les informations reçues au fil de l'eau.

Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?

Merci d'avance pour votre aide.