Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Edit (Anhang oben, einfach klasse diese 10-minütige Editzeit):
Bei DAQ die Blockgröße zu verdoppelt, damit kann ich gut leben. Aber die CAN Read-Funktion liest nur Message-weise (Anhang 1)
Und, wenn nix zu tun ist, lese ich immer weiter damit die Receive Queue nicht zu voll wird (Anhang 2) (Mir würde auch eine "empty Queue" Funktion besser gefallen, die einfach den gesamten Inhalt verwirft - das bietet der Treiber aber nicht, soweit ich das sehe...)
Ist das richtig so? (Hab vorher noch nie was mit CAN gemacht.)
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
10.10.2011, 19:25 (Dieser Beitrag wurde zuletzt bearbeitet: 10.10.2011 19:29 von schrotti.)
Du kannst der CAN-Karte auch sagen, dass er Zeit x warten soll, bis n Msg (ReadMult Size for Notification) im Puffer liegen. Nach Ablauf der Zeit x gibt ncWaitForState, sofern n Nachrichten nicht eingetroffen sind, einen Fehler aus, der leicht ausgewertet werden kann. Der Puffer lässt sich nur durch ein Reset der Karte leeren (ncAction).
> Also Merke: Keine Melder innerhalb von Schleifen anfordern!!!
das ist Interessant - wenn Du Bildreferenzen mit dem selben Namen in einer Schleife erzeugst hat das keinerlei Einflüssen (auch nicht nach 10^9 Durchläufen).
Wieso plötzlich bei Meldern? Vielleicht wenn man einen Namen vergibt und bei dem bleibt - wie mein Beispiel mit den Bildern - kann man das (unschöne) Programmteil laufen lassen?
Du erzeugst eine Referenz auf einen Melder oder eine Queue. Wenn der Melder/Queue noch nicht exestieren, werden sie gewöhnlich beim ersten Aufruf ebenfalls erzeugt. Die Referenzen können auch einzeln geschlossen oder der Melder/Queue werden gleich eliminiert, wobei alle darauf verweisenden Referenzen entfernt werden. Bei deinen Bildern, ich denke du redest hier vom Vision-Toolkit, wird anscheinend immer die gleiche Referenz hervorgekramt.
Leicht ersichtlich wird dies, wenn man zwei Melder/Queue- Referenzen auf die gleiche Queue erzeugt und miteinander auf Gleichheit prüft. Der Vergleich fällt negativ aus. Mittels einer Sonder oder Umwandlung in Variant wird der der Unterschied ebenfalls sichtbar.