Hallo zusammen, ich bin neu in Java. Mein Ziel ist es Messdaten die ich am Handy empfange (µC+Bluetooth) auf meine SD-Karte zu speichern. Dies gelingt schon mal. Nur bekomme ich in meiner Text-Datei lauter ? ? ? ? ? ? (Fragezeichen zurück). Ist auch nicht verwunderlich, der Fehler ist klar, nur wie ich auf die Lösung komme nicht.
Das Handy wandelt Empfangenes in einen String. Versendet werden aber reine Roh-werte in Binär.
1 Startbit- 8bit- 1 Stopbit. Habe schon versucht richtig zu wandeln aber es hat nichts geändert.
Die Daten können nur auf der Handy-Ebene gewandelt werden.
Mein folgender Code ist dieser:
Danke im Voraus!
Das Handy wandelt Empfangenes in einen String. Versendet werden aber reine Roh-werte in Binär.
1 Startbit- 8bit- 1 Stopbit. Habe schon versucht richtig zu wandeln aber es hat nichts geändert.
Die Daten können nur auf der Handy-Ebene gewandelt werden.
Mein folgender Code ist dieser:
Java:
h=new
Handler() {
public void handleMessage (android.os.Message msg){
switch (msg.what) {
case RECIEVE_MESSAGE: // wenn Daten empfangen werden
byte[] readBuf = (byte[]) msg.obj;
String strIncom = new String(readBuf, 0, msg.arg1); // erstelle String aus Bytes Array
sb.append(strIncom); // String anhängen
int endOfLineIndex;
while ((endOfLineIndex = sb.indexOf("|")) >= 0) { // wenn end-of-line,
String sbprint; // extrahiere String
sbprint = sb.substring(0, endOfLineIndex);
sb.delete(0, sb.length()); // und löschen
// txtArduino.setText("Daten vom MSP430: " + strIncom); // update
try {
FileOutputStream fOut = new FileOutputStream(myFile, true);
OutputStreamWriter myOutWriter =
new OutputStreamWriter(fOut);
myOutWriter.append(sbprint);
myOutWriter.close();
fOut.close();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}
}
break;
}
Danke im Voraus!
Zuletzt bearbeitet von einem Moderator: