/**
# Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
# Copyright (C) 2009-2019 German Aerospace Center (DLR) and others.
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v20.html
# SPDX-License-Identifier: EPL-2.0

# @file    Constants.java
# @author  generated by "rebuildConstants.py"
# @date    2019-04-15 12:27:46.359194
# @version $Id$

"""
This script contains TraCI constant definitions from <SUMO_HOME>/src/libsumo/TraCIConstants.h.
*/

package de.tudresden.sumo.config;
public class Constants {
    // ****************************************
    // VERSION
    // ****************************************
    public static final int TRACI_VERSION = 20;

    // ****************************************
    // COMMANDS
    // ****************************************
    // command: get version
    public static final int CMD_GETVERSION = 0x00;

    // command: load
    public static final int CMD_LOAD = 0x01;

    // command: simulation step
    public static final int CMD_SIMSTEP = 0x02;

    // command: set connection priority (execution order)
    public static final int CMD_SETORDER = 0x03;

    // command: stop node
    public static final int CMD_STOP = 0x12;

    // command: reroute to parking area
    public static final int CMD_REROUTE_TO_PARKING = 0xc2;

    // command: Resume from parking
    public static final int CMD_RESUME = 0x19;

    // command: set lane
    public static final int CMD_CHANGELANE = 0x13;

    // command: slow down
    public static final int CMD_SLOWDOWN = 0x14;

    // command: set sublane (vehicle)
    public static final int CMD_CHANGESUBLANE = 0x15;

    // command: open gap
    public static final int CMD_OPENGAP = 0x16;

    // command: change target
    public static final int CMD_CHANGETARGET = 0x31;

    // command: close sumo
    public static final int CMD_CLOSE = 0x7F;

    // command: add subscription filter
    public static final int CMD_ADD_SUBSCRIPTION_FILTER = 0x7e;


    // command: subscribe induction loop (e1) context
    public static final int CMD_SUBSCRIBE_INDUCTIONLOOP_CONTEXT = 0x80;
    // response: subscribe induction loop (e1) context
    public static final int RESPONSE_SUBSCRIBE_INDUCTIONLOOP_CONTEXT = 0x90;
    // command: get induction loop (e1) variable
    public static final int CMD_GET_INDUCTIONLOOP_VARIABLE = 0xa0;
    // response: get induction loop (e1) variable
    public static final int RESPONSE_GET_INDUCTIONLOOP_VARIABLE = 0xb0;
    // command: subscribe induction loop (e1) variable
    public static final int CMD_SUBSCRIBE_INDUCTIONLOOP_VARIABLE = 0xd0;
    // response: subscribe induction loop (e1) variable
    public static final int RESPONSE_SUBSCRIBE_INDUCTIONLOOP_VARIABLE = 0xe0;

    // command: subscribe multi-entry/multi-exit detector (e3) context
    public static final int CMD_SUBSCRIBE_MULTIENTRYEXIT_CONTEXT = 0x81;
    // response: subscribe multi-entry/multi-exit detector (e3) context
    public static final int RESPONSE_SUBSCRIBE_MULTIENTRYEXIT_CONTEXT = 0x91;
    // command: get multi-entry/multi-exit detector (e3) variable
    public static final int CMD_GET_MULTIENTRYEXIT_VARIABLE = 0xa1;
    // response: get multi-entry/multi-exit detector (e3) variable
    public static final int RESPONSE_GET_MULTIENTRYEXIT_VARIABLE = 0xb1;
    // command: subscribe multi-entry/multi-exit detector (e3) variable
    public static final int CMD_SUBSCRIBE_MULTIENTRYEXIT_VARIABLE = 0xd1;
    // response: subscribe multi-entry/multi-exit detector (e3) variable
    public static final int RESPONSE_SUBSCRIBE_MULTIENTRYEXIT_VARIABLE = 0xe1;

    // command: subscribe traffic lights context
    public static final int CMD_SUBSCRIBE_TL_CONTEXT = 0x82;
    // response: subscribe traffic lights context
    public static final int RESPONSE_SUBSCRIBE_TL_CONTEXT = 0x92;
    // command: get traffic lights variable
    public static final int CMD_GET_TL_VARIABLE = 0xa2;
    // response: get traffic lights variable
    public static final int RESPONSE_GET_TL_VARIABLE = 0xb2;
    // command: set traffic lights variable
    public static final int CMD_SET_TL_VARIABLE = 0xc2;
    // command: subscribe traffic lights variable
    public static final int CMD_SUBSCRIBE_TL_VARIABLE = 0xd2;
    // response: subscribe traffic lights variable
    public static final int RESPONSE_SUBSCRIBE_TL_VARIABLE = 0xe2;

    // command: subscribe lane context
    public static final int CMD_SUBSCRIBE_LANE_CONTEXT = 0x83;
    // response: subscribe lane context
    public static final int RESPONSE_SUBSCRIBE_LANE_CONTEXT = 0x93;
    // command: get lane variable
    public static final int CMD_GET_LANE_VARIABLE = 0xa3;
    // response: get lane variable
    public static final int RESPONSE_GET_LANE_VARIABLE = 0xb3;
    // command: set lane variable
    public static final int CMD_SET_LANE_VARIABLE = 0xc3;
    // command: subscribe lane variable
    public static final int CMD_SUBSCRIBE_LANE_VARIABLE = 0xd3;
    // response: subscribe lane variable
    public static final int RESPONSE_SUBSCRIBE_LANE_VARIABLE = 0xe3;

