lire un mot complet en java (rs232)
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 .
Code:
1 2 3 4 5 6
| public void writetoport(String s) {
System.out.println("Writing \""+s+"\" to "+serialPort.getName());
try {
outputStream.write(s.getBytes());
} catch (IOException e) {}
} |
un appelle :
mon probléme est :
[CODE]
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 ).
voila le code :
Code:
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
| 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) {}
} |
sur le console de netbeans je obtenir ca :
Code:
1 2 3
| read : *
read : l
read : O... |
d'où je doit faire comme ca :
Code:
1 2 3 4 5 6 7 8
| 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 LOGIN[i]= result;
i++; |
je sais pas comment faire ca en java car j'ai des erreurs dans le syntaxe