I am trying to differentiate the "intent" to lane change from the actual act of lane changing for vehicles (since the time at which it may happen might differ due to blocking vehicles or other reasons). What bits have to be set for the lane change state to indicate a successful lane change to the left / right via TraCI.
Supposing I can get the bits set from traci.vehicle.getLaneChangeState(vehID=vh, direction=+1) - what bits have to be checked to see if there was a successful lane change to the left or the right by TraCI's traci.vehicle.changeLane(vehID=vh, laneIndex=0, duration=1) command, considering the meaning of the bits:
2^9: blocked by left leader
2^10: blocked by left follower
2^11: blocked by right leader
2^12: blocked by right follower
2^14: insufficient space
I have also tried traci.vehicle.getLaneChangeStatePretty(vehID=vh, direction=+1) to get varied results - sometimes with both the 2^1 and 2^2 bits being set, which I am not sure what it would mean since it returns ['left', 'right']. Also, not fully sure when the "urgent" (2^8) bit is set?