Menü
 EMBU-Sys 
Visualisierung für die Messtechnik
EMBU-Sys GbR Dietmar+Claudia Burger
Max-Högg-Straße 4
86316 Friedberg (Germany)
info@embu-sys.de    ☏ +49/821/65041556

Technische Änderungen und Irrtümer vorbehalten.

embu-sys logo
www.embu-sys.de
Focus on your  
Productivity   

SW-Buttons & HW-Tasten abfragen und CAN-Botschaft senden

Oft möchte man Aktionen ausführen sobald ein Software-Button geklickt, oder eine Hardware-Taste gedrückt wurde. Eine solche Aktion kann z.B. das Absenden einer CAN-Botschaft sein.

Um Software-Buttons abzufragen fügen wir einen Button zum Layout hinzu. Danach öffnen wir mit der rechten Maustaste das Kontextmenü. Dies können wir entweder bei der visuellen Repräsentation des Buttons im Layout machen, oder bei der Repräsentation des Buttons im Projektbaum. Danach fügen wir über Bearbeiter hinzufügen > Bei Berühren und Bearbeiter hinzufügen > Bei Loslassen jeweils ein Ereignis hinzu. Bei jedem Ereignis können wir nun Aktionen hinzufügen, die ausgeführt werden sobald das jeweilige Ereignis eintrifft.

Um Hardware-Taster abzufragen navigieren wir im Projektbaum zu Ereignisse und klappen mit einem Klick auf den Pfeil neben Bedingungs-Ereignis hinzufügen die Liste mit den möglichen Ereignistypen aus. Hier wählen wir Lokales Tasten-Ereignis. Nennen wir dieses Ereignis “TriggerPressed”. Setzen wir nun die Eigenschaft Definition > Taste auf Trigger. Weiterhin ist standardmäßig nur Definition > Bei Drücken angehakt, was bewirkt, dass das Ereignis nur beim Drücken gefeuert wird und die assoziierten Funktionen ausgeführt werden.

Erstellen wir nun ein lokales Tasten-Ereignis namens “TriggerReleased”. Bei dessen Eigenschaften muss nun bei Definition > Bei Drücken der Haken entfernt werden. Setzen wir stattdessen den Haken bei Definition > Bei Loslassen.

Legen wir nun eine Variable isPressed an. Wir können den Ausgangswert auf false setzen.

Definieren wir jeweils eine Aktion bei jedem Ereignis, welche den Wert von isPressed entsprechend auf true oder false setzt, je nachdem ob der Software-Button bzw. die Hardware-Taste gedrückt wurde, bzw. losgelasse wurde.

iese Variable kann man auch verwenden um gewisse Eigenschaften dynamisch zu steuern. So könnte man z.B. ein Text-Widget zum Layout hinzufügen und die EigenschaftDiese Variable kann man auch verwenden um gewisse Eigenschaften dynamisch zu steuern. So könnte man z.B. ein Text-Widget zum Layout hinzufügen und die Eigenschaft Generell > Titel-Text auf =IIf(isPressed, "{de}gedrückt{en}pressed","{de}losgelassen{en}released") setzen. Somit wird überprüft ob der Wert der Variable true ist. Wenn das der Fall ist, dann wird der Text “gedrückt” (bzw. auf Englisch “pressed”) verwendet und wenn nicht, dann wird “losgelassen” (bzw. “released”) verwendet.
So ähnlich kann man auch für die Eigenschaft Generell > Vordergrundfarbe vorgehen indem man den Wert z.B. auf =IIf(isPressed, #00FF00,#000000) setzt. Somit wird der Text grün dargestellt (#00FF00 in RGB-HEX-Darstellung), wenn die Variable true ist. Sonst wird der Text schwarz (#00FF00) dargestellt.

Zum Senden der CAN-Botschaft legen wir diese zunächst an indem wir im Projektbaum zu CAN-Sendebotschaften navigieren und dann auf Botschaft hinzufügen drücken. Wählen wir am Besten einen aussagekräftigen Namen. Setzen wir danach Identifier z.B. auf 123. Danach doppelklicken wir auf unsere neuangelegte Botschaft damit wir die Felder festlegen können aus denen sie besteht. Fügen wir ein Feld hinzu indem wir auf Feld hinzufügen klicken. Dann können wir den Wert für das Feld in Eigenschaften > Wert > Wert setzen. Hier können wir einen konstanten Wert, eine Variable (z.B. isPressed) oder gar einen Ausdruck der einen Wert zurückgibt verwenden. Möchten wir nicht, dass die Botschaft gesendet wird sobald sich der Wert verändert, so entfernen wir den Haken für das das Kästchen Eigenschaften > Sonstiges > Bei Wechsel senden.

Damit wir auch CAN-Botschaften senden können, müssen wir sicherstellen, dass die jeweilige CAN-Schnittstelle auch nicht auf Nur-Hören gestellt ist. Navigieren wir also zu der jeweiligen Schnitte über den Projektbaum und entfernen den Haken bei Eigenschaften > Nur Hören.