Witam, mam pewien problem dotyczacy danych uzyskiwanych z modułu GPS. W sposób ciagły z czytuje linie z nadajnika GPS. Jedna paczka danych zawiera 5 lini charakteryzujących się nagłowkami, moim zadaniem jest wychwycania wybranych lini. Metoda SplitMessages odpowiedzilana jest za znalezienie wśród tokenów charakterystycznego nagłowka. Jednak działa to tylko dla pierwszej iteracji w każdej następnej zachodzi coś dziwnego tak jakby "if" nie był w stanie znaleźć po raz kolejny tego samego nagłówka. Ma ktoś jakiś pomysł?
while(Connected) {
String str = RecieveMessages();
//form.append(str);
String s = SplitMessages(str);
if(s != null)
form.append(s);
try {
}
}
}
public String SplitMessages(String message) {
String str = null;
st = new StringTokenizer(message, ",");
while(st.hasMoreTokens()) {
Object ele = st.nextElement();
String s = (String)ele;
if(s.equals("$GPGGA")) {
String time = st.nextToken();
connection.setTime(time);
str = "godzina jest: " + time;
}
form.append(s + "\n");
}
return str;
}
public String RecieveMessages() {
char[] arrayChar = null;
try {
arrayChar = new char[1024];
int chars, i = 0;
// zczytywanie linia po lini
while ((chars = inStream.read()) != 13) {
arrayChar[i] = (char) chars;
i++;
}
} catch (IOException e) {
System.err.println(e);
}
return new String(arrayChar);
}