Application.ProcessMessages oder TThread

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: Application.ProcessMessages oder TThread

Beitrag von Maik81SE »

Warf hat geschrieben:
Mo 28. Mär 2022, 21:53

Also als erstes einmal würde ich empfehlen, es einfach mal ganz dumm zu versuchen, thread starten, an CPU pinnen, Priorität auf Echtzeit/Maximum setzen und hoffen das es klappt. Musst einfach nur aufpassen das wenn du locks verwendest du keine system locks (critical sections, mutex, etc.) verwendest sondern spin locks damit dein prozess nicht von der CPU genommen wird

Die Frage ist was passiert wenn du out of sync kommst, also wenn dein Prozess gerescheduled wird und du musst 1-2 pakete aussetzen. Kann das system damit umgehen oder ist dann alles kaputt. Bzw. kannst du das system so umbaun das wenn was schief geht das system zumindest wieder in einen Stabilen status zurückkehren kann Falls ja wäre das eventuell schon die beste Lösung, so lange machen wie es läuft, und bei nem fehler einfach nen Fehlercode senden und das system zurücksetzen oder so
Also wie ich es mir schon analog gedacht habe...
Mal das Bsp: Thread auspacken und schauen, wo er was ablegt.
Der einzig derzeit Aktuelle System Lock ist der für den den USB-UART umsetzter. Aber den zähl ich mal nicht mit, da er von Synapse erzeugt und gelöscht wird..

Und das Thena "Out of Sync".
Das schreit ja nach einem Streßtest :lol: , welchen ich im jeweiligen Moment auf vor hab anzuwenden.
20 Minuten lang Daten (inkl. 3 Feste befehle) OHNE Ende rauspulfern und schauen, wann er in der Die Knie geht...

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: Application.ProcessMessages oder TThread

Beitrag von kupferstecher »

Maik81SE hat geschrieben:
Di 29. Mär 2022, 09:24
Der einzig derzeit Aktuelle System Lock ist der für den den USB-UART umsetzter. Aber den zähl ich mal nicht mit, da er von Synapse erzeugt und gelöscht wird..
Per UART sind die Datenraten doch überhaupt nicht zu schaffen.
Dazu kommt noch, dass spätestens bei USB das Betriebssystem ins Spiel kommt und der USB-Treiber ist ziemlich sicher nicht echtzeitfähig implementiert. D.h. die ganze Threadpriorisierung kann man sich an der Stelle wohl sparen.

Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: Application.ProcessMessages oder TThread

Beitrag von Maik81SE »

kupferstecher hat geschrieben:
Di 29. Mär 2022, 14:56

Per UART sind die Datenraten doch überhaupt nicht zu schaffen.
Dazu kommt noch, dass spätestens bei USB das Betriebssystem ins Spiel kommt und der USB-Treiber ist ziemlich sicher nicht echtzeitfähig implementiert. D.h. die ganze Threadpriorisierung kann man sich an der Stelle wohl sparen.
Dann brauch ich Alternative Schnittstelle vom MCU <-> PC/PI4

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Application.ProcessMessages oder TThread

Beitrag von af0815 »

Was musst du am PC/RP4 machen, das du nicht ganz auf MCU Basis aufsetzt ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: Application.ProcessMessages oder TThread

Beitrag von Maik81SE »

af0815 hat geschrieben:
Mi 30. Mär 2022, 08:29
Was musst du am PC/RP4 machen, das du nicht ganz auf MCU Basis aufsetzt ?
uA Videos, welche durch die MCUs feingestellt und mmiit gewissen Fildern/Overlays beartbeitet werden soll und via OBS zu Twitch gehen sollen.
Leider habe ich noch kein Anständiges System für Linux gefunden, wo ich alternative DJ-Mischpulte verwenden kann, sofern dies nicht gerade von MIXXX Verwendet wird.

und das WS2812b Modul ist nnuur beiwerk wenn ich live arbeite

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

Antworten