Description
Time array containing times at which the specified condition will change its satisfaction status. Determination is performed within the interval list using Sampling and Convergence parameters.
Public Properties
Condition | The condition component. |
Convergence | The Convergence definition, which uses time tolerance to determine when crossing times are found. |
CustomTimeLimits | Specify the interval list within which satisfaction crossing times are sought. The default is set to overall availability of host object. The time limits will be used if UseCustomTimeLimits is set to true. |
Sampling | The Sampling definition, which can use a fixed step, relative tolerance or curvature tolerance. Relative tolerance uses a combination of relative and absolute changes in scalar values between samples. Curvature tolerance also uses changes in slope between samples. |
SatisfactionCrossing | The direction of interest for satisfaction crossing. |
SaveDataOption | Determine if computed satisfaction crossing times are saved/loaded, or recomputed on load if necessary. |
UseCustomTimeLimits | Indicate whether to use specified custom time limits (see CustomTimeLimits). |
Interfaces
CoClasses that Implement IAgCrdnEventArrayConditionCrossings
Example
Create and configure condition crossings event array.
[C#] |
---|
IAgCrdnEventArray eventArray = provider.EventArrays.Factory.CreateEventArrayConditionCrossings("MyEventArrayConditionCrossings", "MyDescription");
IAgCrdnEventArrayConditionCrossings asConditionCrossings = eventArray as IAgCrdnEventArrayConditionCrossings;
IAgCrdnCondition scalarBound = provider.Conditions.Factory.CreateConditionScalarBounds("Bound", "MyDescription");
IAgCrdnConditionScalarBounds asScalarBounds = scalarBound as IAgCrdnConditionScalarBounds;
asScalarBounds.Scalar = provider.CalcScalars["GroundTrajectory.Detic.LLA.Latitude"];
asScalarBounds.Operation = AgECrdnConditionThresholdOption.eCrdnConditionThresholdOptionInsideMinMax;
//asScalarBounds.Set(-0.349, 0);
asConditionCrossings.Condition = scalarBound;
IAgCrdnFindTimesResult timeArrays = eventArray.FindTimes();
if (timeArrays.IsValid)
{
Console.WriteLine("Times");
int numTimes = timeArrays.Times.GetLength(0);
for (int i = 0; i < numTimes; ++i)
{
Console.WriteLine(timeArrays.Times.GetValue(i));
}
foreach (IAgCrdnInterval timeArray in timeArrays.Intervals)
{
Console.WriteLine("Start: " + timeArray.Start);
Console.WriteLine("Stop: " + timeArray.Stop);
}
}
|
|
Create and configure condition crossings event array.
[Visual Basic .NET] |
---|
Dim eventArray As IAgCrdnEventArray = provider.EventArrays.Factory.CreateEventArrayConditionCrossings("MyEventArrayConditionCrossings", "MyDescription")
Dim asConditionCrossings As IAgCrdnEventArrayConditionCrossings = TryCast(eventArray, IAgCrdnEventArrayConditionCrossings)
Dim scalarBound As IAgCrdnCondition = provider.Conditions.Factory.CreateConditionScalarBounds("Bound", "MyDescription")
Dim asScalarBounds As IAgCrdnConditionScalarBounds = TryCast(scalarBound, IAgCrdnConditionScalarBounds)
asScalarBounds.Scalar = provider.CalcScalars("GroundTrajectory.Detic.LLA.Latitude")
asScalarBounds.Operation = AgECrdnConditionThresholdOption.eCrdnConditionThresholdOptionInsideMinMax
'asScalarBounds.Set(-0.349, 0);
asConditionCrossings.Condition = scalarBound
Dim timeArrays As IAgCrdnFindTimesResult = eventArray.FindTimes()
If timeArrays.IsValid Then
Console.WriteLine("Times")
Dim numTimes As Integer = timeArrays.Times.GetLength(0)
Dim i As Integer = 0
While i < numTimes
Console.WriteLine(timeArrays.Times.GetValue(i))
System.Threading.Interlocked.Increment(i)
End While
For Each timeArray As IAgCrdnInterval In timeArrays.Intervals
Console.WriteLine("Start: " + timeArray.Start)
Console.WriteLine("Stop: " + timeArray.[Stop])
Next
End If
|
|