Timeout für while-Endlosschleife

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

jp112sdl
Beiträge: 12072
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 846 Mal
Danksagung erhalten: 2138 Mal
Kontaktdaten:

Re: Timeout für while-Endlosschleife

Beitrag von jp112sdl » 05.12.2020, 13:10

Du verwendest ein while() in einem while()

Das wird tatsächlich nicht abgebrochen. :shock:

Oder es dauert einfach nur ewig (500000 x 500000 Durchläufe) :?: :?: :?:

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

dtp
Beiträge: 10655
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Timeout für while-Endlosschleife

Beitrag von dtp » 07.12.2020, 12:16

jp112sdl hat geschrieben:
05.12.2020, 13:10
Du verwendest ein while() in einem while()
Jupp. Geht leider nicht anders, weil ich einen String von hinten nach vorne durchsuchen muss und zudem noch alle Fundstellen benötige.

Die zweite while-Schleife läuft aber auf alle Fälle durch, da sie runterzählt und immer den Wert 0 erreicht. Das Problem ist die erste while-Schleife und die darin durchgeführten Zusatzbefehle. Und da kann es vorkommen, dass eine der Bedingungen so nicht erfüllt wird und die Schleife sich totläuft. Deswegen auch die Fallback-Abfrage mit "cnt < 10".

Ich hab's aber mittlerweile im Griff. ;)

Ich wurde halt gefragt, ob man eine überlange Push-Nachricht, statt sie abzubrechen, nicht auch in mehreren Teilen schicken könne. Ist ja im Wesentlichen kein Hexenwerk, so eine Nachricht einfach in Blöcke aufzuteilen und dann diese einzelnen Blöcke zu senden. Schwieriger wird's jedoch, wenn man vermeiden will, dass Worte mittendrin abgebrochen und/oder zusammenhängende Codetags à la "<....>Text</...>" unterbrochen werden. Vor allen Dingen, wenn dann so ein von Codetags umschlossener String länger ist, als die erlaubte Länge der Teilnachricht. ;)

Danke auf alle Fälle für die anregende Diskussion.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“