Change Person State

## Command 0xce: Change Person State

ubyte | string
--- | ---
Variable | Person ID

Changes the state of a Person...

Overview Changeable Person Variables

Variable | ValueType | Description | Python Method
--- | --- | --- | ---
add (0x80) | complex see below | Inserts a new person to the simulation at the given edge, position and time (in s). This function should be followed by appending Stages or the person will immediately vanish on departure. | add
append stage (0xc4) | complex see below | Appends a stage (stageObject, waiting, walking or driving) to the plan of the given person. | appendStage appendDrivingStage appendWaitingStage appendWalkingStage
replace stage (0xcd) | complex see below | Replaces the nth next stage with the given stage object | replaceStage
remove stage (0xc5) | int | Removes the nth next stage. nextStageIndex must be lower then value of getRemainingStages(personID). nextStageIndex 0 immediately aborts the current stage and proceeds to the next stage. When removing all stages, stage 0 should be removed last (the python function removeStages does this automatically). | removeStage removeStages
remove (0x81) | int | Removes the person from the simulation instantly. | remove
reroute (compute new route) by travel time (0x90) | compound (<empty>) | Computes a new route to the current destination that minimizes travel time. The assumed values for each edge in the network can be customized in various ways. See Simulation/Routing#Travel-time_values_for_routing. Replaces the current route by the found route. | rerouteTraveltime
move to XY (0xb4) | compound (edgeID, x, y, angle, keepRoute) (see below) | Moves the person to a new position after normal movements have taken place. Also forces the angle of the person to the given value (navigational angle in degree). See below for additional details | moveToXY
color (0x45) | ubyte,ubyte,ubyte,ubyte (RGBA) | sets color for person with the given ID. i.e. (255,0,0,255) for the color red. | setColor
height (0xbc) | double | Sets the height in m for this person. | setHeight
length (0x44) | double | Sets the length in m for the given person. | setLength
min gap (0x4c) | double | Sets the offset (gap to front person if halting) for this vehicle. | setMinGap
speed (0x5e) | double | Sets the maximum speed in m/s for the named person for subsequent step. | setSpeed
type (0x4f) | string (id) | Sets the id of the type for the named person. | setType
width (0x4d) | double | Sets the width in m for this person. | setWidth

# compound message details

The message contents are as following:

### add (0x80)

byte | integer | byte | string | byte | string | byte | double | byte | double
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
value type compound | item number (4) | value type string | type ID | value type string | Initial Edge ID | value type double | depart time in seconds | value type double | depart position

A depart time value of -3 is interpreted as immediate departure

### append stage (0xc4)

byte | int | byte | int | byte | string | byte | string | byte | string | byte | stringList | byte | double | byte | double | byte | double | byte | string | byte | double | byte | double | byte | double | byte | string
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
value type compound | item number (13) | value type int | stage type | value type string | vType (may be empty) | value type string | line (may be empty) | value type string | destStop (may be empty) | value type stringList | edges | value type double | travelTime | value type double | cost | value type double | length | value type string | intended (may be empty) | value type double | depart | value type double | departPos | value type double | arrivalPos | value type string | description (may be empty)

### append waiting stage (0xc4)

byte | int | byte | int | byte | int | byte | string | byte | string
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
value type compound | item number (4) | value type int | stage type (1) | value type double | duration in s | value type string | description (may be empty) | value type string | stopID (may be empty)

### append walking stage (0xc4)

byte | int | byte | int | byte | stringList | byte | double | byte | int | byte | double | byte | string
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
value type compound | item number (6) | value type int | stage type (2) | value type stringlist | edges | value type double | arrival position | value type double | duration in s (when a positive value is given, speed is computed from duration and length, otherwise speed is used) | value type double | speed (when a positive value is given this speed is used, otherwise the default speed of the person is used) | value type string | stopID (may be empty)

### append driving stage (0xc4)

