Bonjour à tous.
J'ai un petit soucis avec la librairie RXTX qui permet de lire / écrire vers les ports série.
Je travaille sous Windows.
Je pense que j'ai correctement installé la librairie, puisque j'ai ça qui s'affiche, et que lors de mes essais, j'ai réalisé le test "listage des ports", et la lib a bien trouvé le port "COM4" sur lequel je voudrais travailler :
J'essaye d'écouter une douchette scanner de code-barre, or mon code lance une exception gnu.io.PortInUseException :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Stable Library ========================================= Native lib Version = RXTX-2.1-7 Java lib Version = RXTX-2.1-7
Ma méthod main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 gnu.io.PortInUseException: Unknown Application at gnu.io.CommPortIdentifier.open(CommPortIdentifier.java:354) at deviceManager.DeviceManager.connect(DeviceManager.java:76) at deviceManager.DeviceManager.main(DeviceManager.java:56)
La méthode connect :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 try { (new DeviceManager()).connect("COM4"); } catch ( Exception e ) ...
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 void connect ( String portName ) throws Exception { CommPortIdentifier portIdentifier=CommPortIdentifier.getPortIdentifier(portName); if ( portIdentifier.isCurrentlyOwned() ) { System.out.println("Error: Port is currently in use"); } else { CommPort commPort = portIdentifier.open( this.getClass().getName(), 2000 ); if ( commPort instanceof SerialPort ) { SerialPort serialPort = (SerialPort) commPort; serialPort.setSerialPortParams( 9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE ); InputStream in = serialPort.getInputStream(); serialPort.addEventListener(new SerialReader(in)); serialPort.notifyOnDataAvailable(true); } else { System.out.println("Error: Only serial ports are handled by this example."); } } }
Donc, je pense qu'il y a quelque chose que je n'ai pas compris.
En effet, c'est normal que le port soit "InUse", puisque je veux justement l'écouter ...
Partager