AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi XE2: Serial-Komponente gesucht
Thema durchsuchen
Ansicht
Themen-Optionen

XE2: Serial-Komponente gesucht

Ein Thema von Helmi · begonnen am 20. Jan 2012 · letzter Beitrag vom 3. Jan 2013
Antwort Antwort
Seite 2 von 2     12   
Rudirabbit

Registriert seit: 27. Sep 2006
111 Beiträge
 
#11

AW: XE2: Serial-Komponente gesucht

  Alt 2. Jan 2013, 18:11
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.
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#12

AW: XE2: Serial-Komponente gesucht

  Alt 2. Jan 2013, 18:14
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?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Rudirabbit

Registriert seit: 27. Sep 2006
111 Beiträge
 
#13

AW: XE2: Serial-Komponente gesucht

  Alt 2. Jan 2013, 18:32
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 ?
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#14

AW: XE2: Serial-Komponente gesucht

  Alt 2. Jan 2013, 18:37
Die Baudrate 256000 Baud.

Das Problem wird schon sein, das der Puffer voll wird.
Das vermute ich auch.

Wie kann man mit AsyncPro mit Pufferverwaltung arbeiten ?
Dazu habe ich keine Infos, da ich mit den TMS Kompos arbeite. Hast du keine Events, die du abfragen kannst? Bei den TMS gibt es nur ein OnTXEmpty event.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Rudirabbit

Registriert seit: 27. Sep 2006
111 Beiträge
 
#15

AW: XE2: Serial-Komponente gesucht

  Alt 2. Jan 2013, 18:53
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
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#16

AW: XE2: Serial-Komponente gesucht

  Alt 2. Jan 2013, 19:04
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.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#17

AW: XE2: Serial-Komponente gesucht

  Alt 3. Jan 2013, 06:57
Eine ganz einfache Methode, aber sicher nicht die Ressourcenschonendste und beste ist das aktive warten darauf dass der Outputbuffer leer ist.

Delphi-Quellcode:
   ApdComPort1.PutString(str);
   while ApdComPort1.OutBuffUsed <> 0 do
      Application.Processmessages;
Ich weiß, so macht man es eigentlich nicht. Aber so kannst Du zumindest einfach mal testen ob Du damit auch deinen Fehler provozierst.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 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