ReportEvent

ITcEventLogC::ReportEvent

Diese Methode wird verwendet, um von einem COM Client (z.B. ein HMI Programm) ein neues Event auszugeben (an den TcEventLogger).

HRESULT ReportEvent([in] TcEventHeader* pEventHead, [in] SAFEARRAY(VARIANT)* pEventData);

Parameter

pEventHead

[in] Pointer auf ein Objekt des Typs TcEventHeader. Das Objekt stellt die Alarm Konfiguration dar.

eventData

[in] Pointer auf ein Safearray, dass die Event Argumente darstellt. In der Konfiguration des Event Formatters ist definiert, wie die Event  Argumente in der Event Meldung zu platzieren sind.

Die folgenden Datentypen werden vom Standard Formatter unterstützt: int (16bit), long (32bit), float(32bit), double(64bit), string(BSTR).

Rückgabe Werte

S_OK

Funktion wurde erfolgreich aufgerufen.

TCEVENTERR_ISSIGNALED

Das Event mit dieser Source id und dieser Event id wurde bereits angezeigt.

E_POINTER

pEventHead oder pEventData waren keine gültigen Pointer.

Visual Basic Beispielcode

' get the one and only event logger
Dim evtLogger As TCEVENTLOGGERLib.TcEventLog
Set evtLogger = New TCEVENTLOGGERLib.TcEventLog

' cast to ITcEventLogC interface
Dim evtLoggerC As TCEVENTLOGGERLib.ITcEventLogC
Set evtLoggerC = evtLogger

' create event header
Dim header As TcEventHeader
header.nClass = TcEventClass.TCEVENTCLASS_ALARM ' event class
header.nPriority = TcEventPriority.TCEVENTPRIO_IMPLICIT ' event priority
header.dwFlags = TcEventFlags.TCEVENTFLAG_LOG ' event flags
header.dwUserData = 0 'user data
header.nId = 1 ' event id
header.nInvokeId = 0 'invoke id
header.fDate = Now ' event date and time
header.nMs = 123 ' milli second part of the event date and time
header.varSource = 1 ' event soruce id
header.szFmtProgId = "TcEventFormatter.TcXmlFormatter" ' event prog id

' creade event params
Dim arrParam() As Variant
ReDim arrParam(0 To 1) As Variant
arrParam(0) = 1234 ' first parameter as long
arrParam(1) = 1234.777 ' second parameter as double

' log the event
Call evtLoggerC.ReportEvent(header, arrParam)

Anmerkungen

Nach diesem Methodenaufruf wird der Event Logger das Event OnNewEvent auf allen Clients, die die Event-Schnittstelle _ITcEventLogEvents (VB: Dim WithEvents) implementieren, erhöhen.

Die Methode kann gerade verwendet werden, um ein Alarmsignal auszugeben. Ein zweiter Aufruf zur Rücksetzung des Alarms ist mit dieser Methode nicht möglich. Um den Status eines bereits ausgelösten Alarms zu ändern, ist das Event Objekt selber erforderlich. 

Komfortabler arbeitet die Methode ITcEventLogC3::ReportEventEx . Sie gibt das neu erstellte Event Objekt direkt zurück.