66 oc.
doRegister(
"device.driverstate.initialAwareness",
new Option_Float(DriverStateDefaults::initialAwareness));
67 oc.
addDescription(
"device.driverstate.initialAwareness",
"Driver State Device",
"Initial value assigned to the driver's awareness.");
68 oc.
doRegister(
"device.driverstate.errorTimeScaleCoefficient",
new Option_Float(DriverStateDefaults::errorTimeScaleCoefficient));
69 oc.
addDescription(
"device.driverstate.errorTimeScaleCoefficient",
"Driver State Device",
"Time scale for the error process.");
70 oc.
doRegister(
"device.driverstate.errorNoiseIntensityCoefficient",
new Option_Float(DriverStateDefaults::errorNoiseIntensityCoefficient));
71 oc.
addDescription(
"device.driverstate.errorNoiseIntensityCoefficient",
"Driver State Device",
"Noise intensity driving the error process.");
72 oc.
doRegister(
"device.driverstate.speedDifferenceErrorCoefficient",
new Option_Float(DriverStateDefaults::speedDifferenceErrorCoefficient));
73 oc.
addDescription(
"device.driverstate.speedDifferenceErrorCoefficient",
"Driver State Device",
"General scaling coefficient for applying the error to the perceived speed difference (error also scales with distance).");
74 oc.
doRegister(
"device.driverstate.headwayErrorCoefficient",
new Option_Float(DriverStateDefaults::headwayErrorCoefficient));
75 oc.
addDescription(
"device.driverstate.headwayErrorCoefficient",
"Driver State Device",
"General scaling coefficient for applying the error to the perceived distance (error also scales with distance).");
76 oc.
doRegister(
"device.driverstate.speedDifferenceChangePerceptionThreshold",
new Option_Float(DriverStateDefaults::speedDifferenceChangePerceptionThreshold));
77 oc.
addDescription(
"device.driverstate.speedDifferenceChangePerceptionThreshold",
"Driver State Device",
"Base threshold for recognizing changes in the speed difference (threshold also scales with distance).");
78 oc.
doRegister(
"device.driverstate.headwayChangePerceptionThreshold",
new Option_Float(DriverStateDefaults::headwayChangePerceptionThreshold));
79 oc.
addDescription(
"device.driverstate.headwayChangePerceptionThreshold",
"Driver State Device",
"Base threshold for recognizing changes in the headway (threshold also scales with distance).");
81 oc.
addDescription(
"device.driverstate.minAwareness",
"Driver State Device",
"Minimal admissible value for the driver's awareness.");
83 oc.
addDescription(
"device.driverstate.maximalReactionTime",
"Driver State Device",
"Maximal reaction time (~action step length) induced by decreased awareness level (reached for awareness=minAwareness).");
105 errorTimeScaleCoefficient,
106 errorNoiseIntensityCoefficient,
107 speedDifferenceErrorCoefficient,
108 speedDifferenceChangePerceptionThreshold,
109 headwayChangePerceptionThreshold,
110 headwayErrorCoefficient,
111 maximalReactionTime);
112 into.push_back(device);
119 return getFloatParam(v, oc,
"driverstate.minAwareness", DriverStateDefaults::minAwareness,
false);
123 return getFloatParam(v, oc,
"driverstate.initialAwareness", DriverStateDefaults::initialAwareness,
false);
127 return getFloatParam(v, oc,
"driverstate.errorTimeScaleCoefficient", DriverStateDefaults::errorTimeScaleCoefficient,
false);
131 return getFloatParam(v, oc,
"driverstate.errorNoiseIntensityCoefficient", DriverStateDefaults::errorNoiseIntensityCoefficient,
false);
135 return getFloatParam(v, oc,
"driverstate.speedDifferenceErrorCoefficient", DriverStateDefaults::speedDifferenceErrorCoefficient,
false);
139 return getFloatParam(v, oc,
"driverstate.speedDifferenceChangePerceptionThreshold", DriverStateDefaults::speedDifferenceChangePerceptionThreshold,
false);
143 return getFloatParam(v, oc,
"driverstate.headwayChangePerceptionThreshold", DriverStateDefaults::headwayChangePerceptionThreshold,
false);
147 return getFloatParam(v, oc,
"driverstate.headwayErrorCoefficient", DriverStateDefaults::headwayErrorCoefficient,
false);
151 return getFloatParam(v, oc,
"driverstate.maximalReactionTime", -1.0,
false);
160 double initialAwareness,
161 double errorTimeScaleCoefficient,
162 double errorNoiseIntensityCoefficient,
163 double speedDifferenceErrorCoefficient,
164 double speedDifferenceChangePerceptionThreshold,
165 double headwayChangePerceptionThreshold,
166 double headwayErrorCoefficient,
167 double maximalReactionTime) :
169 myMinAwareness(minAwareness),
170 myInitialAwareness(initialAwareness),
171 myErrorTimeScaleCoefficient(errorTimeScaleCoefficient),
172 myErrorNoiseIntensityCoefficient(errorNoiseIntensityCoefficient),
173 mySpeedDifferenceErrorCoefficient(speedDifferenceErrorCoefficient),
174 mySpeedDifferenceChangePerceptionThreshold(speedDifferenceChangePerceptionThreshold),
175 myHeadwayChangePerceptionThreshold(headwayChangePerceptionThreshold),
176 myHeadwayErrorCoefficient(headwayErrorCoefficient),
177 myMaximalReactionTime(maximalReactionTime) {
179 myHolderMS = static_cast<MSVehicle*>(&holder);
183 #ifdef DEBUG_DSDEVICE
184 std::cout <<
"initialized device '" <<
id <<
"' with "
221 #ifdef DEBUG_DSDEVICE
222 std::cout <<
"MSDevice_DriverState::getParameter(key=" << key <<
")" << std::endl;
224 if (key ==
"awareness") {
226 }
else if (key ==
"errorState") {
228 }
else if (key ==
"errorTimeScale") {
230 }
else if (key ==
"errorNoiseIntensity") {
232 }
else if (key ==
"errorNoiseIntensity") {
234 }
else if (key ==
"minAwareness") {
236 }
else if (key ==
"initialAwareness") {
238 }
else if (key ==
"errorTimeScaleCoefficient") {
240 }
else if (key ==
"errorNoiseIntensityCoefficient") {
242 }
else if (key ==
"speedDifferenceErrorCoefficient") {
244 }
else if (key ==
"headwayErrorCoefficient") {
246 }
else if (key ==
"speedDifferenceChangePerceptionThreshold") {
248 }
else if (key ==
"headwayChangePerceptionThreshold") {
250 }
else if (key ==
"maximalReactionTime") {
252 }
else if (key ==
"originalReactionTime") {
254 }
else if (key ==
"actionStepLength") {
263 #ifdef DEBUG_DSDEVICE
264 std::cout <<
"MSDevice_DriverState::setParameter(key=" << key <<
", value=" << value <<
")" << std::endl;
266 if (key ==
"awareness") {
268 }
else if (key ==
"errorState") {
270 }
else if (key ==
"errorTimeScale") {
272 }
else if (key ==
"errorNoiseIntensity") {
274 }
else if (key ==
"minAwareness") {
276 }
else if (key ==
"initialAwareness") {
278 }
else if (key ==
"errorTimeScaleCoefficient") {
280 }
else if (key ==
"errorNoiseIntensityCoefficient") {
282 }
else if (key ==
"speedDifferenceErrorCoefficient") {
284 }
else if (key ==
"headwayErrorCoefficient") {
286 }
else if (key ==
"speedDifferenceChangePerceptionThreshold") {
288 }
else if (key ==
"headwayChangePerceptionThreshold") {
290 }
else if (key ==
"maximalReactionTime") {
292 }
else if (key ==
"originalReactionTime") {