Example #1
0
 public byte PreviousLaneID;     //lane ID of lane the lane that the vehicle was previously in
 public Vehicle(BinaryReader FileToReadFrom)
 {
     GlobalVehicleID   = FileToReadFrom.ReadUInt32();
     _Fleet            = FileToReadFrom.ReadByte();
     Fleet             = (FleetTypes)_Fleet;
     VehicleType       = FileToReadFrom.ReadByte();
     VehicleLength     = FileToReadFrom.ReadByte();
     DriverType        = FileToReadFrom.ReadByte();
     LaneID            = FileToReadFrom.ReadByte();
     VehiclePosition   = FileToReadFrom.ReadInt32();
     PreviousUSN       = FileToReadFrom.ReadUInt16();
     _TurnCode         = FileToReadFrom.ReadByte();
     TurnCode          = (VehicleTurnCodes)_TurnCode;
     _QueueStatus      = FileToReadFrom.ReadByte();
     QueueStatus       = (QueueStatuses)_QueueStatus;
     Acceleration      = FileToReadFrom.ReadSByte();
     Velocity          = FileToReadFrom.ReadByte();
     _LaneChangeStatus = FileToReadFrom.ReadByte();
     LaneChangeStatus  = (LaneChangeStatuses)_LaneChangeStatus;
     TargetLane        = FileToReadFrom.ReadByte();
     DestinationNode   = FileToReadFrom.ReadUInt16();
     LeaderVehicleID   = FileToReadFrom.ReadUInt32();
     FollowerVehicleID = FileToReadFrom.ReadUInt32();
     PreviousLaneID    = FileToReadFrom.ReadByte();
 }
Example #2
0
        /// <summary>
        /// Add the information about a vehicle for the current time step
        /// </summary>
        /// <param name="InstanceID">ID of link containing vehicles for which this message is reporting</param>
        /// <param name="VehicleID">ID of vehicle</param>
        /// <param name="Fleet">Auto, truck, carpool, bus</param>
        /// <param name="VehicleType">CORSIM vehicle type, 1 to 9, see page 213 & 257 of CORSIM Reference Manual</param>
        /// <param name="VehicleLength">Vehicle length in feet</param>
        /// <param name="DriverType">CORSIM driver type, 1 to 10</param>
        /// <param name="LaneID">CORSIM ID of lane in which vehicle is traveling</param>
        /// <param name="VehiclePosition">Vehicle’s distance from the upstream end of the link in feet</param>
        /// <param name="PreviousUSN">Upstream node ID of the previous link the vehicle traveled</param>
        /// <param name="TurnCode">vehicle turn code: left, through, right, left diagonal, right diagonal, source emission</param>
        /// <param name="QueueStatus">Vehicle is currently not in queue -OR- Vehicle is currently in queue</param>
        /// <param name="Acceleration">Vehicle’s instantaneous acceleration in feet/second/second</param>
        /// <param name="Velocity">vehicle’s instantaneous velocity in feet/second</param>
        /// <param name="LaneChangeStatus">Vehicle does not want to change lanes -OR- Vehicle wants to change lanes</param>
        /// <param name="TargetLane">CORSIM ID of lane vehicle would like to occupy</param>
        /// <param name="DestinationNode">Node ID of the vehicles destination node</param>
        /// <param name="LeaderVehicleID">Global ID of vehicle’s leader vehicle</param>
        /// <param name="FollowerVehicleID">Global ID of vehicle’s follower vehicle</param>
        /// <param name="PreviousLaneID">Lane ID of the lane that the vehicle was previously in</param>
        public void AddVehicle(uint InstanceID, uint VehicleID, FleetTypes Fleet, byte VehicleType, byte VehicleLength, byte DriverType,
                               byte LaneID, int VehiclePosition, ushort PreviousUSN, VehicleTurnCodes TurnCode, QueueStatuses QueueStatus, sbyte Acceleration, byte Velocity,
                               LaneChangeStatuses LaneChangeStatus, byte TargetLane, ushort DestinationNode, uint LeaderVehicleID, uint FollowerVehicleID, byte PreviousLaneID)
        {
            Vehicles vehicle = null;

            for (int i = 0; i < vehicles.Count; i++)
            {
                if (vehicles[i].InstanceID == InstanceID)
                {
                    vehicle = vehicles[i];
                    break;
                }
            }
            if (vehicle == null)
            {
                vehicle            = new Vehicles();
                vehicle.InstanceID = InstanceID;
                vehicles.Add(vehicle);
            }
            Vehicle newVehicle = new Vehicle();

            vehicle.vehicles.Add(newVehicle);
            newVehicle.GlobalVehicleID   = VehicleID;
            newVehicle.Fleet             = (byte)Fleet;
            newVehicle.VehicleType       = VehicleType;
            newVehicle.VehicleLength     = VehicleLength;
            newVehicle.DriverType        = DriverType;
            newVehicle.LaneID            = LaneID;
            newVehicle.VehiclePosition   = VehiclePosition;
            newVehicle.PreviousUSN       = PreviousUSN;
            newVehicle.TurnCode          = (byte)TurnCode;
            newVehicle.QueueStatus       = (byte)QueueStatus;
            newVehicle.Acceleration      = Acceleration;
            newVehicle.Velocity          = Velocity;
            newVehicle.LaneChangeStatus  = (byte)LaneChangeStatus;
            newVehicle.TargetLane        = TargetLane;
            newVehicle.DestinationNode   = DestinationNode;
            newVehicle.LeaderVehicleID   = LeaderVehicleID;
            newVehicle.FollowerVehicleID = FollowerVehicleID;
            newVehicle.PreviousLaneID    = PreviousLaneID;
        }