Esempio n. 1
0
        private async Task <CongestionTypes> UpdateCongestionLevel(TrafficMeter meter)
        {
            var sample = await _trafficLogRepoistory.GetSampleOfTrafficLogs(meter.Id);

            var averageSpeed = (sample.Sum(log => log.Speed) / sample.Count);

            //Low Congestion if average speed is equal to or greater than 70% of normal speed
            if (averageSpeed >= (meter.SpeedLimit * 0.7))
            {
                return(CongestionTypes.Low);
            }

            //Medium Congestion if average speed is betwwen 40% and 70% of normal speed
            if ((meter.SpeedLimit * 0.4 <= averageSpeed && averageSpeed < (meter.SpeedLimit * 0.7)))
            {
                return(CongestionTypes.Medium);
            }

            //High Congestion if average speed is less than 40% of normal speed
            return(CongestionTypes.High);
        }
Esempio n. 2
0
 public void MeterUpdated(string region, TrafficMeter meter, TrafficLog log)
 {
     Clients.All.meterUpdated(region, meter, log);
 }