La forme des trames colléctés par un capteur

Fermé
RAFFMANN Messages postés 3 Date d'inscription vendredi 4 juin 2010 Statut Membre Dernière intervention 4 juin 2010 - 4 juin 2010 à 03:36
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 :

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

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");
}
}
}
}

}