ReportEventEx

ITcEventLogC3::ReportEventEx

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

HRESULTReportEventEx([in]TcEventHeader* pEventHead,
                       [in] SAFEARRAY(VARIANT)* pEventData
                       [out, retval] [out,retval] ITcEvent** pEvent);

Parameter

pEventHead

[in] Pointer auf ein Objekt vom Typ TcEventHeader. Das Objket stellt die Alarm Konfiguration dar.

eventData

[in] Pointer auf ein Safearray , das die Event Argumente darstellt.  In der Konfiguration des Event Formatters ist definiert, wie die Event Argumente in der angezeigten Event Meldung darzustellen sind. Die folgenden Datentypen werden vom Standardformatter unterstützt: int (16bit), long (32bit), float(32bit), double(64bit), string(BSTR).

pEvent

[out, retval] Pointer auf ein ITcEvent Pointer, der das neue logged Event Objekt erhält.

Return Values

S_OK

Funktion wurde erfolgreich aufgerufen.

TCEVENTERR_ISSIGNALED

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

E_POINTER

pEventHead oder pEventData oder pEvent 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 ITcEventLogC3 interface
Dim evtLoggerC As TCEVENTLOGGERLib.ITcEventLogC3
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
Dim evt As TcEvent
Set evt = evtLoggerC.ReportEventEx(header, arrParam)

' reset the event
evt.Reset

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.