Example #1
0
        private static async void DispatchBasedOnTime(BusSvc bs)
        {
            while (BusHelper.IsWithinServiceTiming(bs.routeName))
            {
                BusHelper.AddBusOnRoad(bs.routeName + "-" + BusHelper.ActiveBuses.Count, bs.routeName);

                // dispatch again after freq
                await Task.Delay(TimeSpan.FromMinutes(bs.freq [BusHelper.GetTimeOfDay(bs.routeName)]));
            }
        }
Example #2
0
//		private static double avgSpeedPeak = 4.0; // in m/s
//		private static double avgSpeedNonPeak = 5.0; // in m/s
//		private static double avgBoardingTimePeak = 30; // in secs
//		private static double avgBoardingTimeNonPeak = 15; // in secs

        public static void DispatchBuses()
        {
            // set timer for each bus service to dispatch bus at freq (if within service timing)
            foreach (BusSvc bs in BusHelper.BusSvcs.Values)
            {
                Device.StartTimer(TimeSpan.FromMinutes(bs.freq [(int)Days.WEEKDAY]), () => {
                    BusHelper.AddBusOnRoad(bs.routeName + "-" + BusHelper.ActiveBuses.Count, bs.routeName);

                    return(IsWithinServiceTiming(bs.routeName));
                });
            }
        }