C++ Telegram Endlos Abfrage bitte um Hilfe

OP #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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.