예제 #1
0
 /// <summary>
 /// Method to store a counter object for departed platoon
 /// </summary>
 /// <param name="pPC">PlatoonPerfCounter object</param>
 public void addPlatoonCounter(PlatoonPerfCounter pPC)
 {
     platoonCntObj.Add(pPC);
 }
예제 #2
0
        public PlatoonPerfCounter getCounters(int currTime)
        {
            ulong transitTime = 0;
            ulong waitingTime = 0;
            ulong journeyTime = 0;
            ulong numVehicles = 0;
            ulong distTraveled = 0;
            ulong stopCount = 0;

            Vehicle v;
            // Represents number of vehicles in platoon
            numVehicles = (ulong) vehicles.Count;

            // Represents distance traveled by platoon
            if(this.dirn == Direction.SN || this.dirn == Direction.WE)
                distTraveled = (ulong) (startPosn - currPosn);
            if(this.dirn == Direction.NS || this.dirn == Direction.EW)
                distTraveled = (ulong) (currPosn - startPosn);

            // Calculates transit time, wait time and journey time
            // Stop count not calculated now
            for(int i = 0; i < vehicles.Count; i++)
            {
                v = (Vehicle) vehicles[i];
                transitTime = transitTime + (ulong) v.getTransitTime(currTime);
                waitingTime = waitingTime + (ulong) v.getWaitingTime();
                journeyTime = journeyTime + (ulong) v.journeyTime(currTime);
             }

            /**
             * Create a counter object
             */
            platoonCtr = new PlatoonPerfCounter(transitTime, waitingTime, journeyTime, numVehicles, distTraveled, stopCount);
            return platoonCtr;
        }