public abstract class Photodetector extends SignalProcessor
Modifier | Constructor and Description |
---|---|
protected |
Photodetector()
Initializes a new instance.
|
protected |
Photodetector(Photodetector existingInstance,
CopyContext context)
Initializes a new instance as a copy of an existing instance.
|
protected |
Photodetector(SignalProcessor input,
IServiceProvider parentReceiver,
double fieldOfView,
double wavelength,
double bandwidth,
SignalComputation skySpectralRadiance,
SignalComputation sunSpectralRadiantEmittance,
double opticalBandpassFilterBandwidth,
CentralBody centralBody)
Initializes a new instance with given input signal processor, parent receiver, field-of-view, bandwidth, sky spectral radiance model,
sun spectral radiant emittance model,optical bandpass filter bandwidth, and central body.
|
Modifier and Type | Method and Description |
---|---|
protected abstract boolean |
checkForSameDefinition(Photodetector other)
Checks to determine if another instance has the same definition as this instance and
returns
true if it does. |
protected boolean |
checkForSameDefinition(SignalProcessor other)
Checks to determine if another instance has the same definition as this instance and
returns
true if it does. |
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. |
double |
getBandwidth()
Gets the photodetector bandwidth, in hertz.
|
CentralBody |
getCentralBody()
Gets the central body for the photodetector.
|
double |
getFieldOfView()
Gets the field of view of the photodetector in radians.
|
SignalProcessor |
getInputSignalProcessor()
Gets the input to the signal processor.
|
double |
getOpticalBandpassFilterBandwidth()
Gets the bandwidth of the optical bandpass filter preceding the detector, in hertz.
|
IServiceProvider |
getParentReceiver()
Gets the parent receiver whose axis is used in order to determine if the sun is within the field-of-view of the detector.
|
SignalComputation |
getSkySpectralRadiance()
Gets the sky spectral radiance model which produces a value in W * m-2 * sr-1 * Hz-1.
|
SignalComputation |
getSunSpectralRadiantEmittance()
Gets the sun spectral radiant emittance model which produces a value in W * m-2 * Hz-1.
|
double |
getWavelength()
Gets the design wavelength of the photodetector, in meters.
|
void |
setBandwidth(double value)
Sets the photodetector bandwidth, in hertz.
|
void |
setCentralBody(CentralBody value)
Sets the central body for the photodetector.
|
void |
setFieldOfView(double value)
Sets the field of view of the photodetector in radians.
|
void |
setInputSignalProcessor(SignalProcessor value)
Sets the input to the signal processor.
|
void |
setOpticalBandpassFilterBandwidth(double value)
Sets the bandwidth of the optical bandpass filter preceding the detector, in hertz.
|
void |
setParentReceiver(IServiceProvider value)
Sets the parent receiver whose axis is used in order to determine if the sun is within the field-of-view of the detector.
|
void |
setSkySpectralRadiance(SignalComputation value)
Sets the sky spectral radiance model which produces a value in W * m-2 * sr-1 * Hz-1.
|
void |
setSunSpectralRadiantEmittance(SignalComputation value)
Sets the sun spectral radiant emittance model which produces a value in W * m-2 * Hz-1.
|
void |
setWavelength(double value)
Sets the design wavelength of the photodetector, in meters.
|
checkForSameDefinition, getProcessingDelay, getService, getSignalEvaluator, getSignalEvaluator, getSignalOutput
areSameDefinition, areSameDefinition, areSameDefinition, areSameDefinition, areSameDefinition, clone, collectionItemsAreSameDefinition, collectionItemsAreSameDefinition, collectionItemsAreSameDefinition, dictionaryItemsAreSameDefinition, freeze, freezeAggregatedObjects, getCollectionHashCode, getCollectionHashCode, getCollectionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDefinitionHashCode, getDictionaryHashCode, getIsFrozen, isSameDefinition, throwIfFrozen
protected Photodetector()
protected Photodetector(SignalProcessor input, IServiceProvider parentReceiver, double fieldOfView, double wavelength, double bandwidth, SignalComputation skySpectralRadiance, SignalComputation sunSpectralRadiantEmittance, double opticalBandpassFilterBandwidth, CentralBody centralBody)
input
- The signal processor from which the signals to process are obtained.parentReceiver
- The parent receiver whose axis is used in order to determine if the sun is within the field-of-view of the detector.fieldOfView
- The field-of-view angle of the photodetector used to compute detector background light noise.wavelength
- The design wavelength of the photodetector.bandwidth
- The bandwidth for the photodetector electronics. Used in order to compute the detector thermal noise.skySpectralRadiance
- The sky spectral radiance model used to compute the sky background light noise.sunSpectralRadiantEmittance
- The sun spectral radiant emittance model used to compute the sun background light noise if
it is determined that the sun is within the detector field-of-view.opticalBandpassFilterBandwidth
- The bandwidth of the detector optics bandpass filter.centralBody
- The central body.protected Photodetector(@Nonnull Photodetector 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
.protected final boolean checkForSameDefinition(SignalProcessor 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 SignalProcessor
other
- The other instance to compare to this one.true
if the two objects are defined equivalently; otherwise false
.protected abstract boolean checkForSameDefinition(Photodetector 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()
Photodetector.checkForSameDefinition(agi.foundation.communications.signalprocessing.SignalProcessor)
method.computeCurrentDefinitionHashCode
in class SignalProcessor
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 DefinitionalObject
enumerator
- The enumerator that is informed of the dependencies of this object.public final double getFieldOfView()
public final void setFieldOfView(double value)
public final double getOpticalBandpassFilterBandwidth()
public final void setOpticalBandpassFilterBandwidth(double value)
public final SignalComputation getSkySpectralRadiance()
public final void setSkySpectralRadiance(SignalComputation value)
public final SignalComputation getSunSpectralRadiantEmittance()
public final void setSunSpectralRadiantEmittance(SignalComputation value)
public final double getWavelength()
public final void setWavelength(double value)
public final double getBandwidth()
public final void setBandwidth(double value)
public final CentralBody getCentralBody()
public final void setCentralBody(CentralBody value)
public final IServiceProvider getParentReceiver()
public final void setParentReceiver(IServiceProvider value)
public SignalProcessor getInputSignalProcessor()
getInputSignalProcessor
in class SignalProcessor
public void setInputSignalProcessor(SignalProcessor value)
setInputSignalProcessor
in class SignalProcessor