    // command: subscribe vehicle context
    public static final int CMD_SUBSCRIBE_VEHICLE_CONTEXT = 0x84;
    // response: subscribe vehicle context
    public static final int RESPONSE_SUBSCRIBE_VEHICLE_CONTEXT = 0x94;
    // command: get vehicle variable
    public static final int CMD_GET_VEHICLE_VARIABLE = 0xa4;
    // response: get vehicle variable
    public static final int RESPONSE_GET_VEHICLE_VARIABLE = 0xb4;
    // command: set vehicle variable
    public static final int CMD_SET_VEHICLE_VARIABLE = 0xc4;
    // command: subscribe vehicle variable
    public static final int CMD_SUBSCRIBE_VEHICLE_VARIABLE = 0xd4;
    // response: subscribe vehicle variable
    public static final int RESPONSE_SUBSCRIBE_VEHICLE_VARIABLE = 0xe4;

    // command: subscribe vehicle type context
    public static final int CMD_SUBSCRIBE_VEHICLETYPE_CONTEXT = 0x85;
    // response: subscribe vehicle type context
    public static final int RESPONSE_SUBSCRIBE_VEHICLETYPE_CONTEXT = 0x95;
    // command: get vehicle type variable
    public static final int CMD_GET_VEHICLETYPE_VARIABLE = 0xa5;
    // response: get vehicle type variable
    public static final int RESPONSE_GET_VEHICLETYPE_VARIABLE = 0xb5;
    // command: set vehicle type variable
    public static final int CMD_SET_VEHICLETYPE_VARIABLE = 0xc5;
    // command: subscribe vehicle type variable
    public static final int CMD_SUBSCRIBE_VEHICLETYPE_VARIABLE = 0xd5;
    // response: subscribe vehicle type variable
    public static final int RESPONSE_SUBSCRIBE_VEHICLETYPE_VARIABLE = 0xe5;

    // command: subscribe route context
    public static final int CMD_SUBSCRIBE_ROUTE_CONTEXT = 0x86;
    // response: subscribe route context
    public static final int RESPONSE_SUBSCRIBE_ROUTE_CONTEXT = 0x96;
    // command: get route variable
    public static final int CMD_GET_ROUTE_VARIABLE = 0xa6;
    // response: get route variable
    public static final int RESPONSE_GET_ROUTE_VARIABLE = 0xb6;
    // command: set route variable
    public static final int CMD_SET_ROUTE_VARIABLE = 0xc6;
    // command: subscribe route variable
    public static final int CMD_SUBSCRIBE_ROUTE_VARIABLE = 0xd6;
    // response: subscribe route variable
    public static final int RESPONSE_SUBSCRIBE_ROUTE_VARIABLE = 0xe6;

    // command: subscribe poi context
    public static final int CMD_SUBSCRIBE_POI_CONTEXT = 0x87;
    // response: subscribe poi context
    public static final int RESPONSE_SUBSCRIBE_POI_CONTEXT = 0x97;
    // command: get poi variable
    public static final int CMD_GET_POI_VARIABLE = 0xa7;
    // response: get poi variable
    public static final int RESPONSE_GET_POI_VARIABLE = 0xb7;
    // command: set poi variable
    public static final int CMD_SET_POI_VARIABLE = 0xc7;
    // command: subscribe poi variable
    public static final int CMD_SUBSCRIBE_POI_VARIABLE = 0xd7;
    // response: subscribe poi variable
    public static final int RESPONSE_SUBSCRIBE_POI_VARIABLE = 0xe7;

    // command: subscribe polygon context
    public static final int CMD_SUBSCRIBE_POLYGON_CONTEXT = 0x88;
    // response: subscribe polygon context
    public static final int RESPONSE_SUBSCRIBE_POLYGON_CONTEXT = 0x98;
    // command: get polygon variable
    public static final int CMD_GET_POLYGON_VARIABLE = 0xa8;
    // response: get polygon variable
    public static final int RESPONSE_GET_POLYGON_VARIABLE = 0xb8;
    // command: set polygon variable
    public static final int CMD_SET_POLYGON_VARIABLE = 0xc8;
    // command: subscribe polygon variable
    public static final int CMD_SUBSCRIBE_POLYGON_VARIABLE = 0xd8;
    // response: subscribe polygon variable
    public static final int RESPONSE_SUBSCRIBE_POLYGON_VARIABLE = 0xe8;

    // command: subscribe junction context
    public static final int CMD_SUBSCRIBE_JUNCTION_CONTEXT = 0x89;
    // response: subscribe junction context
    public static final int RESPONSE_SUBSCRIBE_JUNCTION_CONTEXT = 0x99;
    // command: get junction variable
    public static final int CMD_GET_JUNCTION_VARIABLE = 0xa9;
    // response: get junction variable
    public static final int RESPONSE_GET_JUNCTION_VARIABLE = 0xb9;
    // command: set junction variable
    public static final int CMD_SET_JUNCTION_VARIABLE = 0xc9;
    // command: subscribe junction variable
    public static final int CMD_SUBSCRIBE_JUNCTION_VARIABLE = 0xd9;
    // response: subscribe junction variable
    public static final int RESPONSE_SUBSCRIBE_JUNCTION_VARIABLE = 0xe9;

    // command: subscribe edge context
    public static final int CMD_SUBSCRIBE_EDGE_CONTEXT = 0x8a;
    // response: subscribe edge context
    public static final int RESPONSE_SUBSCRIBE_EDGE_CONTEXT = 0x9a;
    // command: get edge variable
    public static final int CMD_GET_EDGE_VARIABLE = 0xaa;
    // response: get edge variable
    public static final int RESPONSE_GET_EDGE_VARIABLE = 0xba;
    // command: set edge variable
    public static final int CMD_SET_EDGE_VARIABLE = 0xca;
    // command: subscribe edge variable
    public static final int CMD_SUBSCRIBE_EDGE_VARIABLE = 0xda;
    // response: subscribe edge variable
    public static final int RESPONSE_SUBSCRIBE_EDGE_VARIABLE = 0xea;

    // command: subscribe simulation context
    public static final int CMD_SUBSCRIBE_SIM_CONTEXT = 0x8b;
    // response: subscribe simulation context
    public static final int RESPONSE_SUBSCRIBE_SIM_CONTEXT = 0x9b;
    // command: get simulation variable
    public static final int CMD_GET_SIM_VARIABLE = 0xab;
    // response: get simulation variable
    public static final int RESPONSE_GET_SIM_VARIABLE = 0xbb;
    // command: set simulation variable
    public static final int CMD_SET_SIM_VARIABLE = 0xcb;
    // command: subscribe simulation variable
    public static final int CMD_SUBSCRIBE_SIM_VARIABLE = 0xdb;
    // response: subscribe simulation variable
    public static final int RESPONSE_SUBSCRIBE_SIM_VARIABLE = 0xeb;

    // command: subscribe GUI context
    public static final int CMD_SUBSCRIBE_GUI_CONTEXT = 0x8c;
    // response: subscribe GUI context
    public static final int RESPONSE_SUBSCRIBE_GUI_CONTEXT = 0x9c;
    // command: get GUI variable
    public static final int CMD_GET_GUI_VARIABLE = 0xac;
    // response: get GUI variable
    public static final int RESPONSE_GET_GUI_VARIABLE = 0xbc;
    // command: set GUI variable
    public static final int CMD_SET_GUI_VARIABLE = 0xcc;
    // command: subscribe GUI variable
    public static final int CMD_SUBSCRIBE_GUI_VARIABLE = 0xdc;
    // response: subscribe GUI variable
    public static final int RESPONSE_SUBSCRIBE_GUI_VARIABLE = 0xec;

    // command: subscribe areal detector (e2) context
    public static final int CMD_SUBSCRIBE_LANEAREA_CONTEXT = 0x8d;
    // response: subscribe areal detector (e2) context
    public static final int RESPONSE_SUBSCRIBE_LANEAREA_CONTEXT = 0x9d;
    // command: get areal detector (e2) variable
    public static final int CMD_GET_LANEAREA_VARIABLE = 0xad;
    // response: get areal detector (e2) variable
    public static final int RESPONSE_GET_LANEAREA_VARIABLE = 0xbd;
    // command: subscribe areal detector (e2) variable
    public static final int CMD_SUBSCRIBE_LANEAREA_VARIABLE = 0xdd;
    // response: subscribe areal detector (e2) variable
    public static final int RESPONSE_SUBSCRIBE_LANEAREA_VARIABLE = 0xed;

    // command: subscribe person context
    public static final int CMD_SUBSCRIBE_PERSON_CONTEXT = 0x8e;
    // response: subscribe person context
    public static final int RESPONSE_SUBSCRIBE_PERSON_CONTEXT = 0x9e;
    // command: get person variable
    public static final int CMD_GET_PERSON_VARIABLE = 0xae;
    // response: get person variable
    public static final int RESPONSE_GET_PERSON_VARIABLE = 0xbe;
    // command: set person variable
    public static final int CMD_SET_PERSON_VARIABLE = 0xce;
    // command: subscribe person variable
    public static final int CMD_SUBSCRIBE_PERSON_VARIABLE = 0xde;
    // response: subscribe person variable
    public static final int RESPONSE_SUBSCRIBE_PERSON_VARIABLE = 0xee;


    // ****************************************
    // POSITION REPRESENTATIONS
    // ****************************************
    // Position in geo-coordinates
    public static final int POSITION_LON_LAT = 0x00;
    // 2D cartesian coordinates
    public static final int POSITION_2D = 0x01;
    // Position in geo-coordinates with altitude
    public static final int POSITION_LON_LAT_ALT = 0x02;
    // 3D cartesian coordinates
    public static final int POSITION_3D = 0x03;
    // Position on road map
    public static final int POSITION_ROADMAP = 0x04;


    // ****************************************
    // DATA TYPES
    // ****************************************
    // Polygon (2*n doubles)
    public static final int TYPE_POLYGON = 0x06;
    // unsigned byte
    public static final int TYPE_UBYTE = 0x07;
    // signed byte
    public static final int TYPE_BYTE = 0x08;
    // 32 bit signed integer
    public static final int TYPE_INTEGER = 0x09;
    // double precision float
    public static final int TYPE_DOUBLE = 0x0B;
    // 8 bit ASCII string
    public static final int TYPE_STRING = 0x0C;
    // list of strings
    public static final int TYPE_STRINGLIST = 0x0E;
    // compound object
    public static final int TYPE_COMPOUND = 0x0F;
    // list of double precision floats
    public static final int TYPE_DOUBLELIST = 0x10;
    // color (four ubytes)
    public static final int TYPE_COLOR = 0x11;


    // ****************************************
    // RESULT TYPES
    // ****************************************
    // result type: Ok
    public static final int RTYPE_OK = 0x00;
    // result type: not implemented
    public static final int RTYPE_NOTIMPLEMENTED = 0x01;
    // result type: error
    public static final int RTYPE_ERR = 0xFF;

    // ****************************************
    // special return or parameter values
    // ****************************************
    // return value for invalid queries (especially vehicle is not on the road), see Position::INVALID
    public static final double INVALID_DOUBLE_VALUE = -1073741824.0;
    // return value for invalid queries (especially vehicle is not on the road), see Position::INVALID
    public static final int INVALID_INT_VALUE = -1073741824;
    // maximum value for client ordering (2 ^ 30)
    public static final int MAX_ORDER = 1073741824;


    // ****************************************
    // DIFFERENT DISTANCE REQUESTS
    // ****************************************
    // air distance
    public static final int REQUEST_AIRDIST = 0x00;
    // driving distance
    public static final int REQUEST_DRIVINGDIST = 0x01;


    // ****************************************
    // VEHICLE REMOVAL REASONS
    // ****************************************
    // vehicle started teleport
    public static final int REMOVE_TELEPORT = 0x00;
    // vehicle removed while parking
    public static final int REMOVE_PARKING = 0x01;
    // vehicle arrived
    public static final int REMOVE_ARRIVED = 0x02;
    // vehicle was vaporized
    public static final int REMOVE_VAPORIZED = 0x03;
    // vehicle finished route during teleport
    public static final int REMOVE_TELEPORT_ARRIVED = 0x04;

    // ****************************************
    // PERSON/CONTAINER STAGES
    // ****************************************
    // person / container stopping
    public static final int STAGE_WAITING_FOR_DEPART = 0x00;
    // person / container stopping
    public static final int STAGE_WAITING = 0x01;
    // person walking / container transhiping
    public static final int STAGE_WALKING = 0x02;
    // person riding / container being transported
    public static final int STAGE_DRIVING = 0x03;

    // ****************************************
    // Stop Flags
    // ****************************************
    public static final int STOP_DEFAULT = 0x00;
    public static final int STOP_PARKING = 0x01;
    public static final int STOP_TRIGGERED = 0x02;
    public static final int STOP_CONTAINER_TRIGGERED = 0x04;
    public static final int STOP_BUS_STOP = 0x08;
    public static final int STOP_CONTAINER_STOP = 0x10;
    public static final int STOP_CHARGING_STATION = 0x20;
    public static final int STOP_PARKING_AREA = 0x40;

    // ****************************************
    // Departure Flags
    // ****************************************
    public static final int DEPARTFLAG_TRIGGERED = -0x01;
    public static final int DEPARTFLAG_CONTAINER_TRIGGERED = -0x02;
    public static final int DEPARTFLAG_NOW = -0x03;

    public static final int DEPARTFLAG_SPEED_RANDOM = -0x02;
    public static final int DEPARTFLAG_SPEED_MAX = -0x03;

    public static final int DEPARTFLAG_LANE_RANDOM = -0x02;
    public static final int DEPARTFLAG_LANE_FREE = -0x03;
    public static final int DEPARTFLAG_LANE_ALLOWED_FREE = -0x04;
    public static final int DEPARTFLAG_LANE_BEST_FREE = -0x05;
    public static final int DEPARTFLAG_LANE_FIRST_ALLOWED = -0x06;

    public static final int DEPARTFLAG_POS_RANDOM = -0x02;
    public static final int DEPARTFLAG_POS_FREE = -0x03;
    public static final int DEPARTFLAG_POS_BASE = -0x04;
    public static final int DEPARTFLAG_POS_LAST = -0x05;
    public static final int DEPARTFLAG_POS_RANDOM_FREE = -0x06;

    public static final int ARRIVALFLAG_LANE_CURRENT = -0x02;
    public static final int ARRIVALFLAG_SPEED_CURRENT = -0x02;

    public static final int ARRIVALFLAG_POS_RANDOM = -0x02;
    public static final int ARRIVALFLAG_POS_MAX = -0x03;

    // ****************************************
    // Routing modes
    // ****************************************
    // use custom weights if available, fall back to loaded weights and then to free-flow speed
    public static final int ROUTING_MODE_DEFAULT = 0x00;
    // use aggregated travel times from device.rerouting
    public static final int ROUTING_MODE_AGGREGATED = 0x01;
    // use loaded efforts
    public static final int ROUTING_MODE_EFFORT = 0x02;
    // use combined costs
    public static final int ROUTING_MODE_COMBINED = 0x03;

    // ****************************************
    // FILTER TYPES (for context subscription filters)
    // ****************************************

    // Reset all filters
    public static final int FILTER_TYPE_NONE = 0x00;

    // Filter by list of lanes relative to ego vehicle
    public static final int FILTER_TYPE_LANES = 0x01;

    // Exclude vehicles on opposite (and other) lanes from context subscription result
    public static final int FILTER_TYPE_NOOPPOSITE = 0x02;

    // Specify maximal downstream distance for vehicles in context subscription result
    public static final int FILTER_TYPE_DOWNSTREAM_DIST = 0x03;

    // Specify maximal upstream distance for vehicles in context subscription result
    public static final int FILTER_TYPE_UPSTREAM_DIST = 0x04;

    // Only return leader and follower on the specified lanes in context subscription result
    public static final int FILTER_TYPE_LEAD_FOLLOW = 0x05;

    // Only return foes on upcoming junction in context subscription result
    public static final int FILTER_TYPE_TURN = 0x07;

    // Only return vehicles of the given vClass in context subscription result
    public static final int FILTER_TYPE_VCLASS = 0x08;

    // Only return vehicles of the given vType in context subscription result
    public static final int FILTER_TYPE_VTYPE = 0x09;





    // ****************************************
    // VARIABLE TYPES (for CMD_GET_*_VARIABLE)
    // ****************************************
    // list of instances' ids (get: all)
    public static final int TRACI_ID_LIST = 0x00;

    // count of instances (get: all)
    public static final int ID_COUNT = 0x01;

    // subscribe object variables (get: all)
    public static final int AUTOMATIC_VARIABLES_SUBSCRIPTION = 0x02;

    // subscribe context variables (get: all)
    public static final int AUTOMATIC_CONTEXT_SUBSCRIPTION = 0x03;

    // generic attributes (get/set: all)
    public static final int GENERIC_ATTRIBUTE = 0x03;

    // last step vehicle number (get: induction loops, multi-entry/multi-exit detector, lanes, edges)
    public static final int LAST_STEP_VEHICLE_NUMBER = 0x10;

    // last step vehicle number (get: induction loops, multi-entry/multi-exit detector, lanes, edges)
    public static final int LAST_STEP_MEAN_SPEED = 0x11;

    // last step vehicle list (get: induction loops, multi-entry/multi-exit detector, lanes, edges)
    public static final int LAST_STEP_VEHICLE_ID_LIST = 0x12;

    // last step occupancy (get: induction loops, lanes, edges)
    public static final int LAST_STEP_OCCUPANCY = 0x13;

    // last step vehicle halting number (get: multi-entry/multi-exit detector, lanes, edges)
    public static final int LAST_STEP_VEHICLE_HALTING_NUMBER = 0x14;

    // last step mean vehicle length (get: induction loops, lanes, edges)
    public static final int LAST_STEP_LENGTH = 0x15;

    // last step time since last detection (get: induction loops)
    public static final int LAST_STEP_TIME_SINCE_DETECTION = 0x16;

    // entry times
    public static final int LAST_STEP_VEHICLE_DATA = 0x17;

    // last step jam length in vehicles
    public static final int JAM_LENGTH_VEHICLE = 0x18;

    // last step jam length in meters
    public static final int JAM_LENGTH_METERS = 0x19;

    // last step person list (get: edges, vehicles)
    public static final int LAST_STEP_PERSON_ID_LIST = 0x1a;

    // full name (get: edges, simulation, trafficlight)
    public static final int VAR_NAME = 0x1b;

    // traffic light states, encoded as rRgGyYoO tuple (get: traffic lights)
    public static final int TL_RED_YELLOW_GREEN_STATE = 0x20;

    // index of the phase (set: traffic lights)
    public static final int TL_PHASE_INDEX = 0x22;

    // traffic light program (set: traffic lights)
    public static final int TL_PROGRAM = 0x23;

    // phase duration (set: traffic lights)
    public static final int TL_PHASE_DURATION = 0x24;

    // controlled lanes (get: traffic lights)
    public static final int TL_CONTROLLED_LANES = 0x26;

    // controlled links (get: traffic lights)
    public static final int TL_CONTROLLED_LINKS = 0x27;

    // index of the current phase (get: traffic lights)
    public static final int TL_CURRENT_PHASE = 0x28;

    // name of the current program (get: traffic lights)
    public static final int TL_CURRENT_PROGRAM = 0x29;

    // controlled junctions (get: traffic lights)
    public static final int TL_CONTROLLED_JUNCTIONS = 0x2a;

    // complete definition (get: traffic lights)
    public static final int TL_COMPLETE_DEFINITION_RYG = 0x2b;

    // complete program (set: traffic lights)
    public static final int TL_COMPLETE_PROGRAM_RYG = 0x2c;

    // assumed time to next switch (get: traffic lights)
    public static final int TL_NEXT_SWITCH = 0x2d;

    // current state, using external signal names (get: traffic lights)
    public static final int TL_EXTERNAL_STATE = 0x2e;

    // outgoing link number (get: lanes)
    public static final int LANE_LINK_NUMBER = 0x30;

    // id of parent edge (get: lanes)
    public static final int LANE_EDGE_ID = 0x31;

    // outgoing link definitions (get: lanes)
    public static final int LANE_LINKS = 0x33;

    // list of allowed vehicle classes (get&set: lanes)
    public static final int LANE_ALLOWED = 0x34;

    // list of not allowed vehicle classes (get&set: lanes)
    public static final int LANE_DISALLOWED = 0x35;

    // list of foe lanes (get: lanes)
    public static final int VAR_FOES = 0x37;

    // slope (get: edge, lane, vehicle, person)
    public static final int VAR_SLOPE = 0x36;

    // speed (get: vehicle)
    public static final int VAR_SPEED = 0x40;

    // maximum allowed/possible speed (get: vehicle types, lanes, set: edges, lanes)
    public static final int VAR_MAXSPEED = 0x41;

    // position (2D) (get: vehicle, poi, inductionloop, areadetector; set: poi)
    public static final int VAR_POSITION = 0x42;

    // position (3D) (get: vehicle, poi, set: poi)
    public static final int VAR_POSITION3D = 0x39;

    // angle (get: vehicle, poi; set: poi)
    public static final int VAR_ANGLE = 0x43;

    // angle (get: vehicle types, lanes, arealdetector, set: lanes)
    public static final int VAR_LENGTH = 0x44;

    // color (get: vehicles, vehicle types, polygons, pois)
    public static final int VAR_COLOR = 0x45;

    // max. acceleration (get: vehicles, vehicle types)
    public static final int VAR_ACCEL = 0x46;

    // max. comfortable deceleration (get: vehicles, vehicle types)
    public static final int VAR_DECEL = 0x47;

    // max. (physically possible) deceleration (get: vehicles, vehicle types)
    public static final int VAR_EMERGENCY_DECEL = 0x7b;

    // apparent deceleration (get: vehicles, vehicle types)
    public static final int VAR_APPARENT_DECEL = 0x7c;

    // action step length (get: vehicles, vehicle types)
    public static final int VAR_ACTIONSTEPLENGTH = 0x7d;

    // last action time (get: vehicles)
    public static final int VAR_LASTACTIONTIME = 0x7f;

    // driver's desired headway (get: vehicle types)
    public static final int VAR_TAU = 0x48;

    // vehicle class (get: vehicle types)
    public static final int VAR_VEHICLECLASS = 0x49;

    // emission class (get: vehicle types)
    public static final int VAR_EMISSIONCLASS = 0x4a;

    // shape class (get: vehicle types)
    public static final int VAR_SHAPECLASS = 0x4b;

    // minimum gap (get: vehicle types)
    public static final int VAR_MINGAP = 0x4c;

    // width (get: vehicle types, lanes, polygons, poi)
    public static final int VAR_WIDTH = 0x4d;

    // shape (get: polygons)
    public static final int VAR_SHAPE = 0x4e;

    // type id (get: vehicles, polygons, pois)
    public static final int VAR_TYPE = 0x4f;

    // road id (get: vehicles)
    public static final int VAR_ROAD_ID = 0x50;

    // lane id (get: vehicles, inductionloop, arealdetector)
    public static final int VAR_LANE_ID = 0x51;

    // lane index (get: vehicle, edge)
    public static final int VAR_LANE_INDEX = 0x52;

