Bonjour,
Je suis en train de développé une application qui lit les données colléctés par un capteur <moteiv> avec java.
alors j'ai essaié d'utilisé api javax.comm pour la communication avec le port .
je veux savoir la methode correct pour le faire .
je veu savoir la forme des trame envoyé par le capteur
j'utilise le code suivant :

//-------------------------------------------------------------------------

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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import java.io.*; 
import javax.comm.*; 
import java.util.*; 
 
public class PortReader implements SerialPortEventListener { 
static Enumeration ports; 
 
static CommPortIdentifier pID; 
 
InputStream inStream; 
 
 
private BufferedReader fluxLecture; 
 
SerialPort serPort; 
 
//vitesse de transmission 
private int vitesse; 
 
public PortReader() throws Exception{ 
serPort = (SerialPort) pID.open("PortReader", 2000); 
inStream = serPort.getInputStream(); 
//On ajoute un auditeur qui écoute sur la substance provenant du port série 
serPort.addEventListener(this); 
 
serPort.notifyOnDataAvailable(true); 
 
serPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, 
SerialPort.PARITY_NONE); 
} 
 
public void serialEvent(SerialPortEvent event) { 
switch (event.getEventType()) { 
case SerialPortEvent.BI: 
System.out.println("SerialPortEvent.BI occurred"); 
case SerialPortEvent.OE: 
System.out.println("SerialPortEvent.OE occurred"); 
case SerialPortEvent.FE: 
System.out.println("SerialPortEvent.FE occurred"); 
case SerialPortEvent.PE: 
System.out.println("SerialPortEvent.PE occurred"); 
case SerialPortEvent.CD: 
System.out.println("SerialPortEvent.CD occurred"); 
case SerialPortEvent.CTS: 
System.out.println("SerialPortEvent.CTS occurred"); 
case SerialPortEvent.DSR: 
System.out.println("SerialPortEvent.DSR occurred"); 
case SerialPortEvent.RI: 
System.out.println("SerialPortEvent.RI occurred"); 
case SerialPortEvent.OUTPUT_BUFFER_EMPTY: 
System.out.println("SerialPortEvent.OUTPUT_BUFFER_EMPTY occurred"); 
break; 
case SerialPortEvent.DATA_AVAILABLE: 
System.out.println("SerialPortEvent.DATA_AVAILABLE occurred"); 
 
byte[] readBuffer = new byte[20]; 
String codeBarre = new String(); 
byte buffer [ ] = new byte [20] ; 
try { 
while (inStream.available() > 0) { 
int k = inStream.read(readBuffer); 
vitesse=serPort.getBaudRate();//serPort.getBaudRate() 
 
fluxLecture =new BufferedReader(new InputStreamReader(serPort.getInputStream())); 
 
DataInputStream data = new DataInputStream (serPort.getInputStream()) ; 
 
 
 
} 
// for (int i = 0 ; i != buffer.length ; i++) 
//System.out.print ( (char) buffer [i]) ; 
//codeBarre = fluxLecture.readLine(); 
//System.out.println(" vitesse->"+vitesse); 
//System.out.println(" read->"+inStream.read(readBuffer)); 
//System.out.println(" donnees->"+fluxLecture); 
//System.out.println(" ->"+data ); 
} catch (IOException ioe) { 
System.out.println("Exception " + ioe); 
} 
break; 
} 
} 
 
public static void main(String[] args) throws Exception{ 
ports = CommPortIdentifier.getPortIdentifiers(); 
 
while (ports.hasMoreElements()) { 
pID = (CommPortIdentifier) ports.nextElement(); 
//System.out.println("Port " + pID.getName()); 
 
if (pID.getPortType() == CommPortIdentifier.PORT_SERIAL) { 
if (pID.getName().equals("COM17")) { 
PortReader pReader = new PortReader(); 
System.out.println("COM 17 found"); 
} 
} 
} 
} 
 
}