Eclipse SUMO - Simulation of Urban MObility
MSDevice_DriverState.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2013-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
20 /****************************************************************************/
21 #ifndef MSDevice_DriverState_h
22 #define MSDevice_DriverState_h
23 
24 
25 // ===========================================================================
26 // included modules
27 // ===========================================================================
28 #include <config.h>
29 
30 #include "MSVehicleDevice.h"
31 #include <utils/common/SUMOTime.h>
33 
34 
35 // ===========================================================================
36 // class declarations
37 // ===========================================================================
38 class SUMOVehicle;
39 class MSVehicle;
41 
42 
43 // ===========================================================================
44 // class definitions
45 // ===========================================================================
56 public:
60  static void insertOptions(OptionsCont& oc);
61 
62 
73  static void buildVehicleDevices(SUMOVehicle& v, std::vector<MSVehicleDevice*>& into);
74 
76  void update();
77 
79  inline std::shared_ptr<MSSimpleDriverState> getDriverState() const {
80  return myDriverState;
81  }
82 
83 private:
86  static double getMinAwareness(const SUMOVehicle& v, const OptionsCont& oc);
87  static double getInitialAwareness(const SUMOVehicle& v, const OptionsCont& oc);
88  static double getErrorTimeScaleCoefficient(const SUMOVehicle& v, const OptionsCont& oc);
89  static double getErrorNoiseIntensityCoefficient(const SUMOVehicle& v, const OptionsCont& oc);
90  static double getSpeedDifferenceErrorCoefficient(const SUMOVehicle& v, const OptionsCont& oc);
91  static double getSpeedDifferenceChangePerceptionThreshold(const SUMOVehicle& v, const OptionsCont& oc);
92  static double getHeadwayChangePerceptionThreshold(const SUMOVehicle& v, const OptionsCont& oc);
93  static double getHeadwayErrorCoefficient(const SUMOVehicle& v, const OptionsCont& oc);
94  static double getMaximalReactionTime(const SUMOVehicle& v, const OptionsCont& oc);
96 
97 
98 public:
101 
103  const std::string deviceName() const {
104  return "driverstate";
105  }
106 
108  std::string getParameter(const std::string& key) const;
109 
111  void setParameter(const std::string& key, const std::string& value);
112 
113 
114 private:
120  MSDevice_DriverState(SUMOVehicle& holder, const std::string& id,
121  double minAwareness,
122  double initialAwareness,
123  double errorTimeScaleCoefficient,
124  double errorNoiseIntensityCoefficient,
125  double speedDifferenceErrorCoefficient,
126  double speedDifferenceChangePerceptionThreshold,
127  double headwayChangePerceptionThreshold,
128  double headwayErrorCoefficient,
129  double maximalReactionTime);
130 
132  void initDriverState();
133 
134 private:
137 
151 
153  std::shared_ptr<MSSimpleDriverState> myDriverState;
154 
155 private:
158 
161 
162 };
163 
164 
165 #endif
166 
167 /****************************************************************************/
168 
MSDevice_DriverState::getHeadwayErrorCoefficient
static double getHeadwayErrorCoefficient(const SUMOVehicle &v, const OptionsCont &oc)
Definition: MSDevice_DriverState.cpp:146
SUMOTime.h
MSVehicleDevice.h
MSDevice_DriverState::getDriverState
std::shared_ptr< MSSimpleDriverState > getDriverState() const
return internal state
Definition: MSDevice_DriverState.h:79
MSDevice_DriverState::myHeadwayChangePerceptionThreshold
double myHeadwayChangePerceptionThreshold
Definition: MSDevice_DriverState.h:147
MSDevice_DriverState::myErrorTimeScaleCoefficient
double myErrorTimeScaleCoefficient
Definition: MSDevice_DriverState.h:143
WrappingCommand.h
MSSimpleDriverState
Provides an interface to an error whose fluctuation is controlled via the driver's 'awareness',...
Definition: MSDriverState.h:103
MSDevice_DriverState::myInitialAwareness
double myInitialAwareness
Definition: MSDevice_DriverState.h:142
SUMOVehicle
Representation of a vehicle.
Definition: SUMOVehicle.h:61
MSDevice_DriverState::mySpeedDifferenceErrorCoefficient
double mySpeedDifferenceErrorCoefficient
Definition: MSDevice_DriverState.h:145
MSDevice_DriverState::deviceName
const std::string deviceName() const
return the name for this type of device
Definition: MSDevice_DriverState.h:103
MSDevice_DriverState::getErrorTimeScaleCoefficient
static double getErrorTimeScaleCoefficient(const SUMOVehicle &v, const OptionsCont &oc)
Definition: MSDevice_DriverState.cpp:126
MSDevice_DriverState
The ToC Device controls transition of control between automated and manual driving.
Definition: MSDevice_DriverState.h:55
MSDevice_DriverState::insertOptions
static void insertOptions(OptionsCont &oc)
Inserts MSDevice_DriverState-options.
Definition: MSDevice_DriverState.cpp:63
MSDevice_DriverState::mySpeedDifferenceChangePerceptionThreshold
double mySpeedDifferenceChangePerceptionThreshold
Definition: MSDevice_DriverState.h:146
MSDevice_DriverState::getMinAwareness
static double getMinAwareness(const SUMOVehicle &v, const OptionsCont &oc)
Definition: MSDevice_DriverState.cpp:118
MSDevice_DriverState::myMinAwareness
double myMinAwareness
Definition: MSDevice_DriverState.h:141
MSDevice_DriverState::myMaximalReactionTime
double myMaximalReactionTime
Definition: MSDevice_DriverState.h:149
MSDevice_DriverState::getHeadwayChangePerceptionThreshold
static double getHeadwayChangePerceptionThreshold(const SUMOVehicle &v, const OptionsCont &oc)
Definition: MSDevice_DriverState.cpp:142
MSDevice_DriverState::setParameter
void setParameter(const std::string &key, const std::string &value)
try to set the given parameter for this device. Throw exception for unsupported key
Definition: MSDevice_DriverState.cpp:262
MSDevice_DriverState::myErrorNoiseIntensityCoefficient
double myErrorNoiseIntensityCoefficient
Definition: MSDevice_DriverState.h:144
MSDevice_DriverState::getMaximalReactionTime
static double getMaximalReactionTime(const SUMOVehicle &v, const OptionsCont &oc)
Definition: MSDevice_DriverState.cpp:150
MSDevice_DriverState::buildVehicleDevices
static void buildVehicleDevices(SUMOVehicle &v, std::vector< MSVehicleDevice * > &into)
Build devices for the given vehicle, if needed.
Definition: MSDevice_DriverState.cpp:88
OptionsCont
A storage for options typed value containers)
Definition: OptionsCont.h:90
MSDevice_DriverState::update
void update()
update internal state
Definition: MSDevice_DriverState.cpp:215
MSDevice_DriverState::myHolderMS
MSVehicle * myHolderMS
The holder vehicle casted to MSVehicle*.
Definition: MSDevice_DriverState.h:136
MSDevice_DriverState::getSpeedDifferenceErrorCoefficient
static double getSpeedDifferenceErrorCoefficient(const SUMOVehicle &v, const OptionsCont &oc)
Definition: MSDevice_DriverState.cpp:134
MSDevice_DriverState::getInitialAwareness
static double getInitialAwareness(const SUMOVehicle &v, const OptionsCont &oc)
Definition: MSDevice_DriverState.cpp:122
MSDevice_DriverState::myDriverState
std::shared_ptr< MSSimpleDriverState > myDriverState
The driver state of the holder.
Definition: MSDevice_DriverState.h:153
MSDevice_DriverState::getErrorNoiseIntensityCoefficient
static double getErrorNoiseIntensityCoefficient(const SUMOVehicle &v, const OptionsCont &oc)
Definition: MSDevice_DriverState.cpp:130
config.h
MSDevice_DriverState::operator=
MSDevice_DriverState & operator=(const MSDevice_DriverState &)
Invalidated assignment operator.
MSDevice_DriverState::MSDevice_DriverState
MSDevice_DriverState(SUMOVehicle &holder, const std::string &id, double minAwareness, double initialAwareness, double errorTimeScaleCoefficient, double errorNoiseIntensityCoefficient, double speedDifferenceErrorCoefficient, double speedDifferenceChangePerceptionThreshold, double headwayChangePerceptionThreshold, double headwayErrorCoefficient, double maximalReactionTime)
Constructor.
Definition: MSDevice_DriverState.cpp:158
MSDevice_DriverState::initDriverState
void initDriverState()
Initializeses the driver state parameters.
Definition: MSDevice_DriverState.cpp:198
MSDevice_DriverState::myHeadwayErrorCoefficient
double myHeadwayErrorCoefficient
Definition: MSDevice_DriverState.h:148
MSDevice_DriverState::getSpeedDifferenceChangePerceptionThreshold
static double getSpeedDifferenceChangePerceptionThreshold(const SUMOVehicle &v, const OptionsCont &oc)
Definition: MSDevice_DriverState.cpp:138
MSDevice_DriverState::getParameter
std::string getParameter(const std::string &key) const
try to retrieve the given parameter from this device. Throw exception for unsupported key
Definition: MSDevice_DriverState.cpp:220
MSVehicle
Representation of a vehicle in the micro simulation.
Definition: MSVehicle.h:80
MSDevice_DriverState::~MSDevice_DriverState
~MSDevice_DriverState()
Destructor.
Definition: MSDevice_DriverState.h:100
MSVehicleDevice
Abstract in-vehicle device.
Definition: MSVehicleDevice.h:55