65 oc.
doRegister(
"device.driverstate.initialAwareness",
new Option_Float(DriverStateDefaults::initialAwareness));
66 oc.
addDescription(
"device.driverstate.initialAwareness",
"Driver State Device",
"Initial value assigned to the driver's awareness.");
67 oc.
doRegister(
"device.driverstate.errorTimeScaleCoefficient",
new Option_Float(DriverStateDefaults::errorTimeScaleCoefficient));
68 oc.
addDescription(
"device.driverstate.errorTimeScaleCoefficient",
"Driver State Device",
"Time scale for the error process.");
69 oc.
doRegister(
"device.driverstate.errorNoiseIntensityCoefficient",
new Option_Float(DriverStateDefaults::errorNoiseIntensityCoefficient));
70 oc.
addDescription(
"device.driverstate.errorNoiseIntensityCoefficient",
"Driver State Device",
"Noise intensity driving the error process.");
71 oc.
doRegister(
"device.driverstate.speedDifferenceErrorCoefficient",
new Option_Float(DriverStateDefaults::speedDifferenceErrorCoefficient));
72 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).");
73 oc.
doRegister(
"device.driverstate.headwayErrorCoefficient",
new Option_Float(DriverStateDefaults::headwayErrorCoefficient));
74 oc.
addDescription(
"device.driverstate.headwayErrorCoefficient",
"Driver State Device",
"General scaling coefficient for applying the error to the perceived distance (error also scales with distance).");
75 oc.
doRegister(
"device.driverstate.speedDifferenceChangePerceptionThreshold",
new Option_Float(DriverStateDefaults::speedDifferenceChangePerceptionThreshold));
76 oc.
addDescription(
"device.driverstate.speedDifferenceChangePerceptionThreshold",
"Driver State Device",
"Base threshold for recognizing changes in the speed difference (threshold also scales with distance).");
77 oc.
doRegister(
"device.driverstate.headwayChangePerceptionThreshold",
new Option_Float(DriverStateDefaults::headwayChangePerceptionThreshold));
78 oc.
addDescription(
"device.driverstate.headwayChangePerceptionThreshold",
"Driver State Device",
"Base threshold for recognizing changes in the headway (threshold also scales with distance).");
80 oc.
addDescription(
"device.driverstate.minAwareness",
"Driver State Device",
"Minimal admissible value for the driver's awareness.");
82 oc.
addDescription(
"device.driverstate.maximalReactionTime",
"Driver State Device",
"Maximal reaction time (~action step length) induced by decreased awareness level (reached for awareness=minAwareness).");
104 errorTimeScaleCoefficient,
105 errorNoiseIntensityCoefficient,
106 speedDifferenceErrorCoefficient,
107 speedDifferenceChangePerceptionThreshold,
108 headwayChangePerceptionThreshold,
109 headwayErrorCoefficient,
110 maximalReactionTime);
111 into.push_back(device);
118 return getFloatParam(v, oc,
"driverstate.minAwareness", DriverStateDefaults::minAwareness,
false);
122 return getFloatParam(v, oc,
"driverstate.initialAwareness", DriverStateDefaults::initialAwareness,
false);
126 return getFloatParam(v, oc,
"driverstate.errorTimeScaleCoefficient", DriverStateDefaults::errorTimeScaleCoefficient,
false);
130 return getFloatParam(v, oc,
"driverstate.errorNoiseIntensityCoefficient", DriverStateDefaults::errorNoiseIntensityCoefficient,
false);
134 return getFloatParam(v, oc,
"driverstate.speedDifferenceErrorCoefficient", DriverStateDefaults::speedDifferenceErrorCoefficient,
false);
138 return getFloatParam(v, oc,
"driverstate.speedDifferenceChangePerceptionThreshold", DriverStateDefaults::speedDifferenceChangePerceptionThreshold,
false);
142 return getFloatParam(v, oc,
"driverstate.headwayChangePerceptionThreshold", DriverStateDefaults::headwayChangePerceptionThreshold,
false);
146 return getFloatParam(v, oc,
"driverstate.headwayErrorCoefficient", DriverStateDefaults::headwayErrorCoefficient,
false);
150 return getFloatParam(v, oc,
"driverstate.maximalReactionTime", -1.0,
false);
159 double initialAwareness,
160 double errorTimeScaleCoefficient,
161 double errorNoiseIntensityCoefficient,
162 double speedDifferenceErrorCoefficient,
163 double speedDifferenceChangePerceptionThreshold,
164 double headwayChangePerceptionThreshold,
165 double headwayErrorCoefficient,
166 double maximalReactionTime) :
168 myMinAwareness(minAwareness),
169 myInitialAwareness(initialAwareness),
170 myErrorTimeScaleCoefficient(errorTimeScaleCoefficient),
171 myErrorNoiseIntensityCoefficient(errorNoiseIntensityCoefficient),
172 mySpeedDifferenceErrorCoefficient(speedDifferenceErrorCoefficient),
173 mySpeedDifferenceChangePerceptionThreshold(speedDifferenceChangePerceptionThreshold),
174 myHeadwayChangePerceptionThreshold(headwayChangePerceptionThreshold),
175 myHeadwayErrorCoefficient(headwayErrorCoefficient),
176 myMaximalReactionTime(maximalReactionTime) {
178 myHolderMS = static_cast<MSVehicle*>(&holder);
182 #ifdef DEBUG_DSDEVICE
183 std::cout <<
"initialized device '" <<
id <<
"' with "
220 #ifdef DEBUG_DSDEVICE
221 std::cout <<
"MSDevice_DriverState::getParameter(key=" << key <<
")" << std::endl;
223 if (key ==
"awareness") {
225 }
else if (key ==
"errorState") {
227 }
else if (key ==
"errorTimeScale") {
229 }
else if (key ==
"errorNoiseIntensity") {
231 }
else if (key ==
"errorNoiseIntensity") {
233 }
else if (key ==
"minAwareness") {
235 }
else if (key ==
"initialAwareness") {
237 }
else if (key ==
"errorTimeScaleCoefficient") {
239 }
else if (key ==
"errorNoiseIntensityCoefficient") {
241 }
else if (key ==
"speedDifferenceErrorCoefficient") {
243 }
else if (key ==
"headwayErrorCoefficient") {
245 }
else if (key ==
"speedDifferenceChangePerceptionThreshold") {
247 }
else if (key ==
"headwayChangePerceptionThreshold") {
249 }
else if (key ==
"maximalReactionTime") {
251 }
else if (key ==
"originalReactionTime") {
253 }
else if (key ==
"actionStepLength") {
262 #ifdef DEBUG_DSDEVICE
263 std::cout <<
"MSDevice_DriverState::setParameter(key=" << key <<
", value=" << value <<
")" << std::endl;
265 if (key ==
"awareness") {
267 }
else if (key ==
"errorState") {
269 }
else if (key ==
"errorTimeScale") {
271 }
else if (key ==
"errorNoiseIntensity") {
273 }
else if (key ==
"minAwareness") {
275 }
else if (key ==
"initialAwareness") {
277 }
else if (key ==
"errorTimeScaleCoefficient") {
279 }
else if (key ==
"errorNoiseIntensityCoefficient") {
281 }
else if (key ==
"speedDifferenceErrorCoefficient") {
283 }
else if (key ==
"headwayErrorCoefficient") {
285 }
else if (key ==
"speedDifferenceChangePerceptionThreshold") {
287 }
else if (key ==
"headwayChangePerceptionThreshold") {
289 }
else if (key ==
"maximalReactionTime") {
291 }
else if (key ==
"originalReactionTime") {