    // route id (get & set: vehicles)
    public static final int VAR_ROUTE_ID = 0x53;

    // edges (get: routes, vehicles)
    public static final int VAR_EDGES = 0x54;

    // update bestLanes (set: vehicle)
    public static final int VAR_UPDATE_BESTLANES = 0x6a;

    // filled? (get: polygons)
    public static final int VAR_FILL = 0x55;

    // get/set image file (poi, poly, vehicle, person, simulation)
    public static final int VAR_IMAGEFILE = 0x93;

    // position (1D along lane) (get: vehicle)
    public static final int VAR_LANEPOSITION = 0x56;

    // route (set: vehicles)
    public static final int VAR_ROUTE = 0x57;

    // travel time information (get&set: vehicle)
    public static final int VAR_EDGE_TRAVELTIME = 0x58;

    // effort information (get&set: vehicle)
    public static final int VAR_EDGE_EFFORT = 0x59;

    // last step travel time (get: edge, lane)
    public static final int VAR_CURRENT_TRAVELTIME = 0x5a;

    // signals state (get/set: vehicle)
    public static final int VAR_SIGNALS = 0x5b;

    // vehicle: new lane/position along (set: vehicle)
    public static final int VAR_MOVE_TO = 0x5c;

    // polygon: add dynamics (set: polygon)
    public static final int VAR_ADD_DYNAMICS = 0x5c;

    // vehicle: highlight (set: vehicle, poi)
    public static final int VAR_HIGHLIGHT = 0x6c;

    // driver imperfection (set: vehicle)
    public static final int VAR_IMPERFECTION = 0x5d;

    // speed factor (set: vehicle)
    public static final int VAR_SPEED_FACTOR = 0x5e;

    // speed deviation (set: vehicle)
    public static final int VAR_SPEED_DEVIATION = 0x5f;

    // routing mode (get/set: vehicle)
    public static final int VAR_ROUTING_MODE = 0x89;

    // speed without TraCI influence (get: vehicle)
    public static final int VAR_SPEED_WITHOUT_TRACI = 0xb1;

    // best lanes (get: vehicle)
    public static final int VAR_BEST_LANES = 0xb2;

    // how speed is set (set: vehicle)
    public static final int VAR_SPEEDSETMODE = 0xb3;

    // move vehicle to explicit (remote controlled) position (set: vehicle)
    public static final int MOVE_TO_XY = 0xb4;

    // is the vehicle stopped, and if so parked and/or triggered?
    // value = stopped + 2 * parking + 4 * triggered
    public static final int VAR_STOPSTATE = 0xb5;

    // how lane changing is performed (get/set: vehicle)
    public static final int VAR_LANECHANGE_MODE = 0xb6;

    // maximum speed regarding max speed on the current lane and speed factor (get: vehicle)
    public static final int VAR_ALLOWED_SPEED = 0xb7;

    // position (1D lateral position relative to center of the current lane) (get: vehicle)
    public static final int VAR_LANEPOSITION_LAT = 0xb8;

    // get/set prefered lateral alignment within the lane (vehicle)
    public static final int VAR_LATALIGNMENT = 0xb9;

    // get/set maximum lateral speed (vehicle, vtypes)
    public static final int VAR_MAXSPEED_LAT = 0xba;

    // get/set minimum lateral gap (vehicle, vtypes)
    public static final int VAR_MINGAP_LAT = 0xbb;

    // get/set vehicle height (vehicle, vtypes, poi)
    public static final int VAR_HEIGHT = 0xbc;

    // get/set vehicle line
    public static final int VAR_LINE = 0xbd;

    // get/set vehicle via
    public static final int VAR_VIA = 0xbe;

    // get (lane change relevant) neighboring vehicles (vehicles)
    public static final int VAR_NEIGHBORS = 0xbf;

    // current CO2 emission of a node (get: vehicle, lane, edge)
    public static final int VAR_CO2EMISSION = 0x60;

    // current CO emission of a node (get: vehicle, lane, edge)
    public static final int VAR_COEMISSION = 0x61;

    // current HC emission of a node (get: vehicle, lane, edge)
    public static final int VAR_HCEMISSION = 0x62;

    // current PMx emission of a node (get: vehicle, lane, edge)
    public static final int VAR_PMXEMISSION = 0x63;

    // current NOx emission of a node (get: vehicle, lane, edge)
    public static final int VAR_NOXEMISSION = 0x64;

    // current fuel consumption of a node (get: vehicle, lane, edge)
    public static final int VAR_FUELCONSUMPTION = 0x65;

    // current noise emission of a node (get: vehicle, lane, edge)
    public static final int VAR_NOISEEMISSION = 0x66;

    // current person number (get: vehicle)
    public static final int VAR_PERSON_NUMBER = 0x67;

    // number of persons waiting at a defined bus stop (get: simulation)
    public static final int VAR_BUS_STOP_WAITING = 0x67;

    // current leader together with gap (get: vehicle)
    public static final int VAR_LEADER = 0x68;

    // edge index in current route (get: vehicle)
    public static final int VAR_ROUTE_INDEX = 0x69;

    // current waiting time (get: vehicle, lane)
    public static final int VAR_WAITING_TIME = 0x7a;

    // current waiting time (get: vehicle)
    public static final int VAR_ACCUMULATED_WAITING_TIME = 0x87;

    // upcoming traffic lights (get: vehicle)
    public static final int VAR_NEXT_TLS = 0x70;

    // upcoming stops (get: vehicle)
    public static final int VAR_NEXT_STOPS = 0x73;

    // current acceleration (get: vehicle)
    public static final int VAR_ACCELERATION = 0x72;

    // current time in seconds (get: simulation)
    public static final int VAR_TIME = 0x66;

    // current time step (get: simulation)
    public static final int VAR_TIME_STEP = 0x70;

