C++ Telegram Endlos Abfrage bitte um Hilfe

#6769006
Lesenswert?

Servus , wer kann mir helfen den Code zu verstehen, 
while(numNewMessages)

Telegram Bot Endlosschleife !

void loop() {
  if (millis() > lastTimeBotRan + botRequestDelay)  {
    int numNewMessages = bot.getUpdates(bot.last_message_received + 1);

    while(numNewMessages) {
      Serial.println("got response");
      handleNewMessages(numNewMessages);
      numNewMessages = bot.getUpdates(bot.last_message_received + 1);
    }
    lastTimeBotRan = millis();
  }


Danke
#6769408
Lesenswert?

706231 1. schrieb:
> Servus , wer kann mir helfen den Code zu verstehen,
1
//Irgendeine Funktion mit dem namen "loop" ohne Parameter oder Rückgabewert
2
void loop() 
3
{ 
4
  if (millis() > lastTimeBotRan + botRequestDelay) 
5
//Falls der Rückgabewert der Funktion millis() größer als die Summe der Variablen "lastTimeBotRan" und "botRequestDelay" ist, führe aus: 
6
  { 
7
    int numNewMessages = bot.getUpdates(bot.last_message_received + 1);  
8
//Deklaration einer neuen, lokalen Variable mit dem Namen "numNewMessages" vom Typ "int"
9
//Aufrufen der Funktion "getUpdates" aus der Klasse "bot", mit dem um 1 inkrementierten Wert der Variablen "last_message_received" aus der Klasse "bot", als Parameter
10
//Initialisieren von "numNewMessages" mit dem Rückgabewert.
11
    while(numNewMessages) 
12
//Führe aus, solange "numNewMessages" größer als 0 ist:
13
    {
14
        Serial.println("got response");
15
//Rufe die Funktion "println" aus der Klasse "serial" mit dem string "got response" auf => vmtl. Ausgabe desselben auf eine serielle Schnittstelle    
16
        handleNewMessages(numNewMessages);
17
//Aufrufen der Funktion "handleNewMessages" mit dem Wert der Variablen "numNewMessages"
18
        numNewMessages = bot.getUpdates(bot.last_message_received + 1);
19
//siehe oben   
20
    }//while ende
21
    lastTimeBotRan = millis();
22
//Zuweisen des Rückgabewertes von milis() an eine Variable "lastTimeBotRan"
23
  }//if ende
24
// syntax error
(Firma: Torrox.de) #6769510
Lesenswert?

PittyJ schrieb:
> Die Kommentare sollten eigentlich schon in dem Originalcode stehen.
> Warum schreiben so viele Leute ihren Code ohne Kommentare?

Weil der Code mit etwas Übung sehr einfach zu lesen ist. Wenn im 
Kommentar das Selbe steht, wie im Code dann fügt er (der Kommentar) 
keinen Nutzen hinzu. Im Gegenteil: der Leser muss ständig den Kommentar 
mit dem Code abgleichen.
Gast #6770076
Lesenswert?

Nasenbaer schrieb:
> Der OP wollte die Zeieln erklärt haben, das hat @elmo64 perfekt getan!

Nein.

 - Er verwechselt Deklaration mit Definition.
 - Er verwechselt Klasse und Objekt.
 - Eine Methode bezeichnet er fälschlich als Funktion.
 - Argumente bezeichnet er fälschlich als Parameter.
 - "numNewMessages" wird nicht auf größer Null getestet, sondern
   auf ungleich Null.
#6770188
Lesenswert?

Hallo,

ich korrigiere noch den Logikfehler mit dem Zeitvergleich und alles ist 
in Butter. Ansonsten stimmt das bei/nach einem Überlauf nicht mehr.
1
if (millis() - lastTimeBotRan >= botRequestDelay) {
2
  int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
3

4
  while (numNewMessages) {
5
    Serial.println("got response");
6
    handleNewMessages(numNewMessages);
7
    numNewMessages = bot.getUpdates(bot.last_message_received + 1);
8
  }
9
  lastTimeBotRan = millis();
10
}

Mehr kann ich zu dem Schnipsel dazu nicht sagen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren