A
- type of the start detectorO
- type of the stop detectorpublic abstract class StartStopEventsTrigger<A extends AbstractDetector<A>,O extends AbstractDetector<O>> extends AbstractManeuverTriggers
The thruster starts firing when the start detector becomes positive. The thruster stops firing when the stop detector becomes positive. The 2 detectors should not be positive at the same time. A date detector is not suited as it does not delimit an interval. They can be both negative at the same time.
IntervalEventTrigger
Modifier | Constructor and Description |
---|---|
protected |
StartStopEventsTrigger(A prototypeStartDetector,
O prototypeStopDetector)
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
protected abstract <D extends FieldEventDetector<S>,S extends CalculusFieldElement<S>> |
convertStartDetector(Field<S> field,
A detector)
Convert a primitive firing start detector into a field firing start detector.
|
protected abstract <D extends FieldEventDetector<S>,S extends CalculusFieldElement<S>> |
convertStopDetector(Field<S> field,
O detector)
Convert a primitive firing stop detector into a field firing stop detector.
|
Stream<EventDetector> |
getEventsDetectors()
Get the event detectors associated with the triggers.
|
<S extends CalculusFieldElement<S>> |
getFieldEventsDetectors(Field<S> field)
Get the event detectors associated with the triggers.
|
A |
getStartDetector()
Getter for the firing start detector.
|
O |
getStopDetector()
Getter for the firing stop detector.
|
protected boolean |
isFiringOnInitialState(SpacecraftState initialState,
boolean isForward)
Method to check if the thruster is firing on initialization.
|
addResetter, addResetter, applyResetters, applyResetters, getFirings, init, init, initializeResetters, initializeResetters, isFiring, isFiring, notifyResetters, notifyResetters
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getName, getParametersDrivers
protected StartStopEventsTrigger(A prototypeStartDetector, O prototypeStopDetector)
Note that the startDetector
and stopDetector
passed as an argument are used only
as a prototypes from which new detectors will be built using their
withHandler
methods to
set up internal handlers. The original event handlers from the prototype
will be ignored and never called.
If the trigger is used in a field-based propagation
,
the detector will be automatically converted to a field equivalent. Beware however that the
eventOccurred
of the converted propagator will call the method with the same name in the prototype
detector, in order to get the correct return value.
prototypeStartDetector
- prototype detector for firing startprototypeStopDetector
- prototype detector for firing stoppublic A getStartDetector()
public O getStopDetector()
protected boolean isFiringOnInitialState(SpacecraftState initialState, boolean isForward)
isFiringOnInitialState
in class AbstractManeuverTriggers
initialState
- initial spacecraft stateisForward
- if true, propagation will be in the forward directionpublic Stream<EventDetector> getEventsDetectors()
public <S extends CalculusFieldElement<S>> Stream<FieldEventDetector<S>> getFieldEventsDetectors(Field<S> field)
S
- type of the field elementsfield
- field to which the state belongsprotected abstract <D extends FieldEventDetector<S>,S extends CalculusFieldElement<S>> FieldAbstractDetector<D,S> convertStartDetector(Field<S> field, A detector)
There is not need to set up withMaxCheck
,
withThreshold
, or
withHandler
in the converted detector, this will be done by caller.
A skeleton implementation of this method to convert some XyzDetector
into FieldXyzDetector
,
considering these detectors are created from a date and a number parameter is:
protected <D extends FieldEventDetector<S>, S extends CalculusFieldElement<S>>
FieldAbstractDetector<D, S> convertStartDetector(final Field<S> field, final XyzDetector detector) {
final FieldAbsoluteDate<S> date = new FieldAbsoluteDate<>(field, detector.getDate());
final S param = field.getZero().newInstance(detector.getParam());
final FieldAbstractDetector<D, S> converted = (FieldAbstractDetector<D, S>) new FieldXyzDetector<>(date, param);
return converted;
}
D
- type of the event detectorS
- type of the field elementsfield
- field to which the state belongsdetector
- primitive firing start detector to convertprotected abstract <D extends FieldEventDetector<S>,S extends CalculusFieldElement<S>> FieldAbstractDetector<D,S> convertStopDetector(Field<S> field, O detector)
There is not need to set up withMaxCheck
,
withThreshold
, or
withHandler
in the converted detector, this will be done by caller.
A skeleton implementation of this method to convert some XyzDetector
into FieldXyzDetector
,
considering these detectors are created from a date and a number parameter is:
protected <D extends FieldEventDetector<S>, S extends CalculusFieldElement<S>>
FieldAbstractDetector<D, S> convertStopDetector(final Field<S> field, final XyzDetector detector) {
final FieldAbsoluteDate<S> date = new FieldAbsoluteDate<>(field, detector.getDate());
final S param = field.getZero().newInstance(detector.getParam());
final FieldAbstractDetector<D, S> converted = (FieldAbstractDetector<D, S>) new FieldXyzDetector<>(date, param);
return converted;
}
D
- type of the event detectorS
- type of the field elementsfield
- field to which the state belongsdetector
- primitive firing stop detector to convertCopyright © 2002-2022 CS GROUP. All rights reserved.