public class GpsCommunicationsFrontEnd extends Platform implements INavigationCommunicationsService, IGpsCommunicationsReceiverConfiguration
GPS Receiver
.Constructor and Description |
---|
GpsCommunicationsFrontEnd()
Initializes a new instance with default values.
|
GpsCommunicationsFrontEnd(GpsCommunicationsFrontEnd existingInstance,
CopyContext context)
Initializes a new instance as a copy of an existing instance.
|
GpsCommunicationsFrontEnd(PlatformCollection gpsConstellation,
GpsSignalConfiguration signalConfiguration,
Point location,
Axes orientation)
Creates a front end for a
GpsReceiver that can be used to model communications between GPS satellites and
the GpsReceiver , using a predefined receiver signal configuration. |
GpsCommunicationsFrontEnd(PlatformCollection gpsConstellation,
NavigationSignalCollection signalsToTrack,
List<SignalPropagationModel> signalPropagationModels,
Point location,
Axes orientation)
Creates a front end for a
GpsReceiver that can be used to model communications between GPS satellites and
the GpsReceiver . |
Modifier and Type | Method and Description |
---|---|
protected boolean |
checkForSameDefinition(GpsCommunicationsFrontEnd other)
Checks to determine if another instance has the same definition as this instance and
returns
true if it does. |
protected boolean |
checkForSameDefinition(Platform other)
Checks to determine if another instance has the same definition as this instance and
returns
true if it does. |
Object |
clone(CopyContext context)
Clones this object using the specified context.
|
protected int |
computeCurrentDefinitionHashCode()
Computes a hash code based on the current properties of this object.
|
void |
enumerateDependencies(DependencyEnumerator enumerator)
Enumerates the dependencies of this object by calling
DependencyEnumerator#enumerate(T) for each object that this object directly depends upon. |
GnssLinkBudgetScalarsCollection |
getAllLinkBudgets(GpsReceiver receiver)
Gets the GNSS link budgets for all satellites.
|
double |
getAntennaEfficiency()
Gets the efficiency of the receiver's antenna, as a ratio between zero and one.
|
double |
getAntennaNoiseTemperature()
Gets the equivalent noise temperature resulting from effects
outside the antenna; galactic noise, Earth's albedo, etc., in kelvin.
|
double |
getCorrelatorSpacing()
Gets the spacing between the early and late correlator peaks, in chips.
|
double |
getDelayLockLoopFilterBandwidth()
Gets the bandwidth of the DLL tracking loop, in hertz.
|
JulianDate |
getEpoch()
Gets the time at which the receiver starts receiving signals.
|
double |
getFrontEndBandwidth()
Gets the bandwidth of the receiver used to track all signals, in hertz.
|
SignalPropagationGraph |
getFrontEndSignalPropagationGraph()
Gets the
SignalPropagationGraph created by this GpsCommunicationsFrontEnd . |
boolean |
getIncludeGpsSignalsAsInterferers()
Gets a value indicating whether to add GPS signals as interference sources in the front end's communication system.
|
ServiceProviderCollection |
getInterferingSources()
Gets the list of interfering sources for this
GpsCommunicationsFrontEnd . |
boolean |
getIsDualFrequency()
Gets a value indicating whether this receiver uses signals from two frequencies.
|
double |
getLnaGain()
Gets the gain of the Low Noise Amplifier (LNA).
|
NavigationReceiverAccessQuery |
getNavigationReceiverAccessQuery(GpsReceiver gpsReceiver,
int satelliteID)
Communication-based access query for a single
NavigationReceiverChannel which
determines access based on all signals defined in the GpsSignalConfiguration . |
PlatformCollection |
getNavigationSatellites()
Gets a collection of platforms that contain the
IGpsPrnService , INavigationTransmitterService and IGpsSatelliteOutageService . |
double |
getNoiseFactor()
|
Polarization |
getPolarization()
Gets the polarization.
|
double |
getPostLnaGain()
Gets the gain of the cabling after the Low Noise Amplifier (LNA).
|
double |
getPreLnaGain()
Gets the gain of the cabling and filtering prior to reaching the Low Noise Amplifier (LNA).
|
RadioFrequencyGainPattern |
getReceiverAntennaGainPattern()
Gets the front end's antenna gain pattern.
|
NavigationReceiverChannelCollection |
getReceiverChannels()
Gets the collection of
NavigationReceiverChannels
used in this receiver. |
double |
getReceiverOperatingTemperature()
Gets the ambient temperature where the receiver is operating, in kelvin.
|
GnssLinkBudgetScalarsCollection |
getSatelliteLinkBudgets(GpsReceiver receiver,
int satelliteID)
Gets GNSS link budgets for a specific satellite identified by
satelliteID . |
List<SignalPropagationModel> |
getSignalPropagationModels()
Gets a collection of
SignalPropagationModels
that define the propagation environment for the GPS signals. |
NavigationSignalCollection |
getSignalsToTrack()
Gets a collection of
NavigationSignals
that define what each NavigationReceiverChannel will track. |
void |
setAntennaEfficiency(double value)
Sets the efficiency of the receiver's antenna, as a ratio between zero and one.
|
void |
setAntennaNoiseTemperature(double value)
Sets the equivalent noise temperature resulting from effects
outside the antenna; galactic noise, Earth's albedo, etc., in kelvin.
|
void |
setCorrelatorSpacing(double value)
Sets the spacing between the early and late correlator peaks, in chips.
|
void |
setDelayLockLoopFilterBandwidth(double value)
Sets the bandwidth of the DLL tracking loop, in hertz.
|
void |
setEpoch(JulianDate value)
Sets the time at which the receiver starts receiving signals.
|
void |
setFrontEndBandwidth(double value)
Sets the bandwidth of the receiver used to track all signals, in hertz.
|
void |
setIncludeGpsSignalsAsInterferers(boolean value)
Sets a value indicating whether to add GPS signals as interference sources in the front end's communication system.
|
void |
setIsDualFrequency(boolean value)
Sets a value indicating whether this receiver uses signals from two frequencies.
|
void |
setLnaGain(double value)
Sets the gain of the Low Noise Amplifier (LNA).
|
void |
setNoiseFactor(double value)
|
void |
setPolarization(Polarization value)
Sets the polarization.
|
void |
setPostLnaGain(double value)
Sets the gain of the cabling after the Low Noise Amplifier (LNA).
|
void |
setPreLnaGain(double value)
Sets the gain of the cabling and filtering prior to reaching the Low Noise Amplifier (LNA).
|
void |
setReceiverAntennaGainPattern(RadioFrequencyGainPattern value)
Sets the front end's antenna gain pattern.
|
void |
setReceiverOperatingTemperature(double value)
Sets the ambient temperature where the receiver is operating, in kelvin.
|
checkForSameDefinition, freezeAggregatedObjects, getChildren, getLocationPoint, getName, getOrientationAxes, getParent, getReferenceFrame, getService, setLocationPoint, setName, setOrientationAxes
checkForSameDefinition, getExtensions
areSameDefinition, areSameDefinition, areSameDefinition, areSameDefinition, areSameDefinition, collectionItemsAreSameDefinition, collectionItemsAreSameDefinition, collectionItemsAreSameDefinition, dictionaryItemsAreSameDefinition, freeze, getCollectionHashCode, getCollectionHashCode, getCollectionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDictionaryHashCode, getIsFrozen, isSameDefinition, throwIfFrozen
public GpsCommunicationsFrontEnd()
public GpsCommunicationsFrontEnd(@Nonnull PlatformCollection gpsConstellation, @Nonnull NavigationSignalCollection signalsToTrack, List<SignalPropagationModel> signalPropagationModels, Point location, Axes orientation)
GpsReceiver
that can be used to model communications between GPS satellites and
the GpsReceiver
.
Default values are set for the parameters on this front end. See the Programmer's Guide in the documentation for more information.
gpsConstellation
- The PlatformCollection
of GPS satellites created from one of the
GpsCommunicationsConstellation
methods.signalsToTrack
- The collection of signals that each channel in the receiver will attempt to track.signalPropagationModels
- A list of models the signals use while propagating through space. Note that no propagation models
are used by default; you must supply all that are to be used. Additionally, you must add the models in
order; Free Space Delay, Doppler, Atmospheric attenuation, for example.location
- A Point
describing the position of the GpsReceiver
over time.orientation
- An Axes
describing the orientation of the GpsReceiver
over time.public GpsCommunicationsFrontEnd(@Nonnull PlatformCollection gpsConstellation, @Nonnull GpsSignalConfiguration signalConfiguration, Point location, Axes orientation)
GpsReceiver
that can be used to model communications between GPS satellites and
the GpsReceiver
, using a predefined receiver signal configuration.
The GpsSignalConfiguration
is used to add specific NavigationSignal
to each NavigationReceiverChannel
in the
NavigationReceiverChannelCollection
for this front end.
Default values are set for the parameters on this front end. See the Programmer's Guide in the documentation for more information.
The following signal propagation models are added to the front end (in order):
gpsConstellation
- The PlatformCollection
of GPS satellites created from one of the
GpsCommunicationsConstellation
methods.signalConfiguration
- The GPS signal configuration for this receiver.location
- A Point
describing the position of the GpsReceiver
over time.orientation
- An Axes
describing the orientation of the GpsReceiver
over time.public GpsCommunicationsFrontEnd(@Nonnull GpsCommunicationsFrontEnd existingInstance, @Nonnull CopyContext context)
See ICloneWithContext.clone(CopyContext)
for more information about how to implement this constructor
in a derived class.
existingInstance
- The existing instance to copy.context
- A CopyContext
that controls the depth of the copy.ArgumentNullException
- Thrown when existingInstance
or context
is null
.public Object clone(CopyContext context)
This method should be implemented to call a copy constructor on the class of the
object being cloned. The copy constructor should take the CopyContext
as a parameter
in addition to the existing instance to copy. The copy constructor should first call
CopyContext.addObjectMapping(T, T)
to identify the newly constructed instance
as a copy of the existing instance. It should then copy all fields, using
CopyContext.updateReference(T)
to copy any reference fields.
A typical implementation of ICloneWithContext
:
public static class MyClass implements ICloneWithContext {
public MyClass(MyClass existingInstance, CopyContext context) {
context.addObjectMapping(existingInstance, this);
someReference = context.updateReference(existingInstance.someReference);
}
@Override
public final Object clone(CopyContext context) {
return new MyClass(this, context);
}
private Object someReference;
}
In general, all fields that are reference types should be copied with a call to
CopyContext.updateReference(T)
. There are a couple of exceptions:
If one of these exceptions applies, the CopyContext
should be given an opportunity
to update the reference before the reference is copied explicitly. Use
CopyContext.updateReference(T)
to update the reference. If CopyContext.updateReference(T)
returns
the original object, indicating that the context does not have a replacement registered,
then copy the object manually by invoking a Clone method, a copy constructor, or by manually
constructing a new instance and copying the values.
alwaysCopy = context.updateReference(existingInstance.alwaysCopy);
if (existingInstance.alwaysCopy != null && alwaysCopy == existingInstance.alwaysCopy) {
alwaysCopy = (AlwaysCopy) existingInstance.alwaysCopy.clone(context);
}
If you are implementing an evaluator (a class that implements IEvaluator
), the
IEvaluator.updateEvaluatorReferences(agi.foundation.infrastructure.CopyContext)
method shares some responsibilities with the
copy context constructor. Code duplication can be avoided by doing the following:
CopyContext.updateReference(T)
. You should still call CopyContext.updateReference(T)
on any references to
non-evaluators.
IEvaluator.updateEvaluatorReferences(agi.foundation.infrastructure.CopyContext)
as the last line in the constructor and pass it the
same CopyContext
passed to the constructor.
IEvaluator.updateEvaluatorReferences(agi.foundation.infrastructure.CopyContext)
as normal. See the reference documentation for
IEvaluator.updateEvaluatorReferences(agi.foundation.infrastructure.CopyContext)
for more information on implementing that method.
public MyClass(MyClass existingInstance, CopyContext context) {
super(existingInstance, context);
someReference = context.updateReference(existingInstance.someReference);
evaluatorReference = existingInstance.evaluatorReference;
updateEvaluatorReferences(context);
}
@Override
public void updateEvaluatorReferences(CopyContext context) {
evaluatorReference = context.updateReference(evaluatorReference);
}
@Override
public Object clone(CopyContext context) {
return new MyClass(this, context);
}
private Object someReference;
private IEvaluator evaluatorReference;
clone
in interface ICloneWithContext
clone
in class Platform
context
- The context to use to perform the copy.protected final boolean checkForSameDefinition(Platform other)
true
if it does. Derived classes MUST override this method and check
all new fields introduced by the derived class for definitional equivalence. It is NOT necessary
to check base class fields because the base class will already have done that. When overriding this method,
you should NOT call the base implementation because it will return false
for all derived-class instances.
Derived classes should check the type of other
to preserve the symmetric nature of IEquatableDefinition.isSameDefinition(java.lang.Object)
.checkForSameDefinition
in class Platform
other
- The other instance to compare to this one.true
if the two objects are defined equivalently; otherwise false
.protected boolean checkForSameDefinition(GpsCommunicationsFrontEnd other)
true
if it does. Derived classes MUST override this method and check
all new fields introduced by the derived class for definitional equivalence. It is NOT necessary
to check base class fields because the base class will already have done that. When overriding this method,
you should NOT call the base implementation because it will return false
for all derived-class instances.
Derived classes should check the type of other
to preserve the symmetric nature of IEquatableDefinition.isSameDefinition(java.lang.Object)
.other
- The other instance to compare to this one.true
if the two objects are defined equivalently; otherwise false
.protected int computeCurrentDefinitionHashCode()
GpsCommunicationsFrontEnd.checkForSameDefinition(agi.foundation.platforms.Platform)
method.computeCurrentDefinitionHashCode
in class Platform
public void enumerateDependencies(DependencyEnumerator enumerator)
DependencyEnumerator#enumerate(T)
for each object that this object directly depends upon.
Derived classes which contain additional dependencies MUST override this method, call the base
implementation, and enumerate dependencies introduced by the derived class.enumerateDependencies
in interface IEnumerateDependencies
enumerateDependencies
in class Platform
enumerator
- The enumerator that is informed of the dependencies of this object.public final boolean getIncludeGpsSignalsAsInterferers()
public final void setIncludeGpsSignalsAsInterferers(boolean value)
@Nonnull public final SignalPropagationGraph getFrontEndSignalPropagationGraph()
SignalPropagationGraph
created by this GpsCommunicationsFrontEnd
.SignalPropagationGraph
defined by this GpsCommunicationsFrontEnd
.public final PlatformCollection getNavigationSatellites()
IGpsPrnService
, INavigationTransmitterService
and IGpsSatelliteOutageService
.public final NavigationSignalCollection getSignalsToTrack()
NavigationSignals
that define what each NavigationReceiverChannel
will track.public final List<SignalPropagationModel> getSignalPropagationModels()
SignalPropagationModels
that define the propagation environment for the GPS signals.@Nonnull public final JulianDate getEpoch()
This time is necessary for the transition from one NavigationSignalTrackingType
to another.
public final void setEpoch(@Nonnull JulianDate value)
This time is necessary for the transition from one NavigationSignalTrackingType
to another.
public final GnssLinkBudgetScalarsCollection getAllLinkBudgets(GpsReceiver receiver)
receiver
- The GPS receiver to determine link budgets for.@Nullable public final GnssLinkBudgetScalarsCollection getSatelliteLinkBudgets(GpsReceiver receiver, int satelliteID)
satelliteID
.
A collection of GnssLinkBudgetScalars
containing link budgets for each signal tracked by
the receiver's channel.receiver
- The GPS receiver to determine link budgets for.satelliteID
- The ID of the satellite for which the link budgets are desired.public final ServiceProviderCollection getInterferingSources()
GpsCommunicationsFrontEnd
. Note that any sources that you add
to this list must have the IPlaceHolderService
or ISignalTransmissionService
available.@Nullable public final NavigationReceiverAccessQuery getNavigationReceiverAccessQuery(GpsReceiver gpsReceiver, int satelliteID)
NavigationReceiverChannel
which
determines access based on all signals defined in the GpsSignalConfiguration
.getNavigationReceiverAccessQuery
in interface INavigationCommunicationsService
gpsReceiver
- The GPS receiver whose AccessQueries
are desired.satelliteID
- The ID of the satellite whose AccessQueries
are desired.NavigationReceiverAccessQuery
associated with the satelliteID
or null if the
satelliteID
is not found, or no constraints exist for the channel.@Nonnull public final NavigationReceiverChannelCollection getReceiverChannels()
NavigationReceiverChannels
used in this receiver.getReceiverChannels
in interface INavigationCommunicationsService
GpsCommunicationsFrontEnd
.public final RadioFrequencyGainPattern getReceiverAntennaGainPattern()
FrpaGainPattern
using the default
AntennaEfficiency
(get
/ set
) value.getReceiverAntennaGainPattern
in interface IGpsCommunicationsReceiverConfiguration
public final void setReceiverAntennaGainPattern(RadioFrequencyGainPattern value)
FrpaGainPattern
using the default
AntennaEfficiency
(get
/ set
) value.setReceiverAntennaGainPattern
in interface IGpsCommunicationsReceiverConfiguration
public final boolean getIsDualFrequency()
getIsDualFrequency
in interface IGpsCommunicationsReceiverConfiguration
public final void setIsDualFrequency(boolean value)
setIsDualFrequency
in interface IGpsCommunicationsReceiverConfiguration
public final double getNoiseFactor()
NoiseFactor
(get
/ set
) this front end uses to calculate noise on the
navigation signals. The default value is 1.995... (3 dB).getNoiseFactor
in interface IGpsCommunicationsReceiverConfiguration
public final void setNoiseFactor(double value)
NoiseFactor
(get
/ set
) this front end uses to calculate noise on the
navigation signals. The default value is 1.995... (3 dB).setNoiseFactor
in interface IGpsCommunicationsReceiverConfiguration
public final double getPreLnaGain()
getPreLnaGain
in interface IGpsCommunicationsReceiverConfiguration
public final void setPreLnaGain(double value)
setPreLnaGain
in interface IGpsCommunicationsReceiverConfiguration
public final double getLnaGain()
getLnaGain
in interface IGpsCommunicationsReceiverConfiguration
public final void setLnaGain(double value)
setLnaGain
in interface IGpsCommunicationsReceiverConfiguration
public final double getPostLnaGain()
getPostLnaGain
in interface IGpsCommunicationsReceiverConfiguration
public final void setPostLnaGain(double value)
setPostLnaGain
in interface IGpsCommunicationsReceiverConfiguration
public final double getAntennaNoiseTemperature()
getAntennaNoiseTemperature
in interface IGpsCommunicationsReceiverConfiguration
public final void setAntennaNoiseTemperature(double value)
setAntennaNoiseTemperature
in interface IGpsCommunicationsReceiverConfiguration
public final double getReceiverOperatingTemperature()
getReceiverOperatingTemperature
in interface IGpsCommunicationsReceiverConfiguration
public final void setReceiverOperatingTemperature(double value)
setReceiverOperatingTemperature
in interface IGpsCommunicationsReceiverConfiguration
public final double getFrontEndBandwidth()
GpsSignalConfiguration
specified in the constructor.getFrontEndBandwidth
in interface IGpsCommunicationsReceiverConfiguration
public final void setFrontEndBandwidth(double value)
GpsSignalConfiguration
specified in the constructor.setFrontEndBandwidth
in interface IGpsCommunicationsReceiverConfiguration
public final double getCorrelatorSpacing()
getCorrelatorSpacing
in interface IGpsCommunicationsReceiverConfiguration
public final void setCorrelatorSpacing(double value)
setCorrelatorSpacing
in interface IGpsCommunicationsReceiverConfiguration
public final double getDelayLockLoopFilterBandwidth()
This value is used in determining GPS noise from ScalarGpsCommunicationsReceiverChannelNoise
only.
getDelayLockLoopFilterBandwidth
in interface IGpsCommunicationsReceiverConfiguration
public final void setDelayLockLoopFilterBandwidth(double value)
This value is used in determining GPS noise from ScalarGpsCommunicationsReceiverChannelNoise
only.
setDelayLockLoopFilterBandwidth
in interface IGpsCommunicationsReceiverConfiguration
public final double getAntennaEfficiency()
Defaults to a value of 0.8.
getAntennaEfficiency
in interface IGpsCommunicationsReceiverConfiguration
public final void setAntennaEfficiency(double value)
Defaults to a value of 0.8.
setAntennaEfficiency
in interface IGpsCommunicationsReceiverConfiguration
public final Polarization getPolarization()
getPolarization
in interface IGpsCommunicationsReceiverConfiguration
public final void setPolarization(Polarization value)
setPolarization
in interface IGpsCommunicationsReceiverConfiguration