    // current electricity consumption of a node (get: vehicle, lane, edge)
    public static final int VAR_ELECTRICITYCONSUMPTION = 0x71;

    // number of loaded vehicles (get: simulation)
    public static final int VAR_LOADED_VEHICLES_NUMBER = 0x71;

    // loaded vehicle ids (get: simulation)
    public static final int VAR_LOADED_VEHICLES_IDS = 0x72;

    // number of departed vehicle (get: simulation)
    public static final int VAR_DEPARTED_VEHICLES_NUMBER = 0x73;

    // departed vehicle ids (get: simulation)
    public static final int VAR_DEPARTED_VEHICLES_IDS = 0x74;

    // number of vehicles starting to teleport (get: simulation)
    public static final int VAR_TELEPORT_STARTING_VEHICLES_NUMBER = 0x75;

    // ids of vehicles starting to teleport (get: simulation)
    public static final int VAR_TELEPORT_STARTING_VEHICLES_IDS = 0x76;

    // number of vehicles ending to teleport (get: simulation)
    public static final int VAR_TELEPORT_ENDING_VEHICLES_NUMBER = 0x77;

    // ids of vehicles ending to teleport (get: simulation)
    public static final int VAR_TELEPORT_ENDING_VEHICLES_IDS = 0x78;

    // number of arrived vehicles (get: simulation)
    public static final int VAR_ARRIVED_VEHICLES_NUMBER = 0x79;

    // ids of arrived vehicles (get: simulation)
    public static final int VAR_ARRIVED_VEHICLES_IDS = 0x7a;

    // delta t (get: simulation)
    public static final int VAR_DELTA_T = 0x7b;

    // bounding box (get: simulation)
    public static final int VAR_NET_BOUNDING_BOX = 0x7c;

    // minimum number of expected vehicles (get: simulation)
    public static final int VAR_MIN_EXPECTED_VEHICLES = 0x7d;

    // number of vehicles starting to park (get: simulation)
    public static final int VAR_STOP_STARTING_VEHICLES_NUMBER = 0x68;

    // ids of vehicles starting to park (get: simulation)
    public static final int VAR_STOP_STARTING_VEHICLES_IDS = 0x69;

    // number of vehicles ending to park (get: simulation)
    public static final int VAR_STOP_ENDING_VEHICLES_NUMBER = 0x6a;

    // ids of vehicles ending to park (get: simulation)
    public static final int VAR_STOP_ENDING_VEHICLES_IDS = 0x6b;

    // number of vehicles starting to park (get: simulation)
    public static final int VAR_PARKING_STARTING_VEHICLES_NUMBER = 0x6c;

    // ids of vehicles starting to park (get: simulation)
    public static final int VAR_PARKING_STARTING_VEHICLES_IDS = 0x6d;

    // number of vehicles ending to park (get: simulation)
    public static final int VAR_PARKING_ENDING_VEHICLES_NUMBER = 0x6e;

    // ids of vehicles ending to park (get: simulation)
    public static final int VAR_PARKING_ENDING_VEHICLES_IDS = 0x6f;

    // number of vehicles involved in a collision (get: simulation)
    public static final int VAR_COLLIDING_VEHICLES_NUMBER = 0x80;

    // ids of vehicles involved in a collision (get: simulation)
    public static final int VAR_COLLIDING_VEHICLES_IDS = 0x81;

    // number of vehicles involved in a collision (get: simulation)
    public static final int VAR_EMERGENCYSTOPPING_VEHICLES_NUMBER = 0x89;

    // ids of vehicles involved in a collision (get: simulation)
    public static final int VAR_EMERGENCYSTOPPING_VEHICLES_IDS = 0x8a;

    // clears the simulation of all not inserted vehicles (set: simulation)
    public static final int CMD_CLEAR_PENDING_VEHICLES = 0x94;

    // triggers saving simulation state (set: simulation)
    public static final int CMD_SAVE_SIMSTATE = 0x95;

    // sets/retrieves abstract parameter
    public static final int VAR_PARAMETER = 0x7e;


    // add an instance (poi, polygon, vehicle, person, route)
    public static final int ADD = 0x80;

    // remove an instance (poi, polygon, vehicle, person)
    public static final int REMOVE = 0x81;

    // copy an instance (vehicle type, other TBD.)
    public static final int COPY = 0x88;

    // convert coordinates
    public static final int POSITION_CONVERSION = 0x82;

    // distance between points or vehicles
    public static final int DISTANCE_REQUEST = 0x83;

    // the current driving distance
    public static final int VAR_DISTANCE = 0x84;

    // add a fully specified instance (vehicle)
    public static final int ADD_FULL = 0x85;

    // find a car based route
    public static final int FIND_ROUTE = 0x86;

    // find an intermodal route
    public static final int FIND_INTERMODAL_ROUTE = 0x87;

    // force rerouting based on travel time (vehicles)
    public static final int CMD_REROUTE_TRAVELTIME = 0x90;

    // force rerouting based on effort (vehicles)
    public static final int CMD_REROUTE_EFFORT = 0x91;

    // validates current route (vehicles)
    public static final int VAR_ROUTE_VALID = 0x92;

    // retrieve information regarding the current person/container stage
    public static final int VAR_STAGE = 0xc0;

    // retrieve information regarding the next edge including crossings and walkingAreas (pedestrians only)
    public static final int VAR_NEXT_EDGE = 0xc1;

    // retrieve information regarding the number of remaining stages
    public static final int VAR_STAGES_REMAINING = 0xc2;

    // retrieve the current vehicle id for the driving stage (person, container)
    public static final int VAR_VEHICLE = 0xc3;

    // append a person stage (person)
    public static final int APPEND_STAGE = 0xc4;

    // append a person stage (person)
    public static final int REMOVE_STAGE = 0xc5;

    // zoom
    public static final int VAR_VIEW_ZOOM = 0xa0;

