AGI STK VGT 11 Send comments on this topic.
IAgCrdnEventFactory Interface





Description

The factory creates events.

Object Model











Public Methods

Public Method Create Creates and registers an event using specified name, description, and type.
Public Method CreateEventEpoch Creates an event set at a specified date/time.
Public Method CreateEventExtremum Creates an event that determines the time of global minimum or maximum of specified scalar calculation.
Public Method CreateEventSignaled Creates an event recorded on a specified clock via signal transmission from an original time instant recorded on different clock.
Public Method CreateEventStartStopTime Creates an event that is either the start or stop time selected from a reference interval.
Public Method CreateEventTimeOffset Creates an event at fixed offset from specified reference event.
Public Method CreateSmartEpochFromEvent Creates a smart epoch from an event.
Public Method CreateSmartEpochFromTime Creates a smart epoch from STK epoch.
Public Method IsTypeSupported Returns whether the specified type is supported.

Public Properties

Public Property Today Returns Today time instant.
Public Property Tomorrow Returns Tomorrow time instant.

Example

Create and configure fixed epoch event.
[C#] Copy Code
IAgCrdnEvent timeEvent = provider.Events.Factory.CreateEventEpoch("MyEventFixed""MyDescription"); 
IAgCrdnEventEpoch asEpoch = timeEvent as IAgCrdnEventEpoch; 
 
// Epoch can be set explicitly (Uses current DateTime unit preference, this code snippet assumes UTCG) 
asEpoch.Epoch = "1 May 2016 04:00:00.000"
 
// Epoch can also be set with the epoch of another event 
IAgCrdnEventFindOccurrenceResult startTime = provider.Events["AvailabilityStartTime"].FindOccurrence(); 
asEpoch.Epoch = startTime.Epoch; 
 
IAgCrdnEventFindOccurrenceResult occurrence = timeEvent.FindOccurrence(); 
if (occurrence.IsValid) 

    Console.WriteLine("Event occurred at: " + occurrence.Epoch); 

 

Create and configure fixed time offset event.
[C#] Copy Code
IAgCrdnEvent timeEvent = provider.Events.Factory.CreateEventTimeOffset("MyEventTimeOffset""MyDescription"); 
IAgCrdnEventTimeOffset asTimeOffset = timeEvent as IAgCrdnEventTimeOffset; 
 
asTimeOffset.ReferenceTimeInstant = provider.Events["AvailabilityStartTime"]; 
 
// Uses current Time unit preference, this code snippet assumes seconds. 
asTimeOffset.TimeOffset = 3
 
IAgCrdnEventFindOccurrenceResult occurrence = timeEvent.FindOccurrence(); 
if (occurrence.IsValid) 

    Console.WriteLine("Event occurred at: " + occurrence.Epoch); 

 

Create and configure signaled event.
[C#] Copy Code
IAgCrdnProvider satelliteVgtProvider = stkRoot.GetObjectFromPath("Satellite/LEO").Vgt; 
IAgCrdnProvider aircraftVgtProvider = stkRoot.GetObjectFromPath("Aircraft/UAV").Vgt; 
 
IAgCrdnEvent timeEvent = satelliteVgtProvider.Events.Factory.CreateEventSignaled("MyEventSignaled""MyDescription"); 
IAgCrdnEventSignaled asSignaled = timeEvent as IAgCrdnEventSignaled; 
 
asSignaled.OriginalTimeInstant = aircraftVgtProvider.Events["EphemerisStartTime"]; 
asSignaled.BaseClockLocation = satelliteVgtProvider.Points["Center"]; 
asSignaled.TargetClockLocation = aircraftVgtProvider.Points["Center"]; 
 
asSignaled.SignalSense = AgECrdnSignalSense.eCrdnSignalSenseTransmit; 
IAgCrdnSignalDelayBasic basicSignalDelay = asSignaled.SignalDelay as IAgCrdnSignalDelayBasic; 
basicSignalDelay.SpeedOption = AgECrdnSpeedOptions.eCrdnCustomTransmissionSpeed; 
 
// Uses current Time unit preference, this code snippet assumes seconds. 
basicSignalDelay.TimeDelayConvergence = 0.002
 
IAgCrdnEventFindOccurrenceResult occurrence = timeEvent.FindOccurrence(); 
if (occurrence.IsValid) 

    Console.WriteLine("Event occurred at: " + occurrence.Epoch); 

 

Create and configure start stop time event.
[C#] Copy Code
IAgCrdnEvent timeEvent = provider.Events.Factory.CreateEventStartStopTime("MyEventStartStopTime""MyDescription"); 
IAgCrdnEventStartStopTime asStartStopTime = timeEvent as IAgCrdnEventStartStopTime; 
 
asStartStopTime.ReferenceEventInterval = provider.EventIntervals["EphemerisTimeSpan"]; 
 
asStartStopTime.UseStart = true
 
IAgCrdnEventFindOccurrenceResult occurrence = timeEvent.FindOccurrence(); 
if (occurrence.IsValid) 

    Console.WriteLine("Event occurred at: " + occurrence.Epoch); 

 

Create and configure extremum event.
[C#] Copy Code
IAgCrdnEvent timeEvent = provider.Events.Factory.CreateEventExtremum("MyEventExtremum""MyDescription"); 
IAgCrdnEventExtremum asExtremum = timeEvent as IAgCrdnEventExtremum; 
 
// For instance, time at highest altitude 
asExtremum.Calculation = provider.CalcScalars["GroundTrajectory.Detic.LLA.Altitude"]; 
asExtremum.ExtremumType = AgECrdnExtremumConstants.eCrdnExtremumMaximum; 
 
IAgCrdnEventFindOccurrenceResult occurrence = timeEvent.FindOccurrence(); 
if (occurrence.IsValid) 

    Console.WriteLine("Event occurred at: " + occurrence.Epoch); 

 

Determine if the specified event type is supported.
[C#] Copy Code
// Check if the specified event type is supported. 
if (provider.Events.Factory.IsTypeSupported(eventType)) 

    //Create an Event with the supported Type 
    IAgCrdnEvent @event = provider.Events.Factory.Create( 
        "MyEvent"string.Empty, 
        eventType); 

 

Create and configure fixed epoch event.
[Visual Basic .NET] Copy Code
Dim timeEvent As IAgCrdnEvent = provider.Events.Factory.CreateEventEpoch("MyEventFixed", "MyDescription")
Dim asEpoch As IAgCrdnEventEpoch = TryCast(timeEvent, IAgCrdnEventEpoch)

' Epoch can be set explicitly (Uses current DateTime unit preference, this code snippet assumes UTCG)
asEpoch.Epoch = "1 May 2016 04:00:00.000"

' Epoch can also be set with the epoch of another event
Dim startTime As IAgCrdnEventFindOccurrenceResult = provider.Events("AvailabilityStartTime").FindOccurrence()
asEpoch.Epoch = startTime.Epoch

Dim occurrence As IAgCrdnEventFindOccurrenceResult = timeEvent.FindOccurrence()
If occurrence.IsValid Then
    Console.WriteLine("Event occurred at: " + occurrence.Epoch)
End If

Create and configure fixed time offset event.
[Visual Basic .NET] Copy Code
Dim timeEvent As IAgCrdnEvent = provider.Events.Factory.CreateEventTimeOffset("MyEventTimeOffset", "MyDescription")
Dim asTimeOffset As IAgCrdnEventTimeOffset = TryCast(timeEvent, IAgCrdnEventTimeOffset)

asTimeOffset.ReferenceTimeInstant = provider.Events("AvailabilityStartTime")

' Uses current Time unit preference, this code snippet assumes seconds.
asTimeOffset.TimeOffset = 3

Dim occurrence As IAgCrdnEventFindOccurrenceResult = timeEvent.FindOccurrence()
If occurrence.IsValid Then
    Console.WriteLine("Event occurred at: " + occurrence.Epoch)
End If

Create and configure signaled event.
[Visual Basic .NET] Copy Code
Dim satelliteVgtProvider As IAgCrdnProvider = stkRoot.GetObjectFromPath("Satellite/LEO").Vgt
Dim aircraftVgtProvider As IAgCrdnProvider = stkRoot.GetObjectFromPath("Aircraft/UAV").Vgt

Dim timeEvent As IAgCrdnEvent = satelliteVgtProvider.Events.Factory.CreateEventSignaled("MyEventSignaled", "MyDescription")
Dim asSignaled As IAgCrdnEventSignaled = TryCast(timeEvent, IAgCrdnEventSignaled)

asSignaled.OriginalTimeInstant = aircraftVgtProvider.Events("EphemerisStartTime")
asSignaled.BaseClockLocation = satelliteVgtProvider.Points("Center")
asSignaled.TargetClockLocation = aircraftVgtProvider.Points("Center")

asSignaled.SignalSense = AgECrdnSignalSense.eCrdnSignalSenseTransmit
Dim basicSignalDelay As IAgCrdnSignalDelayBasic = TryCast(asSignaled.SignalDelay, IAgCrdnSignalDelayBasic)
basicSignalDelay.SpeedOption = AgECrdnSpeedOptions.eCrdnCustomTransmissionSpeed

' Uses current Time unit preference, this code snippet assumes seconds.
basicSignalDelay.TimeDelayConvergence = 0.002

Dim occurrence As IAgCrdnEventFindOccurrenceResult = timeEvent.FindOccurrence()
If occurrence.IsValid Then
    Console.WriteLine("Event occurred at: " + occurrence.Epoch)
End If

Create and configure start stop time event.
[Visual Basic .NET] Copy Code
Dim timeEvent As IAgCrdnEvent = provider.Events.Factory.CreateEventStartStopTime("MyEventStartStopTime", "MyDescription")
Dim asStartStopTime As IAgCrdnEventStartStopTime = TryCast(timeEvent, IAgCrdnEventStartStopTime)

asStartStopTime.ReferenceEventInterval = provider.EventIntervals("EphemerisTimeSpan")

asStartStopTime.UseStart = True

Dim occurrence As IAgCrdnEventFindOccurrenceResult = timeEvent.FindOccurrence()
If occurrence.IsValid Then
    Console.WriteLine("Event occurred at: " + occurrence.Epoch)
End If

Create and configure extremum event.
[Visual Basic .NET] Copy Code
Dim timeEvent As IAgCrdnEvent = provider.Events.Factory.CreateEventExtremum("MyEventExtremum", "MyDescription")
Dim asExtremum As IAgCrdnEventExtremum = TryCast(timeEvent, IAgCrdnEventExtremum)

' For instance, time at highest altitude
asExtremum.Calculation = provider.CalcScalars("GroundTrajectory.Detic.LLA.Altitude")
asExtremum.ExtremumType = AgECrdnExtremumConstants.eCrdnExtremumMaximum

Dim occurrence As IAgCrdnEventFindOccurrenceResult = timeEvent.FindOccurrence()
If occurrence.IsValid Then
    Console.WriteLine("Event occurred at: " + occurrence.Epoch)
End If

Determine if the specified event type is supported.
[Visual Basic .NET] Copy Code
' Check if the specified event type is supported.
If provider.Events.Factory.IsTypeSupported(eventType) Then
    'Create an Event with the supported Type
    Dim [event] As IAgCrdnEvent = provider.Events.Factory.Create("MyEvent", String.Empty, eventType)
End If

© 2016 All Rights Reserved.

STK Programming Interface 11.0.1