<< Click to Display Table of Contents >> Navigation: Arbeiten mit CanEasy > Automatisierung mit CanEasy > VBA > Tutorials > Ereignisse-Tutorial > Ereignis-Beispiel: Botschaftsversand |
Nachfolgendes Tutorial zeigt, wie das Versenden einer Botschaft erkannt wird. Es basiert auf der im Tutorial erstellen Datenbasis.
Legen Sie nun mit Neu ein neues VBA-Projekt an. Speichern Sie das Projekt unter dem Namen "Botschaftsversand".
Legen Sie anschließend im VBA-Editor ein Klassenmodul an. Ändern Sie den Namen des Klassenmoduls in "Gaspedal"
Geben Sie den folgenden Code ein:
Public WithEvents Msg As Message
Public Sub Assign(oMsg As Message) Set Msg = oMsg 'Filter für Sendebestätigung setzen Msg.TxConfirmEvents = True End Sub |
Mit Msg.TxConfirmEvents = True teilen Sie der COM-Schnittstelle mit, dass das Ereignis ausgelöst werden soll.
Wählen Sie anschließend Msg in der linken Auswahlliste und OnTxConfirm in der rechten um den Rumpf für die Ereignisbehandlungsroutine zu erzeugen:
Fügen Sie anschließend in der erstellten Routine Msg_OnTxConfirm den folgenden Code hinzu:
Private Sub Msg_OnTxConfirm(ByVal data As CanEasy.ITransmissionData) Debug.Print "Botschaft versendet" End Sub |
Geben Sie nun den angezeigten Code im Modul Standard ein.
Public Pedal As Gaspedal
Sub Testdurchlauf() Dim Steuergeraet As ControlUnit Set Pedal = New Gaspedal
Set Steuergeraet = Database.Busses("CAN1").ControlUnits("ECU1") Pedal.Assign Steuergeraet.Messages("MSG1") Pedal.Msg.Send 'Botschaft versenden CanEasyApplication.Sleep 1000 '1 Sekunde warten Pedal.Msg.Send 'Botschaft versenden CanEasyApplication.Sleep 1000 '1 Sekunde warten StopSimulation 'Simulation beenden End Sub |
Wichtig ist hier, dass Sie eine Instanz der Klasse Gaspedal mit dem Schlüsselwort New anlegen.
Drücken Sie anschließend Strg-G um den Direktbereich einzublenden und führen Sie die Funktion Testdurchlauf aus. Die Anweisungen in der Ereignisbehandlungsroutine werden ausgeführt und im Fenster Direktbereich angezeigt (es erscheint zweimal die Meldung "Botschaft versendet").