Skip to content

Commit

Permalink
refactoring refs #7632, also fix #7731 (typo when loading rng state)
Browse files Browse the repository at this point in the history
  • Loading branch information
namdre committed Nov 13, 2020
1 parent be7474a commit 018182d
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 77 deletions.
18 changes: 9 additions & 9 deletions src/microsim/MSStateHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -137,26 +137,26 @@ MSStateHandler::myStartElement(int element, const SUMOSAXAttributes& attrs) {
break;
}
case SUMO_TAG_RNGSTATE: {
if (attrs.hasAttribute(SUMO_ATTR_RNG_DEFAULT)) {
RandHelper::loadState(attrs.getString(SUMO_ATTR_RNG_DEFAULT));
if (attrs.hasAttribute(SUMO_ATTR_DEFAULT)) {
RandHelper::loadState(attrs.getString(SUMO_ATTR_DEFAULT));
}
if (attrs.hasAttribute(SUMO_ATTR_RNG_ROUTEHANDLER)) {
RandHelper::loadState(attrs.getString(SUMO_ATTR_RNG_DEFAULT), MSRouteHandler::getParsingRNG());
RandHelper::loadState(attrs.getString(SUMO_ATTR_RNG_ROUTEHANDLER), MSRouteHandler::getParsingRNG());
}
if (attrs.hasAttribute(SUMO_ATTR_RNG_INSERTIONCONTROL)) {
RandHelper::loadState(attrs.getString(SUMO_ATTR_RNG_DEFAULT), MSNet::getInstance()->getInsertionControl().getFlowRNG());
RandHelper::loadState(attrs.getString(SUMO_ATTR_RNG_INSERTIONCONTROL), MSNet::getInstance()->getInsertionControl().getFlowRNG());
}
if (attrs.hasAttribute(SUMO_ATTR_RNG_DEVICE)) {
RandHelper::loadState(attrs.getString(SUMO_ATTR_RNG_DEFAULT), MSDevice::getEquipmentRNG());
RandHelper::loadState(attrs.getString(SUMO_ATTR_RNG_DEVICE), MSDevice::getEquipmentRNG());
}
if (attrs.hasAttribute(SUMO_ATTR_RNG_DEVICE_BT)) {
RandHelper::loadState(attrs.getString(SUMO_ATTR_RNG_DEFAULT), MSDevice_BTreceiver::getEquipmentRNG());
RandHelper::loadState(attrs.getString(SUMO_ATTR_RNG_DEVICE_BT), MSDevice_BTreceiver::getEquipmentRNG());
}
if (attrs.hasAttribute(SUMO_ATTR_RNG_DRIVERSTATE)) {
RandHelper::loadState(attrs.getString(SUMO_ATTR_RNG_DEFAULT), OUProcess::getRNG());
RandHelper::loadState(attrs.getString(SUMO_ATTR_RNG_DRIVERSTATE), OUProcess::getRNG());
}
if (attrs.hasAttribute(SUMO_ATTR_RNG_DEVICE_TOC)) {
RandHelper::loadState(attrs.getString(SUMO_ATTR_RNG_DEFAULT), MSDevice_ToC::getResponseTimeRNG());
RandHelper::loadState(attrs.getString(SUMO_ATTR_RNG_DEVICE_TOC), MSDevice_ToC::getResponseTimeRNG());
}
break;
}
Expand Down Expand Up @@ -380,7 +380,7 @@ MSStateHandler::closeVehicle() {
void
MSStateHandler::saveRNGs(OutputDevice& out) {
out.openTag(SUMO_TAG_RNGSTATE);
out.writeAttr(SUMO_ATTR_RNG_DEFAULT, RandHelper::saveState());
out.writeAttr(SUMO_ATTR_DEFAULT, RandHelper::saveState());
out.writeAttr(SUMO_ATTR_RNG_ROUTEHANDLER, RandHelper::saveState(MSRouteHandler::getParsingRNG()));
out.writeAttr(SUMO_ATTR_RNG_INSERTIONCONTROL, RandHelper::saveState(MSNet::getInstance()->getInsertionControl().getFlowRNG()));
out.writeAttr(SUMO_ATTR_RNG_DEVICE, RandHelper::saveState(MSDevice::getEquipmentRNG()));
Expand Down
8 changes: 4 additions & 4 deletions src/microsim/output/MSFCDExport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -109,12 +109,12 @@ MSFCDExport::write(OutputDevice& of, SUMOTime timestep, bool elevation) {
of.writeAttr(SUMO_ATTR_SLOPE, veh->getSlope());
if (microVeh != nullptr) {
if (signals) {
of.writeAttr("signals", toString(microVeh->getSignals()));
of.writeAttr(SUMO_ATTR_SIGNALS, toString(microVeh->getSignals()));
}
if (writeAccel) {
of.writeAttr("acceleration", toString(microVeh->getAcceleration()));
of.writeAttr(SUMO_ATTR_ACCELERATION, toString(microVeh->getAcceleration()));
if (MSGlobals::gSublane) {
of.writeAttr("accelerationLat", microVeh->getLaneChangeModel().getAccelerationLat());
of.writeAttr(SUMO_ATTR_ACCELERATION_LAT, microVeh->getLaneChangeModel().getAccelerationLat());
}
}
}
Expand All @@ -131,7 +131,7 @@ MSFCDExport::write(OutputDevice& of, SUMOTime timestep, bool elevation) {
distance += veh->getPositionOnLane();
}
// if the kilometrage runs counter to the edge direction edge->getDistance() is negative
of.writeAttr("distance", fabs(distance));
of.writeAttr(SUMO_ATTR_DISTANCE, fabs(distance));
}
for (const std::string& key : params) {
const std::string value = veh->getParameter().getParameter(key);
Expand Down
28 changes: 16 additions & 12 deletions src/utils/xml/SUMOXMLDefinitions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,8 @@ StringBijection<int>::Entry SUMOXMLDefinitions::tags[] = {


StringBijection<int>::Entry SUMOXMLDefinitions::attrs[] = {
// meta value for attribute enum
{ "default", SUMO_ATTR_DEFAULT },
// meandata
{ "sampledSeconds", SUMO_ATTR_SAMPLEDSECONDS },
{ "density", SUMO_ATTR_DENSITY },
Expand Down Expand Up @@ -325,12 +327,25 @@ StringBijection<int>::Entry SUMOXMLDefinitions::attrs[] = {
{ "noise", SUMO_ATTR_NOISE },
{ "amount", SUMO_ATTR_AMOUNT },
{ "averageSpeed", SUMO_ATTR_AVERAGESPEED },
// FCD
{ "x", SUMO_ATTR_X },
{ "y", SUMO_ATTR_Y },
{ "z", SUMO_ATTR_Z },
{ "angle", SUMO_ATTR_ANGLE },
{ "type", SUMO_ATTR_TYPE },
{ "pos", SUMO_ATTR_POSITION },
{ "edge", SUMO_ATTR_EDGE },
{ "lane", SUMO_ATTR_LANE },
{ "slope", SUMO_ATTR_SLOPE },
{ "signals", SUMO_ATTR_SIGNALS },
{ "acceleration", SUMO_ATTR_ACCELERATION },
{ "accelerationLat", SUMO_ATTR_ACCELERATION_LAT },
{ "distance", SUMO_ATTR_DISTANCE },

// Edge
{ "id", SUMO_ATTR_ID },
{ "refId", SUMO_ATTR_REFID },
{ "name", SUMO_ATTR_NAME },
{ "type", SUMO_ATTR_TYPE },
{ "version", SUMO_ATTR_VERSION },
{ "priority", SUMO_ATTR_PRIORITY },
{ "numLanes", SUMO_ATTR_NUMLANES },
Expand All @@ -344,14 +359,10 @@ StringBijection<int>::Entry SUMOXMLDefinitions::attrs[] = {
{ "remove", SUMO_ATTR_REMOVE },
{ "length", SUMO_ATTR_LENGTH },
{ "bidi", SUMO_ATTR_BIDI },
{ "distance", SUMO_ATTR_DISTANCE },
// Split
{ "idBefore", SUMO_ATTR_ID_BEFORE },
{ "idAfter", SUMO_ATTR_ID_AFTER },
// Positions
{ "x", SUMO_ATTR_X },
{ "y", SUMO_ATTR_Y },
{ "z", SUMO_ATTR_Z },
{ "centerX", SUMO_ATTR_CENTER_X },
{ "centerY", SUMO_ATTR_CENTER_Y },
{ "centerZ", SUMO_ATTR_CENTER_Z },
Expand All @@ -368,7 +379,6 @@ StringBijection<int>::Entry SUMOXMLDefinitions::attrs[] = {

{ "weight", SUMO_ATTR_WEIGHT },
{ "node", SUMO_ATTR_NODE },
{ "edge", SUMO_ATTR_EDGE },
{ "edges", SUMO_ATTR_EDGES },
// Vehicle
{ "depart", SUMO_ATTR_DEPART },
Expand Down Expand Up @@ -534,7 +544,6 @@ StringBijection<int>::Entry SUMOXMLDefinitions::attrs[] = {
{ "routes", SUMO_ATTR_ROUTES },
{ "vTypes", SUMO_ATTR_VTYPES },

{ "lane", SUMO_ATTR_LANE },
{ "lanes", SUMO_ATTR_LANES },
{ "from", SUMO_ATTR_FROM },
{ "to", SUMO_ATTR_TO },
Expand All @@ -559,7 +568,6 @@ StringBijection<int>::Entry SUMOXMLDefinitions::attrs[] = {
{ "walkFactor", SUMO_ATTR_WALKFACTOR },

{ "function", SUMO_ATTR_FUNCTION },
{ "pos", SUMO_ATTR_POSITION },
{ "posLat", SUMO_ATTR_POSITION_LAT },
{ "freq", SUMO_ATTR_FREQUENCY },
{ "style", SUMO_ATTR_STYLE },
Expand Down Expand Up @@ -662,7 +670,6 @@ StringBijection<int>::Entry SUMOXMLDefinitions::attrs[] = {
{ "osgFile", SUMO_ATTR_OSGFILE },
{ "imgFile", SUMO_ATTR_IMGFILE },
{ "relativePath", SUMO_ATTR_RELATIVEPATH },
{ "angle", SUMO_ATTR_ANGLE },
{ "emissionClass", SUMO_ATTR_EMISSIONCLASS },
{ "impatience", SUMO_ATTR_IMPATIENCE },
{ "startPos", SUMO_ATTR_STARTPOS },
Expand Down Expand Up @@ -742,7 +749,6 @@ StringBijection<int>::Entry SUMOXMLDefinitions::attrs[] = {

{ "generateWalks", SUMO_ATTR_GENERATE_WALKS },
{ "actType", SUMO_ATTR_ACTTYPE },
{ "slope", SUMO_ATTR_SLOPE },
{ "junctionCornerDetail", SUMO_ATTR_CORNERDETAIL },
{ "junctionLinkDetail", SUMO_ATTR_LINKDETAIL },
{ "rectangularLaneCut", SUMO_ATTR_RECTANGULAR_LANE_CUT },
Expand All @@ -759,7 +765,6 @@ StringBijection<int>::Entry SUMOXMLDefinitions::attrs[] = {
{ "startTime", SUMO_ATTR_STARTTIME },
{ "vehicleClass", SUMO_ATTR_VEHICLECLASS },
{ "fuel", SUMO_ATTR_FUEL },
{ "acceleration", SUMO_ATTR_ACCELERATION },
{ "origin", SUMO_ATTR_ORIGIN },
{ "destination", SUMO_ATTR_DESTINATION },
{ "visible", SUMO_ATTR_VISIBLE },
Expand Down Expand Up @@ -837,7 +842,6 @@ StringBijection<int>::Entry SUMOXMLDefinitions::attrs[] = {

//@name RNG state saving attributes
// @{
{ "default", SUMO_ATTR_RNG_DEFAULT },
{ "routeHandler", SUMO_ATTR_RNG_ROUTEHANDLER },
{ "insertionControl", SUMO_ATTR_RNG_INSERTIONCONTROL },
{ "device", SUMO_ATTR_RNG_DEVICE },
Expand Down
107 changes: 55 additions & 52 deletions src/utils/xml/SUMOXMLDefinitions.h
Original file line number Diff line number Diff line change
Expand Up @@ -446,58 +446,72 @@ enum SumoXMLAttr {
/// @name meanData output attributes
/// @note: sorted first to simplify filtering written attributes with bit operations
/// @{
SUMO_ATTR_DEFAULT = 1,
/// MSMeanData_Net
SUMO_ATTR_SAMPLEDSECONDS = 1,
SUMO_ATTR_DENSITY = 2,
SUMO_ATTR_LANEDENSITY = 3,
SUMO_ATTR_OCCUPANCY = 4,
SUMO_ATTR_WAITINGTIME = 5,
SUMO_ATTR_TIMELOSS = 6,
SUMO_ATTR_SPEED = 7,
SUMO_ATTR_DEPARTED = 8,
SUMO_ATTR_ARRIVED = 9,
SUMO_ATTR_ENTERED = 10,
SUMO_ATTR_LEFT = 11,
SUMO_ATTR_VAPORIZED = 12,
SUMO_ATTR_TRAVELTIME = 13,
SUMO_ATTR_LANECHANGEDFROM = 14,
SUMO_ATTR_LANECHANGEDTO = 15,
SUMO_ATTR_OVERLAPTRAVELTIME = 16,
SUMO_ATTR_SAMPLEDSECONDS = 2,
SUMO_ATTR_DENSITY = 3,
SUMO_ATTR_LANEDENSITY = 4,
SUMO_ATTR_OCCUPANCY = 5,
SUMO_ATTR_WAITINGTIME = 6,
SUMO_ATTR_TIMELOSS = 7,
SUMO_ATTR_SPEED = 8,
SUMO_ATTR_DEPARTED = 9,
SUMO_ATTR_ARRIVED = 10,
SUMO_ATTR_ENTERED = 11,
SUMO_ATTR_LEFT = 12,
SUMO_ATTR_VAPORIZED = 13,
SUMO_ATTR_TRAVELTIME = 14,
SUMO_ATTR_LANECHANGEDFROM = 15,
SUMO_ATTR_LANECHANGEDTO = 16,
SUMO_ATTR_OVERLAPTRAVELTIME = 17,
/// MSMeanData_Emissions
SUMO_ATTR_CO_ABS = 17,
SUMO_ATTR_CO2_ABS = 18,
SUMO_ATTR_HC_ABS = 19,
SUMO_ATTR_PMX_ABS = 20,
SUMO_ATTR_NOX_ABS = 21,
SUMO_ATTR_FUEL_ABS = 22,
SUMO_ATTR_ELECTRICITY_ABS = 23,
SUMO_ATTR_CO_NORMED = 24,
SUMO_ATTR_CO2_NORMED = 25,
SUMO_ATTR_HC_NORMED = 26,
SUMO_ATTR_PMX_NORMED = 27,
SUMO_ATTR_NOX_NORMED = 28,
SUMO_ATTR_FUEL_NORMED = 29,
SUMO_ATTR_ELECTRICITY_NORMED = 30,
SUMO_ATTR_CO_PERVEH = 31,
SUMO_ATTR_CO2_PERVEH = 32,
SUMO_ATTR_HC_PERVEH = 33,
SUMO_ATTR_PMX_PERVEH = 34,
SUMO_ATTR_NOX_PERVEH = 35,
SUMO_ATTR_FUEL_PERVEH = 36,
SUMO_ATTR_ELECTRICITY_PERVEH = 37,
SUMO_ATTR_CO_ABS = 18,
SUMO_ATTR_CO2_ABS = 19,
SUMO_ATTR_HC_ABS = 20,
SUMO_ATTR_PMX_ABS = 21,
SUMO_ATTR_NOX_ABS = 22,
SUMO_ATTR_FUEL_ABS = 23,
SUMO_ATTR_ELECTRICITY_ABS = 24,
SUMO_ATTR_CO_NORMED = 25,
SUMO_ATTR_CO2_NORMED = 26,
SUMO_ATTR_HC_NORMED = 27,
SUMO_ATTR_PMX_NORMED = 28,
SUMO_ATTR_NOX_NORMED = 29,
SUMO_ATTR_FUEL_NORMED = 30,
SUMO_ATTR_ELECTRICITY_NORMED = 31,
SUMO_ATTR_CO_PERVEH = 32,
SUMO_ATTR_CO2_PERVEH = 33,
SUMO_ATTR_HC_PERVEH = 34,
SUMO_ATTR_PMX_PERVEH = 35,
SUMO_ATTR_NOX_PERVEH = 36,
SUMO_ATTR_FUEL_PERVEH = 37,
SUMO_ATTR_ELECTRICITY_PERVEH = 38,
/// MSMeanData_Harmonoise
SUMO_ATTR_NOISE = 38,
SUMO_ATTR_NOISE = 39,
/// MSMeanData_Amitran
SUMO_ATTR_AMOUNT = 39,
SUMO_ATTR_AVERAGESPEED = 40,
SUMO_ATTR_AMOUNT = 40,
SUMO_ATTR_AVERAGESPEED = 41,
// FCD-Output
SUMO_ATTR_X = 42,
SUMO_ATTR_Y = 43,
SUMO_ATTR_Z = 44,
SUMO_ATTR_ANGLE = 45,
SUMO_ATTR_TYPE = 46,
SUMO_ATTR_POSITION = 47,
SUMO_ATTR_EDGE = 48,
SUMO_ATTR_LANE = 49,
SUMO_ATTR_SLOPE = 50,
SUMO_ATTR_SIGNALS = 51,
SUMO_ATTR_ACCELERATION = 52,
SUMO_ATTR_ACCELERATION_LAT = 53,
SUMO_ATTR_DISTANCE = 54,
/// @}

/// @name common attributes
/// @{
SUMO_ATTR_ID,
SUMO_ATTR_REFID,
SUMO_ATTR_NAME,
SUMO_ATTR_TYPE,
SUMO_ATTR_VERSION,
SUMO_ATTR_PRIORITY,
SUMO_ATTR_NUMLANES,
Expand All @@ -511,12 +525,8 @@ enum SumoXMLAttr {
SUMO_ATTR_REMOVE,
SUMO_ATTR_LENGTH,
SUMO_ATTR_BIDI,
SUMO_ATTR_DISTANCE,
SUMO_ATTR_ID_BEFORE,
SUMO_ATTR_ID_AFTER,
SUMO_ATTR_X,
SUMO_ATTR_Y,
SUMO_ATTR_Z,
SUMO_ATTR_CENTER_X,
SUMO_ATTR_CENTER_Y,
SUMO_ATTR_CENTER_Z,
Expand All @@ -539,7 +549,6 @@ enum SumoXMLAttr {
/// @{
SUMO_ATTR_WEIGHT,
SUMO_ATTR_NODE,
SUMO_ATTR_EDGE,
/// @}

/// @brief the edges of a route
Expand Down Expand Up @@ -804,7 +813,6 @@ enum SumoXMLAttr {

/// @name trip definition attributes
/// @{
SUMO_ATTR_LANE,
SUMO_ATTR_LANES,
SUMO_ATTR_FROM,
SUMO_ATTR_TO,
Expand Down Expand Up @@ -832,7 +840,6 @@ enum SumoXMLAttr {
/// @name source definitions
/// @{
SUMO_ATTR_FUNCTION,
SUMO_ATTR_POSITION,
SUMO_ATTR_POSITION_LAT,
SUMO_ATTR_FREQUENCY,
SUMO_ATTR_STYLE,
Expand Down Expand Up @@ -974,7 +981,6 @@ enum SumoXMLAttr {
SUMO_ATTR_OSGFILE,
SUMO_ATTR_IMGFILE,
SUMO_ATTR_RELATIVEPATH,
SUMO_ATTR_ANGLE,
SUMO_ATTR_EMISSIONCLASS,
SUMO_ATTR_IMPATIENCE,
SUMO_ATTR_STARTPOS,
Expand Down Expand Up @@ -1056,7 +1062,6 @@ enum SumoXMLAttr {

SUMO_ATTR_GENERATE_WALKS,
SUMO_ATTR_ACTTYPE,
SUMO_ATTR_SLOPE,
SUMO_ATTR_CORNERDETAIL,
SUMO_ATTR_LINKDETAIL,
SUMO_ATTR_RECTANGULAR_LANE_CUT,
Expand All @@ -1074,7 +1079,6 @@ enum SumoXMLAttr {
SUMO_ATTR_STARTTIME,
SUMO_ATTR_VEHICLECLASS,
SUMO_ATTR_FUEL,
SUMO_ATTR_ACCELERATION,
SUMO_ATTR_ORIGIN,
SUMO_ATTR_DESTINATION,
SUMO_ATTR_VISIBLE,
Expand Down Expand Up @@ -1223,7 +1227,6 @@ enum SumoXMLAttr {

//@name RNG state saving attributes
// @{
SUMO_ATTR_RNG_DEFAULT,
SUMO_ATTR_RNG_ROUTEHANDLER,
SUMO_ATTR_RNG_INSERTIONCONTROL,
SUMO_ATTR_RNG_DEVICE,
Expand Down

0 comments on commit 018182d

Please sign in to comment.