Bluetooth Werte speichern

  • Antworten:5
Debutant
  • Forum-Beiträge: 3

17.07.2016, 20:59:47 via Website

Hallo zusammen.

Ich entwickele meine erste App mit Android Studio.

Mein Ziel ist es Daten, die über Bluetooth empfangen werden zu speichern.

Diese sollen zwar noch verarbeitet werden und nur bestimmte Daten gespeichert werden, aber zunächst nehme ich mir das einfache Speichern vor.

Ein Schubs in die richtige Richtung wäre toll, da ich jetzt viele unterschiedliche Ansätze gesehen habe aber nicht wirklich durchgestiegen bin.

Bisher funktioniert:

Bluetooth-Kommunikation.
Zeichen können von der App erfolgreich gesendet werden.

Muss ich die empfangenen Daten lesen, Variablen zu weisen, dann abspeichern? Pfad zuweisen? Format angeben?

Macht es einen Unterschied ob ich auf SD-Karte oder internen Speicher die Daten verwalte in der Programmierung?

Es handelt sich hierbei um einen Netto-BaudWert von ca. 150000.

Wäre nett wenn jemand Licht ins Dunkeln bringen könnte.

Vielen Dank.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.07.2016, 21:02:59 via App

Hallo Debutant!
Herzlich wilkommen hier im Forum!



Am besten du speicherst die Daten in einem geeigenten datenmodel in einer DB. Da kannst du das auch auswerten etc..
Speichern geht auch, erst musst du die Bluetooth Daten interpretieren und als Varaibeln/ in ein Objekt schreiben. Dann kannst du die Daten per SQlite helper spwichern und später auch wieder laden

— geändert am 17.07.2016, 21:03:22

LG Pascal //It's not a bug, it's a feature. :) ;)

Debutant

Antworten
Debutant
  • Forum-Beiträge: 3

20.07.2016, 04:56:34 via Website

Hallo Debutant!
Herzlich wilkommen hier im Forum!

Dankeschön.

Ich habe es irgendwie hinbekommen, einen Ordner zu erstellen und die Daten da zu speichern.

Das Problem ist, alles im nicht ASCII-Format geht in Fragezeichen unter und nur die Strings werden richtig gelesen (was nicht notwendig wäre).

Der µC sendet reine Rohwerte, alles in Binärformat, 1Start/Stoppbit.

Es ist keine Zeit dazu da, die Werte in Char zu konvertieren und noch weniger diese mit seiner Baud zu senden.

Deshalb binär.

Mein Code ist folgender:

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;
                        String path = "/sdcard/" + dateipfad.getText().toString() + ".txt";  //Environment.getExternalStorageDirectory().getPath()






                        while ((endOfLineIndex = sb.indexOf("|")) >= 0) {                  // wenn end-of-line,
                            String sbprint;                                                 // extrahiere String
                            sbprint = sb.substring(0, endOfLineIndex);
                            sb.delete(0, sb.length());                                     



                            try {
                                File myFile = new File(path);
                                myFile.createNewFile();
                                FileOutputStream fOut = new FileOutputStream(myFile, true);
                                OutputStreamWriter myOutWriter =
                                        new OutputStreamWriter(fOut);
                                myOutWriter.append(sbprint  + "\n"   );
                                myOutWriter.close();
                                fOut.close();

Ich habe versucht die reine Bin-Formate zu lesen/Speichern, will mir aber nicht gelingen, wie kann ich daraus die Binäre Werte generieren und speichern ohne groß Hin und Her zu wandeln? Und diese in Art UTF-8 Format abzulegen?

Vielen Dank!

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

20.07.2016, 15:58:44 via Website

Binäre werte kannst du nicht generieren, du musst diese lesen.
Wenn du weißt welche bytes im Array was bedeuten, sollte das kein Problem sein. Am beseten du benutzt ein Prtokoll zur Übertragung dann kannst du das am besten interpretierenu und die Werte lesen und speichen

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Debutant
  • Forum-Beiträge: 3

20.07.2016, 21:17:02 via Website

Danke Pascal.

weißt du wie ich einfach rohe Werte unverarbeitet (d.h. nicht in String-Formatiert) Werte speichern kann, egal ob DEC,Hex,BIN... ?

Meine Versuche führen bisher zu nix.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

21.07.2016, 10:28:46 via Website

Binary einfach per Stream in einen File schreiben, musst halt dann später den Binaryfile lesen und verarbeiten.
Oder direkt auswerten und in eine DB/XML etc.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten