Event Log Definition

This MotoHawk™ block is part of the Logging Blockset. It defines an Event Log and associates that instance with a name that is then referenced by other blocks within the block set.

Block ID

Event Log Defn

Library

motohawk_logging_lib

Description

Overview

This MotoHawk™ block is part of the Logging Blockset. It defines an Event Log and associates that instance with a name that is then referenced by other blocks within the block set.

In many cases the size of the log (as well as other attributes) is implicitly defined by the selected resource. If the block mask does not expose such attributes then they have been implicitly defined by the underlying resource.

The Event Log is a circular log. It will wrap once full, effectively replacing (discarding) the oldest event each time a new Event Log Add is applied to the Event Log.

The Event Log is architected to exist in non-volatile memory and cross application boundaries. Reprogramming a module with a new application will not typically delete data that has been recorded in the Event Log.

Logged Data

The Event Log is intended to log events. It has an EventID, an EventCODE, an EventTime and some arbitary data. The EventID, an EventCODE are intended to allows events to be categorized. How these are used is application dependent. The EventTime should represent a timestamp of some kind that identifies when the event occurred. It could use the EventTime attribute from Module Data Get (if supported) or something else. The choice is application dependent.

Query Approach

An Event Log could be very large and is typically not resident in direct access memory. To handle these limitations the Event Log behavior uses the notion of a query. A query allows incremental access to the Event Log. Multiple (but finite) parallel queries can be active at the sametime and can operate in different threads of execution.

A query is not synchronous. It schedules a read request to occur since the Event Log is not typically resident in direct access memory and indirect memory access could take upward of tens of milliseconds to be serviced. A Query Result is used to poll whether a requested query result is available and will return the data when that result is available. A Query Initiate is used to make the initial request and allows the type of query to be specified. A Query Next is used advance the query and return the next result. The status reported via a Query Result will indicate whether a result was found (as well as when it is ready).

The Query End will end the query so that a new Query Initiate can occur. Performing repeated Query Initiate without a Query End will fail. From the perspective of the Event Log, the first query initiated is not complete until it has been ended.

Block Parameters

Parameter Field Values Comments/Description
Name Single quote enclosed alpha-numeric text The name of the Event Log definition block. This name is referenced by other Event Log blocks.
Resource Drop down The Event Log resources supported by the target.

(None) implies the behavior is not supported by the target.