    // view position
    public static final int VAR_VIEW_OFFSET = 0xa1;

    // view schema
    public static final int VAR_VIEW_SCHEMA = 0xa2;

    // view by boundary
    public static final int VAR_VIEW_BOUNDARY = 0xa3;

    // screenshot
    public static final int VAR_SCREENSHOT = 0xa5;

    // track vehicle
    public static final int VAR_TRACK_VEHICLE = 0xa6;

    // presence of view
    public static final int VAR_HAS_VIEW = 0xa7;

    /// @name currently wanted lane-change action
    /// @{
    /// @brief No action desired
    public static final int LCA_NONE = 0;
    /// @brief Needs to stay on the current lane
    public static final int LCA_STAY = 1 << 0;
    /// @brief Wants go to the left
    public static final int LCA_LEFT = 1 << 1;
    /// @brief Wants go to the right
    public static final int LCA_RIGHT = 1 << 2;
    /// @brief The action is needed to follow the route (navigational lc)
    public static final int LCA_STRATEGIC = 1 << 3;
    /// @brief The action is done to help someone else
    public static final int LCA_COOPERATIVE = 1 << 4;
    /// @brief The action is due to the wish to be faster (tactical lc)
    public static final int LCA_SPEEDGAIN = 1 << 5;
    /// @brief The action is due to the default of keeping right "Rechtsfahrgebot"
    public static final int LCA_KEEPRIGHT = 1 << 6;
    /// @brief The action is due to a TraCI request
    public static final int LCA_TRACI = 1 << 7;
    /// @brief The action is urgent (to be defined by lc-model)
    public static final int LCA_URGENT = 1 << 8;
    /// @brief The action has not been determined
    public static final int LCA_UNKNOWN = 1 << 30;
    /// @}

    /// @name External state
    /// @{
    /// @brief The vehicle is blocked by left leader
    public static final int LCA_BLOCKED_BY_LEFT_LEADER = 1 << 9;
    /// @brief The vehicle is blocked by left follower
    public static final int LCA_BLOCKED_BY_LEFT_FOLLOWER = 1 << 10;
    /// @brief The vehicle is blocked by right leader
    public static final int LCA_BLOCKED_BY_RIGHT_LEADER = 1 << 11;
    /// @brief The vehicle is blocked by right follower
    public static final int LCA_BLOCKED_BY_RIGHT_FOLLOWER = 1 << 12;
    /// @brief The vehicle is blocked being overlapping
    public static final int LCA_OVERLAPPING = 1 << 13;
    /// @brief The vehicle does not have enough space to complete a continuous change before the next turn
    public static final int LCA_INSUFFICIENT_SPACE = 1 << 14;
    /// @brief used by the sublane model
    public static final int LCA_SUBLANE = 1 << 15;
    /// @brief Vehicle is too slow to complete a continuous lane change (in case that maxSpeedLatStanding==0)
    public static final int LCA_INSUFFICIENT_SPEED = 1 << 28;
    /// @brief lane can change
    public static final int LCA_WANTS_LANECHANGE = LCA_LEFT | LCA_RIGHT;
    /// @brief lane can change or stay
    public static final int LCA_WANTS_LANECHANGE_OR_STAY = LCA_WANTS_LANECHANGE | LCA_STAY;
    /// @brief blocked left
    public static final int LCA_BLOCKED_LEFT = LCA_BLOCKED_BY_LEFT_LEADER | LCA_BLOCKED_BY_LEFT_FOLLOWER;
    /// @brief blocked right
    public static final int LCA_BLOCKED_RIGHT = LCA_BLOCKED_BY_RIGHT_LEADER | LCA_BLOCKED_BY_RIGHT_FOLLOWER;
    /// @brief blocked by leader
    public static final int LCA_BLOCKED_BY_LEADER = LCA_BLOCKED_BY_LEFT_LEADER | LCA_BLOCKED_BY_RIGHT_LEADER;
    /// @brief blocker by follower
    public static final int LCA_BLOCKED_BY_FOLLOWER = LCA_BLOCKED_BY_LEFT_FOLLOWER | LCA_BLOCKED_BY_RIGHT_FOLLOWER;
    /// @brief blocked in all directions
    public static final int LCA_BLOCKED = LCA_BLOCKED_LEFT | LCA_BLOCKED_RIGHT | LCA_INSUFFICIENT_SPACE | LCA_INSUFFICIENT_SPEED;
    /// @brief reasons of lane change
    public static final int LCA_CHANGE_REASONS = (LCA_STRATEGIC | LCA_COOPERATIVE | LCA_SPEEDGAIN | LCA_KEEPRIGHT | LCA_SUBLANE | LCA_TRACI);
    // LCA_BLOCKED_BY_CURRENT_LEADER = 1 << 28
    // LCA_BLOCKED_BY_CURRENT_FOLLOWER = 1 << 29
    /// @}

    /// @name originally model specific states (migrated here since
    ///       they were duplicated in all current models)
    /// @{
    public static final int LCA_AMBLOCKINGLEADER = 1 << 16;
    public static final int LCA_AMBLOCKINGFOLLOWER = 1 << 17;
    public static final int LCA_MRIGHT = 1 << 18;
    public static final int LCA_MLEFT = 1 << 19;
    // !!! never set LCA_UNBLOCK = 1 << 20,
    public static final int LCA_AMBLOCKINGFOLLOWER_DONTBRAKE = 1 << 21;
    // !!! never used LCA_AMBLOCKINGSECONDFOLLOWER = 1 << 22,
    public static final int LCA_CHANGE_TO_HELP = 1 << 23;
    // !!! never read LCA_KEEP1 = 1 << 24,
    // !!! never used LCA_KEEP2 = 1 << 25,
    public static final int LCA_AMBACKBLOCKER = 1 << 26;
    public static final int LCA_AMBACKBLOCKER_STANDING = 1 << 27;
    /// @}
}