Hallo an alle ,
ich bin am Verzweifelt.
Ich arbeite mit einer Serieller Kommunikation. Dieser part funktioniert auch perfekt aber wenn ich mit den Werten arbeiten will bekomme ich zeitliche / synchron? Probleme!
Hier erst mal die Codes :
Wenn ein Signal von der Serielle Schnittstelle kommt reagiert diese Klasse! Er ruft bei vorhandene Daten als erstes einen Text an die Konsole und ruft die Methode serialPortDatenVerfuegbar().!
Bis hierher funktioniert auch alles denn in der Eclipse Konsole erscheint auch der Text!
So nun die Methode. Hier wird der InputStream (Es sind Zahlen von 1-1000) ausgelesen und in einem String zusammengesetzt! um die einzelnen Bytes wieder in einem Wert zu sammeln! contwert ist im oberen Teil meines Scrips als String definiert! Nach dem keine weitere Bytes kommen verlässt er die while schleife und gibt einmal in der Console den String aus! Bis hierher TOP! nun kommt mein Problem ich parse den String in einen Integer damit ich damit arbeiten kann! und rufe die methode Spiel501() auf!
mit der Methode mache ich nichts anderes wie die Buttons mit neuen Werten zu beschreiben! (gleich vorab alle Buttons mit Panel sind definiert und funkt auch alles!)
Mein Problem ist das wenn ich den Wert parse das Feld2 nicht neu beschrieben wird. Als Test habe die umwandlung entfernt und beide buttons(feld1 und feld2) den contwert (String) anzeigen lassen und das hat auch wunderbar geklappt. Nur sobald ich umwandle verliere ich die setText funktion von feld2.!! Ich komme nicht mehr weiter weil ich verstehe nicht warum. Ich kann mir nicht vorstellen das die Umwandlung so intesiv ist das dadurch der Programmablauf nicht mehr funktioniert. (weil das er die Umwandlung macht weiß ich weil wenn gleich nach dem ersten Signaleingang (treffer) ein zweites leeres Signal(preller) kommt schreibt er den Button feld2 neu mit dem wert davor! Also wie wenn er ein part hinterherhängt.)
ich habe eigentlich noch mehr mit dem Wert vor. Der Wert soll noch benützt werden um einen anderen Wert aus einem Array zu holen und ich möchte damit noch rechnen!
Ich hoffe ihr könnt mir helfen!
Liebe Grüße aus dem Schwarzwald
ich bin am Verzweifelt.
Ich arbeite mit einer Serieller Kommunikation. Dieser part funktioniert auch perfekt aber wenn ich mit den Werten arbeiten will bekomme ich zeitliche / synchron? Probleme!
Hier erst mal die Codes :
Wenn ein Signal von der Serielle Schnittstelle kommt reagiert diese Klasse! Er ruft bei vorhandene Daten als erstes einen Text an die Konsole und ruft die Methode serialPortDatenVerfuegbar().!
Java:
class serialPortEventListener implements SerialPortEventListener {
@Override
public void serialEvent(SerialPortEvent event) {
System.out.println("serialPortEventlistener");
switch (event.getEventType()) {
case SerialPortEvent.DATA_AVAILABLE:
serialPortDatenVerfuegbar();
break;
case SerialPortEvent.BI:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.FE:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
case SerialPortEvent.PE:
case SerialPortEvent.RI:
default:
}
}
}
So nun die Methode. Hier wird der InputStream (Es sind Zahlen von 1-1000) ausgelesen und in einem String zusammengesetzt! um die einzelnen Bytes wieder in einem Wert zu sammeln! contwert ist im oberen Teil meines Scrips als String definiert! Nach dem keine weitere Bytes kommen verlässt er die while schleife und gibt einmal in der Console den String aus! Bis hierher TOP! nun kommt mein Problem ich parse den String in einen Integer damit ich damit arbeiten kann! und rufe die methode Spiel501() auf!
Java:
void serialPortDatenVerfuegbar() {
try {
byte[] data = new byte[150];
int num;
while(inputStream.available() > 0) {
num = inputStream.read(data, 0, data.length);
contwert = (new String(data, 0, num));
}
System.out.println("Empfange: "+ contwert);
zahlwert = Integer.parseInt(contwert);
Spiel501();
} catch (IOException e) {
System.out.println("Fehler beim Lesen empfangener Daten");
}
}
mit der Methode mache ich nichts anderes wie die Buttons mit neuen Werten zu beschreiben! (gleich vorab alle Buttons mit Panel sind definiert und funkt auch alles!)
Java:
public void Spiel501() {
feld.setText(""+beginn);
feld1.setText(""+contwert);
feld2.setText(""+zahlwert);
}
Mein Problem ist das wenn ich den Wert parse das Feld2 nicht neu beschrieben wird. Als Test habe die umwandlung entfernt und beide buttons(feld1 und feld2) den contwert (String) anzeigen lassen und das hat auch wunderbar geklappt. Nur sobald ich umwandle verliere ich die setText funktion von feld2.!! Ich komme nicht mehr weiter weil ich verstehe nicht warum. Ich kann mir nicht vorstellen das die Umwandlung so intesiv ist das dadurch der Programmablauf nicht mehr funktioniert. (weil das er die Umwandlung macht weiß ich weil wenn gleich nach dem ersten Signaleingang (treffer) ein zweites leeres Signal(preller) kommt schreibt er den Button feld2 neu mit dem wert davor! Also wie wenn er ein part hinterherhängt.)
ich habe eigentlich noch mehr mit dem Wert vor. Der Wert soll noch benützt werden um einen anderen Wert aus einem Array zu holen und ich möchte damit noch rechnen!
Ich hoffe ihr könnt mir helfen!
Liebe Grüße aus dem Schwarzwald