Class CaccTacticalPlannerFactory

    • Constructor Detail

      • CaccTacticalPlannerFactory

        public CaccTacticalPlannerFactory​(CarFollowingModelFactory<? extends CarFollowingModel> carFollowingModelFactory,
                                          LongitudinalControllerFactory<? extends CaccController> longitudinalControllerFactory,
                                          OTSSimulatorInterface simulator,
                                          GTUType caccGTUType)
        Constructor.
        Parameters:
        carFollowingModelFactory - CarFollowingModelFactory&;t;? extends CarFollowingModel>; car-following model factory
        longitudinalControllerFactory - LongitudinalControllerFactory<CACC>; longitudinal controller factory
        simulator - OTSSimulatorInterface; simulator
        caccGTUType - GTUType; the GTU type that implements CACC
    • Method Detail

      • create

        public CaccTacticalPlanner create​(LaneBasedGTU gtu)
                                   throws GTUException
        Creates a new tactical planner for the given GTU.
        Parameters:
        gtu - LaneBasedGTU; GTU
        Returns:
        tactical planner for the given GTU
        Throws:
        GTUException - if the gtu is not suitable in any way for the creation of the tactical planner
      • getParameters

        public Parameters getParameters()
                                 throws ParameterException
        Returns parameters for the given component. These parameters should contain, and possibly overwrite, parameters from sub-components. A parameter factory at the highest level (strategical planner) may overwrite any parameter. This combination allows that for sub-components, default factories can be used, while the parameter factory only overwrites parameters different for specific GTU types. The default implementation returns all default parameter values declared at the class.

        Conventional use is:
         Parameters parameters = this.subComponent1Factory.getParameters();
         this.subComponent2Factory.getParameters().setAllIn(parameters);
         parameters.setDefaultParameters(componentClass);
         parameters.setDefaultParameters(staticUtilityClass);
         return parameters;
         
        where all parameters used in componentClass are defined or forwarded in componentClass.
         // forwarded
         public static final ParameterTypeAcceleration A = ParameterTypes.A;
         
         // defined
         public static final ParameterTypeDouble FACTOR = new ParameterTypeDouble("factor", "factor on response", 1.0);
         
        The same holds for static utilities that are used. Parameters should be defined at the utility class, and parameters of used utilities should be included.

        Returns:
        Parameters; parameters for the given component
        Throws:
        ParameterException - on parameter exception