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.

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


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  328P geht nicht mehr Harry 25 644 Heute 00:26
Letzter Beitrag: Chopp
  Rotaryencoder funktioniert nicht richtig 123clever 19 339 Gestern 22:22
Letzter Beitrag: rpt007
  Echtzeituhrmodul läuft nicht scritch 64 2.751 28.01.2018 14:16
Letzter Beitrag: Tommy56
  Kennt sich jemand mit Blynk aus? torsten_156 1 259 19.01.2018 20:16
Letzter Beitrag: Tommy56
Bug I2C Displays wollen nicht mehr Der Ausserirdische 12 565 30.12.2017 17:11
Letzter Beitrag: hotsystems
  Uhr funktioniert nicht Jakob 8 547 30.12.2017 00:15
Letzter Beitrag: hotsystems
  BME280 wird nicht erkannt sowerum 14 674 10.12.2017 22:14
Letzter Beitrag: Tommy56
  Bootloader lässt sich nicht brennen?? dobermann145 10 888 21.11.2017 22:58
Letzter Beitrag: hotsystems
Sad Nano - nicht genug Speicher torsten_156 10 1.081 30.10.2017 21:40
Letzter Beitrag: MicroBahner
  NeoPixels: Sketch will nicht - Problem mit delay? Zabsi 5 767 22.08.2017 15:17
Letzter Beitrag: Tommy56

Gehe zu:


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