public abstract class Photodiode extends Photodetector
Modifier | Constructor and Description |
---|---|
protected |
Photodiode()
Initializes a new instance.
|
protected |
Photodiode(Photodiode existingInstance,
CopyContext context)
Initializes a new instance as a copy of an existing instance.
|
protected |
Photodiode(SignalProcessor input,
IServiceProvider parentReceiver,
double fieldOfView,
double wavelength,
double bandwidth,
double noiseTemperature,
double efficiency,
double darkCurrent,
double loadImpedance,
SignalComputation skySpectralRadiance,
SignalComputation sunSpectralRadiantEmittance,
double opticalBandpassFilterBandwidth)
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, noise temperature, efficiency, dark current,
and load impedance.
|
protected |
Photodiode(SignalProcessor input,
IServiceProvider parentReceiver,
double fieldOfView,
double wavelength,
double bandwidth,
double noiseTemperature,
double efficiency,
double darkCurrent,
double loadImpedance,
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, noise temperature, efficiency, dark current,
load impedance, and central body.
|
Modifier and Type | Method and Description |
---|---|
protected boolean |
checkForSameDefinition(Photodetector other)
Checks to determine if another instance has the same definition as this instance and
returns
true if it does. |
protected abstract boolean |
checkForSameDefinition(Photodiode 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.
|
double |
getDarkCurrent()
Gets the photodetector dark current in amps.
|
double |
getEfficiency()
Gets the photodetector quantum efficiency.
|
double |
getLoadImpedance()
Gets the photodetector load impedance in ohms.
|
double |
getNoiseTemperature()
Gets the photodetector noise temperature, in kelvin.
|
void |
setDarkCurrent(double value)
Sets the photodetector dark current in amps.
|
void |
setEfficiency(double value)
Sets the photodetector quantum efficiency.
|
void |
setLoadImpedance(double value)
Sets the photodetector load impedance in ohms.
|
void |
setNoiseTemperature(double value)
Sets the photodetector noise temperature, in kelvin.
|
protected void |
validateProperties(EvaluatorGroup group,
SignalPropagationGraph graph)
Validates that required properties and parameters are configured correctly in order to get an
evaluator for this instance.
|
checkForSameDefinition, enumerateDependencies, getBandwidth, getCentralBody, getFieldOfView, getInputSignalProcessor, getOpticalBandpassFilterBandwidth, getParentReceiver, getSkySpectralRadiance, getSunSpectralRadiantEmittance, getWavelength, setBandwidth, setCentralBody, setFieldOfView, setInputSignalProcessor, setOpticalBandpassFilterBandwidth, setParentReceiver, setSkySpectralRadiance, setSunSpectralRadiantEmittance, setWavelength
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 Photodiode()
protected Photodiode(SignalProcessor input, IServiceProvider parentReceiver, double fieldOfView, double wavelength, double bandwidth, double noiseTemperature, double efficiency, double darkCurrent, double loadImpedance, SignalComputation skySpectralRadiance, SignalComputation sunSpectralRadiantEmittance, double opticalBandpassFilterBandwidth)
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.noiseTemperature
- The detector circuit noise temperature.efficiency
- The quantum efficiency of the detector.darkCurrent
- The current present when no light is impinging on the detector.loadImpedance
- The detector circuit equivalent resistance.protected Photodiode(SignalProcessor input, IServiceProvider parentReceiver, double fieldOfView, double wavelength, double bandwidth, double noiseTemperature, double efficiency, double darkCurrent, double loadImpedance, 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.noiseTemperature
- The detector circuit noise temperature.efficiency
- The quantum efficiency of the detector.darkCurrent
- The current present when no light is impinging on the detector.loadImpedance
- The detector circuit equivalent resistance.centralBody
- The central body.protected Photodiode(@Nonnull Photodiode 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(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)
.checkForSameDefinition
in class Photodetector
other
- The other instance to compare to this one.true
if the two objects are defined equivalently; otherwise false
.protected abstract boolean checkForSameDefinition(Photodiode 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()
Photodiode.checkForSameDefinition(agi.foundation.communications.signalprocessing.Photodetector)
method.computeCurrentDefinitionHashCode
in class Photodetector
public final double getNoiseTemperature()
public final void setNoiseTemperature(double value)
public final double getEfficiency()
public final void setEfficiency(double value)
public final double getDarkCurrent()
public final void setDarkCurrent(double value)
public final double getLoadImpedance()
public final void setLoadImpedance(double value)
protected void validateProperties(@Nonnull EvaluatorGroup group, @Nonnull SignalPropagationGraph graph)
group
- The evaluator group in which to create the evaluator.graph
- The graph of the communication links used to propagate signals.ArgumentNullException
- Thrown when group
or graph
is null
.PropertyInvalidException
- Thrown when InputSignalProcessor
(get
/ set
),
SkySpectralRadiance
(get
/ set
),
SunSpectralRadiantEmittance
(get
/ set
),
ParentReceiver
(get
/ set
), or
CentralBody
(get
/ set
) are null
, or when
NoiseTemperature
(get
/ set
) or DarkCurrent
(get
/ set
) are negative, or when
Bandwidth
(get
/ set
),
LoadImpedance
(get
/ set
), or
OpticalBandpassFilterBandwidth
(get
/ set
) are not greater than zero, or when
Wavelength
(get
/ set
) is less than
CommunicationsConstants.MinimumOpticalWavelength
or greater than
CommunicationsConstants.MaximumOpticalWavelength
, or when
FieldOfView
(get
/ set
) is less than or equal to zero or greater than Math.PI
, or when
Efficiency
(get
/ set
) is less than zero or greater than one.