Page 1 of 1
Senden/Empfangen
Posted: Sat 7. Jun 2014, 14:27
by CANmaster
Hallo nochmal an das Team von Peak,
nachdem man mir hier so gut geholfen hat, habe ich nun eine weitere Frage. Ich würde gerne wissen, ob es möglich ist, ein selbsterstelltes Makro (in meinem Fall ein Filter) auf das Senden/Empfangen Fenster anzuwenden? Beispielsweise würden dann gewisse Can-IDs nicht mehr in dem Empfangsfenster erscheinen. So müsste ich nicht selbst ein Anzeigefenster bauen. Über das Makroausgabefenster funktioniert bereits auch alles gut, aber es soll einfach optisch etwas besser aussehen (Tabellenform usw) . Danke für die Hilfe!
Mit freundlichen Grüßen
CANmaster
Re: Senden/Empfangen
Posted: Tue 10. Jun 2014, 15:18
by K.Wolf
Hallo,
mir ist noch nicht ganz klar, was gemacht werden soll.
Soll beim Empfang einer Nachricht ein Makro ausgeführt werden, das entscheidet, ob eine Nachricht in das Empfangsfenster eingetragen wird oder nicht? Das geht leider nicht. Man könnte nur per Makro einen Nachrichtenfilter dem Empfangsfenster zuweisen, dessen Filterelemente die Filterung übernehmen. Der Filter könnte auch per Makro erzeugt und wieder geändert werden. Man steuert also die Filter-Dropdownliste oben im Fenster per Makro.
Man könnte auch per Makro bestimmte Nachrichten in der Empfangsliste löschen, aber wenn die ständig neu reinkommen, macht das nicht wirklich Sinn.
Re: Senden/Empfangen
Posted: Tue 10. Jun 2014, 20:57
by CANmaster
Hallo,
ja was gemacht werden soll, ist beim laufenden Makro einen Filter auf die Liste des Emfangsfensters gelegt werden. Das würde evtl. schon reichen. Schöner wäre es gewesen noch Teile einer Nachricht zu filtern, oder den Nachrichteninhalt, der angezeigt wird, verändern zu können, aber so sollte die Anzeige schon wesentlich übersichtlicher werden.
Mit freundlichen Grüßen
CANmaster
Re: Senden/Empfangen
Posted: Thu 12. Jun 2014, 09:08
by K.Wolf
Mit einem Makro kann man mit folgendem Code einen neuen Filter erzeugen und konfigurieren:
Code: Select all
Dim objFilter, objItem
Set objFilter = MessageFilters.Add("MeinFilter")
Set objItem = objFilter.AddItem
objItem.Type = peFilterItemIDRange
objItem.IDfrom = &H100
objItem.IDto = &H100
Jeder Filter kann verschiedene Filterelemente (MessageFilterItem-Objekte) enthalten, genau so wie es im Dialogfenster "Botschaftsfilter bearbeiten" gemacht werden kann. Es wird ein Element hinzugefügt, das nach einem Bereich von CAN-ID filtert. Im Beispiel die einzelne ID 100h.
Das Zuweisen zur Empfangsliste geschieht dann so:
Code: Select all
Connections.ReceiveMessages.Filter = objFilter
Zunächst sind dann in der Empfangsliste noch die alten Nachrichten zu sehen, die jetzt nicht mehr empfangen werden. Da sollte man wohl die Empfangsliste erstmal leeren, damit nur noch die vom Filter durchgelassenen Nachrichten sichtbar sind: