AW: XE2: Serial-Komponente gesucht
Dank der Tips von hier habe ich die AsyncPro installiert.
Läuft auch soweit. Nur habe ich auch ein Problem damit. Ziel ist es damit längere Byte Arrays zu einem AVR die schicken der dann LED Stripes ansteuert. Da ich den AVR Code auch selbst "verbrochen" habe, bin ich mit dem Protokoll flexibel. (Ein miniDMX -> tpm2 reduziert zu dem was ich brauche) Also 230 LED brauchen 690 Byte + 5 Byte Header. Wenn ich dies via ApdComPort1.OutPut in schneller Folge zum AVR schicke, bekomme ich von AsyncPro eine Message das der Output Puffer zu klein sei. Ein Erhöhen des AsyncPro Out Puffers bringt keine Besserung. Gibt es eine andere Methode als OutPut ? Es gibt z.b putblock, komme aber nicht wirklich dahinter wie dies funktionieren soll. |
AW: XE2: Serial-Komponente gesucht
Wie schnell sendest du denn? Baudrate? Vielleicht kommen die Daten schneller in den Puffer, als diese dann reell übertragen werden können. So wächst der Puffer immer weiter an.
Wie sendest du denn, jede Sekunde oder nur bei Änderung? |
AW: XE2: Serial-Komponente gesucht
Die Baudrate 256000 Baud.
Mein Testprogramm besteht als 3 Slidern (Für die 3 Farben ) Wenn ich das event so einhänge, das bei jeder Änderung der Slider ein Frame gesendet wird kommt es zu diesem Problem. Wenn ich nur am Ende der Änderung des Sliders, ein Frame schicke funkioniert es. (natürlich) Das Problem wird schon sein, das der Puffer voll wird. Wie kann man mit AsyncPro mit Pufferverwaltung arbeiten ? |
AW: XE2: Serial-Komponente gesucht
Zitat:
Zitat:
|
AW: XE2: Serial-Komponente gesucht
Die TMS hätten mir auch besser gefallen, leider gibts es sowas nicht für lau.
Im usenet habe ich auch nichts gefunden, upps laut gedacht :oops::oops: |
AW: XE2: Serial-Komponente gesucht
Ich bin vor vielen Jahren von der AsyncPro Kompo dann doch zu TMS gewechselt, da ich Probleme hatte. Meines Wissens waren das Probleme beim Empfang, dass Daten verlorengegangen sind. Deshalb habe ich die Euro investiert und bin damit zufrieden. Diese Art Probleme hatte ich danach nicht mehr. Das war aber schon um 2006 rum.
Nun zu deinem Problem. In der Doku habe ich Events gefunden, die du vielleicht ausprobieren kannst: OnTriggerOutbuffFree oder OnTriggerOutbuffUsed. Vielleicht kann man damit abfragen, inwieweit der Buffer noch Daten aufnehmen kann. |
AW: XE2: Serial-Komponente gesucht
Eine ganz einfache Methode, aber sicher nicht die Ressourcenschonendste und beste ist das aktive warten darauf dass der Outputbuffer leer ist.
Delphi-Quellcode:
Ich weiß, so macht man es eigentlich nicht. Aber so kannst Du zumindest einfach mal testen ob Du damit auch deinen Fehler provozierst.
ApdComPort1.PutString(str);
while ApdComPort1.OutBuffUsed <> 0 do Application.Processmessages; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz