INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Ergebnis lässt sich nicht speichern?
30.08.2015, 16:01
Beitrag #1
Ergebnis lässt sich nicht speichern?
String autorisierteshandy = "5A020C";
String gefundeneshandy = "nix";

if (h >= 42) { // Langes ergebnis = Bluetooth Gerät gefunden
char *id = readSerial(h);
char *str;
while ((str = strtok_r(id, "\n", &id)) != NULL) {
if (strlen(str) - 1 > 17) { < alle ergebnisse ignorieren ausser handy id
String gefundeneshandy(str);
gefundeneshandy.remove(0, gefundeneshandy.indexOf(',') + 1);
Serial.println(gefundeneshandy);
if (gefundeneshandy.indexOf(autorisierteshandy) >= 0) {
autorisiert = 1;
}
}

Der Code funktionier gut, aber nach verlassen der while schleife ist das gefundeneshandy wieder wie ursprünglich "nix"...

Mir gelingt es nicht, den mit remove gekürzten String in der gefundeneshandy variable zu speichern.

Ein versuch mittels
gefundeneshandy = gefundeneshandy.remove(0, gefundeneshandy.indexOf(',') + 1);
zu speichern schlug fehl (compiler fehler)
ebenso wie viele andere Versuche...
Ich bin anfänger... hoffe Ihr könnt mir helfen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.08.2015, 17:01
Beitrag #2
RE: Ergebnis lässt sich nicht speichern?
Hallo schuballaa,
kann es sein, dass
Zitat:String autorisierteshandy = "5A020C";
String gefundeneshandy = "nix";
irgendwo oben beim setup() steht und
Zitat:if (h >= 42) { // Langes ergebnis = Bluetooth Gerät gefunden
char *id = readSerial(h);
char *str;
while ((str = strtok_r(id, "\n", &id)) != NULL) {
if (strlen(str) - 1 > 17) { // alle ergebnisse ignorieren ausser handy id
String gefundeneshandy(str);
gefundeneshandy.remove(0, gefundeneshandy.indexOf(',') + 1);
Serial.println(gefundeneshandy);
if (gefundeneshandy.indexOf(autorisierteshandy) >= 0) {
autorisiert = 1;
}
}
in einer eigenen Funktion?
Wenn ja ist es kein Wunder, denn gefundeneshandy wird zweimal deklariert, einmal oben und einmal in der Funktion? Die Variable oben wird garnicht angefasst und steht wahrscheinlich immer auf "nix".
Ist insgesamt Rätselraten, da ich weiß, dass du nicht den kompletten Code geschickt hast. So fehlen die Zusammenhänge und man erkennt nicht wirklich was du erreichen möchtest.Den Code auch besser mit dem "#"-Symbol eingrenzen, liest sich besser.
Du solltest folgenden Hinweis für strtok_r() beachten:
Zitat:Be cautious when using these functions. If you do use them, note that:
These functions modify their first argument.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.08.2015, 17:07 (Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2015 17:09 von hotsystems.)
Beitrag #3
RE: Ergebnis lässt sich nicht speichern?
So wie ich es sehe, setzt du die Variable doch am Anfang der loop wieder auf "nix".
Evtl. Stellst du mal den kompletten code rein, dann wird es auch übersichtlicher.

Edit:
Ok, Ricardo war schneller.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Bilder bzw. Informationen von RGB LEDs speichern AC_DC_new 7 285 07.06.2018 15:01
Letzter Beitrag: Tommy56
  TFT Display will nicht so wie ich Franzel007 10 624 12.05.2018 09:28
Letzter Beitrag: amithlon
  Neuling kommt nicht weiter, ws2812 If abfragen Tabata 8 754 19.04.2018 14:07
Letzter Beitrag: Tommy56
  millis() zählt nicht weiter sowerum 8 624 09.04.2018 17:55
Letzter Beitrag: Tommy56
  Windmesser auslesen will noch nicht so recht klappen.. Stargazer 12 764 05.04.2018 10:54
Letzter Beitrag: amithlon
  Bootlader Brennen funktioniert nicht Ardusil 6 525 18.03.2018 10:53
Letzter Beitrag: hotsystems
  Bool wird nicht umgesetzt Wampo 3 388 10.03.2018 23:04
Letzter Beitrag: Tommy56
  NTC für LCD-Anzeige.Weiter bekomme ich nicht hin malsehen 17 1.187 09.03.2018 20:28
Letzter Beitrag: malsehen
  328P geht nicht mehr [gelöst] Harry 37 3.009 04.03.2018 19:57
Letzter Beitrag: Harry
  UDP Paket über UART senden (nicht SPI) Wampo 9 775 04.03.2018 18:49
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste