Bluetoothdaten auswerten...

ok danke serenifly, wieviel ich hier noch lerne also muss ich an meine eigentliche Nachricht noch "\r\n"
anhängen?
edit:
Also reicht doch "\n"?
ich steige jetzt nicht mehr durch....:smiley:

Du willst nur ein LF. Das CR schadet bei sowas nicht unbedingt, ist aber überflüssig

also weiß der arduino wenn ich ein \cr schicke dass es ein '\n' ist ? denn der code prüft aktuell auf

c == '\n'

Vergiss das mit dem CR. Dein Endzeichen ist das LF. Wenn man auf LF abfragt (wie in dem Code), dann passt es auch wenn man auf der Gegenseite mal println() o.ä. macht (irgendwann wurde in Windows mal festgelegt das ein Zeilenende CR + LF ist). Dann wird das CR je nach Code vielleicht eingelesen (man kann es auch ignorieren), aber es stört Konvertierungsfunktionen wie atoi() nicht wenn es am Ende steht

Aber normal reicht es ein LF per Hand zu senden! z.B. print('\n')

Hi

Tommy56:
Ich verwechsel die Beiden seit 40 Jahren :wink:

Vll
\r wie Return
\n wie liNefeed

(ähnlich der Hex-Ziffer C für Cwölf und D für Dreizehn)

... die Zukunft wird zeigen, ob's in den Kopf rein passt ...

MfG

öhhhhm,
also lf ist ja \n das geht nicht und ich habe aktuell kein println (terminal ohne gimmiks);

terminal ohne gimmiks

Vorhin war es kein Terminal sondern ein selbst geschriebenes Programm...

Dann mach print('\n'), write('\n') oder was auch immer man da tun muss. Was ist daran so schwer? Du hast es doch schon geschafft Text zu senden. Steuerzeichen sind auch nichts anderes

ja es wird ein Programm aber, ich kompiliere nicht 100 mal ein Programm, installiere es dann am Handy usw.
Deshalb teste ich aktuell alles mit einem Bluetooth-Terminal und wiegesagt ich schicke ein "\n" und es geht NICHT

Dann zeige Dir doch mal auf Arduino-Seite an, was da wirklich ankommt.
Serial.println(c,HEX); ist Dein Freund.

Gruß Tommy

Kannst du das Terminal so einstellen, dass ein Linefeed bei der Eingabe automatisch angehängt wird? Wenn nicht schickst du sehr wahrscheinlich kein LF.

Was vielleicht noch geht ist es so einstellen dass man Dezimal schickt, statt ASCII. Dann kann man 10 senden (Was etwas anderes wie "10" ist!). Oder A in Hexadezimal

Was dir auch vielleicht hilft ist das Programm mal ohne Bluetooth mit einer ganz normalen USB Verbindung zum PC zu testen

ok hier ist der Output:

30
3A
43
3A
32
35
35
2C
32
35
35
2C
32
35
35
5C
6E

was kann ich damit jetzt anfangen?
und nein ich kann es nicht umstellen

Genau was icht gedacht habe. Du tippst "\n" ein. Es sollte doch klar sein dass das nicht geht. Selbst ohne das auszuprobieren

Schau dir die ASCII Tabelle an:

Solche Grundlagen solltest du kennen wenn du sowas machst. Du musst nicht die ASCII Tabelle auswendig kennen. Aber dir sollte klar sein was da gesendet wird. Also dass jedes Zeichen einen Zahlencode hat und dass es unterschiedliche Arten gibt die Zeichen darzustellen (ASCII, Dezimal, Hex)

die these hatte ich auch aber wenn ich im arduino serial monitor das ganze eingebe geht es ja:(
wie kann ich das jetzt am galantesten umgehen? einfach ein anderes Endzeichen verwenden?

tjard-frischling:
die these hatte ich auch aber wenn ich im arduino serial monitor das ganze eingebe geht es ja

Ja, weil du den wie jedes richtige Terminal Programm so einstellen kannst, dass ein Endzeichen automatisch gesendet wird wenn man Enter drückt. Das kann man auch weglassen. Dann geht es genauso wenig. Das ist mir auch schon passiert.

wie kann ich das jetzt am galantesten umgehen? einfach ein anderes Endzeichen verwenden?

Als Endzeichen kommen nur Steuerzeichen (das sind die ersten 32 Zeichen der ASCII Tabelle) in Frage. Entweder herausfinden wie du nicht-druckbare Zeichen senden kannst oder ein anderes Programm verwenden

Gingen nicht auch druckbare Zeichen, die ich nicht verwende?

Ja, schon. Als Notlösung. Aber muss da ja auch so gehen. Ein Programm dass keine Steuerzeichen senden kann ist irgendwie nutzlos.