Description
Determines what time array is recorded at
target clock location by performing signal transmission of original
time array between base and target clock locations. If any signaled
interval ends up with start time after its stop, the interval is
excluded from signaled list. If neighboring signaled intervals
overlap or abut, they are replaced by single interval in signaled
list. Intervals that after performing signal transmission end up
without any sample times are omitted.
Object Model
Public Properties
BaseClockLocation |
The base clock location,
which is a point from VGT. |
OriginalTimeArray |
The original time
array. |
SignalDelay |
The Signal delay
definition, which includes signal transmission, time delay
convergence and signal path reference system. |
SignalSense |
The direction of the
signal, whether you are Transmitting or Receiving from the Base
Clock Location. |
TargetClockLocation |
The target clock location,
which is a point from VGT. |
Example
Create and configure
signaled event array.
[C#] |
Copy Code
|
IAgCrdnProvider satelliteVgtProvider = stkRoot.GetObjectFromPath("Satellite/LEO").Vgt;
IAgCrdnProvider aircraftVgtProvider = stkRoot.GetObjectFromPath("Aircraft/UAV").Vgt;
IAgCrdnEventArray eventArray = satelliteVgtProvider.EventArrays.Factory.CreateEventArraySignaled("MyEventArraySignaled", "MyDescription");
IAgCrdnEventArraySignaled asSignaled = eventArray as IAgCrdnEventArraySignaled;
asSignaled.OriginalTimeArray = aircraftVgtProvider.EventArrays["OneMinuteSampleTimes"];
asSignaled.BaseClockLocation = satelliteVgtProvider.Points["Center"];
asSignaled.TargetClockLocation = aircraftVgtProvider.Points["Center"];
asSignaled.SignalSense = AgECrdnSignalSense.eCrdnSignalSenseTransmit;
IAgCrdnSignalDelayBasic basicSignalDelay = asSignaled.SignalDelay as IAgCrdnSignalDelayBasic;
basicSignalDelay.SpeedOption = AgECrdnSpeedOptions.eCrdnLightTransmissionSpeed;
basicSignalDelay.TimeDelayConvergence = 0.01;
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
signaled event array.
[Visual Basic .NET] |
Copy Code
|
Dim satelliteVgtProvider As IAgCrdnProvider =
stkRoot.GetObjectFromPath("Satellite/LEO").Vgt
Dim aircraftVgtProvider As IAgCrdnProvider =
stkRoot.GetObjectFromPath("Aircraft/UAV").Vgt
Dim eventArray As IAgCrdnEventArray =
satelliteVgtProvider.EventArrays.Factory.CreateEventArraySignaled("MyEventArraySignaled",
"MyDescription")
Dim asSignaled As IAgCrdnEventArraySignaled = TryCast(eventArray,
IAgCrdnEventArraySignaled)
asSignaled.OriginalTimeArray =
aircraftVgtProvider.EventArrays("OneMinuteSampleTimes")
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.eCrdnLightTransmissionSpeed
basicSignalDelay.TimeDelayConvergence = 0.01
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
<>
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
|
|
CoClasses that Implement
IAgCrdnEventArraySignaled