byte | int | byte | int | byte | string | byte | string | byte | string
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
value type compound | item number (4) | value type int | stage type (3) | value type string | destination edge ID | value type string | lines | value type string | stopID (may be empty)

### replace stage (0xcd)

byte | int | byte | int | byte | int | byte | int | byte | string | byte | string | byte | string | byte | stringList | byte | double | byte | double | byte | double | byte | string | byte | double | byte | double | byte | double | byte | string
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
value type compound | item number (2) | value type int | replacement index | value type compound | item number (13) | value type int | stage type | value type string | vType (may be empty) | value type string | line (may be empty) | value type string | destStop (may be empty) | value type stringList | edges | value type double | travelTime | value type double | cost | value type double | length | value type string | intended (may be empty) | value type double | depart | value type double | departPos | value type double | arrivalPos | value type string | description (may be empty)

### move to XY (0xb4)

The Person is moved to the network position that best matches the given x,y network coordinates.

The argument edgeID is optional and can be set to "" if not known. It's use is to resolve ambiguities when there are multiple roads on top of each other (i.e. at bridges) or to provide additional guidance on intersections (where internal edges overlap).

The optional keepRoute flag is a bitset that influences mapping as follows:

- bit0 (keepRoute = 1 when only this bit is set)
  - 1: The person is mapped to the closest edge within it's existing route. If no suitable position is found within 100m mapping fails with an error.
  - 0: The person is mapped to the closest edge within the network. If that edge does not belong to the original route, the current route is replaced by a new route which consists of that edge only. In the special case where the new edge is connected to the junction that the person was already walking towards (i.e. when crossing to the other side of the road), the current route edge is replaced with the new edge and the rest of the route remains unchanged. If no suitable position is found within 100m mapping fails with an error.
- bit1 (keepRoute = 2 when only this bit is set)
  - 1: The person is mapped to the exact position in the network If that position lies outside the road network, the person stops moving on it's own accord until it is placed back into the network with another TraCI command. (if keeproute = 3, the position must still be within 100m of the vehicle route)
  - 0: The person is always on a road
- bit2 (keepRoute = 4 when only this bit is set)
  - 1: lane permissions are ignored when mapping. This is needed for jaywalking.
  - 0: The person is mapped only to lanes that allow pedestrians

The angle value is assumed to be in navigational degrees (between 0 and 360 with 0 at the top, going clockwise). The angle is used when scoring candidate mapping lanes to resolve ambiguities. Upon mapping the person is angle set to the given value for purposes of drawing and all outputs. If the angle is set to the special TraCI constant INVALID_DOUBLE_VALUE, the angle will not be used for scoring and the person will assume the angle of the best found lane and guess the walking direction accordingly. When mapping the person outside the road network, the angle will be computed from the previous and the new position instead.

Note

This function can also be used to force a person into the network that has been loaded but did not yet depart (i.e. immediately after calling person.add).

Caution

In between calls of moveToXY, the person may still perform regular movement. The person position is reset afterwards but this can affect other pedestrians. To avoid this, person.setSpeed(personID, 0) can be used.

Caution

When mapping a person to an edge that is not currently on it's route, the new route may consist of that edge only. Once the person reaches the arrivalPos on that edge it disappears unless receiving another moveToXY command in that simulation step. This means, persons may disappear when calling traci.simulationStep with arguments that cause SUMO to perform multiple steps.

byte | integer | byte | string | byte | double | byte | double | byte | double | byte | integer |
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
value type compound | item number 5 | value type string | edge ID (to resolve ambiguities, may be arbitrary) | value type double | x Position (network coordinates) | value type double | y Position (network coordinates) | value type double | angle | value type byte | keepRoute (0 - 7) |

#### Search

Enter your search terms:

#### Keyboard Shortcuts

Key | Action
--- | ---
`?` | Open this help dialog
`s` | Search the Documentation
`e` | Edit current page on GitHub