pikamo
Messages postés34Date d'inscriptiondimanche 21 mars 2010StatutMembreDernière intervention21 novembre 2012
-
13 avril 2010 à 18:51
pikamo
Messages postés34Date d'inscriptiondimanche 21 mars 2010StatutMembreDernière intervention21 novembre 2012
-
15 avril 2010 à 21:09
salut ,
Voilà j'ai un petit pb,si qqun pourrait m'aider,
ça serait super sympa car là je suis un peu coincé.
je doit récupère le login et mot de passe envoyé sur le port rs232 .
1ére je doit envoyé une lettre par exemple "d" ,j'ai bien réussir a l'envoyer
public void writetoport(String s) {
System.out.println("Writing ""+s+"" to "+serialPort.getName());
try {
outputStream.write(s.getBytes());
} catch (IOException e) {}
}
un petite appelle :
public void run() {
initwritetoport();
/* écrit une chaîne dans le port, le serialEvent vais le lire*/
writetoport("d");
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(rs232.class.getName()).log(Level.SEVERE, null, ex);
}
}
mon probléme est :
public void serialEvent(SerialPortEvent event) {
switch (event.getEventType()) {
case SerialPortEvent.BI:System.out.println("message lu OE");break;
case SerialPortEvent.OE:
case SerialPortEvent.FE:
case SerialPortEvent.PE:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:
readformport();
break;
}
}
public void readformport () {
byte[] readBuffer = new byte[400];
try{
int avaibleBytes = inputStream.available();
if (avaibleBytes > 0){
inputStream.read(readBuffer,0,avaibleBytes) ;
String result = new String(readBuffer,0,avaibleBytes);
System.out.println("Read: "+result);
}
}catch (IOException e) {}
}
Read : a
Read : b
Read :c
mais je doit avoir read: abc (par exemple c'est le login et apres le mot de passe )
comment je doit faire méme des mots clés pour chercher .
merci d'avance
pikamo
Messages postés34Date d'inscriptiondimanche 21 mars 2010StatutMembreDernière intervention21 novembre 2012 14 avril 2010 à 18:48
salut,
merci Julien39 pour la réponse.
mais j'ai pas comprit la fonction de cette class et même j'ai essaye de l'appliquer (après la changement de variable bien sur ) mais j'ai pas réussir.
j'ai une autre idée a faire :
les données vent de port sont sous ce forme :
* login # ( avec la taile de login 5 , * le début et # le fin ) *1234# ( le mot de passe avec la taille est 4 ).
d'où :
read : *
read : l
read : O...
après
if (String result.equals("*" ))
si *true ==>
String LOGIN = new String(); /* on vide la vaiable où on va stoker */
mettre dans LOGIN
else if (String result.equals('#'))
System.out.println ( "ma chine :"+LOGIN);
else [u]LOGIN[i] = result;
i++;