示例#1
0
 public SignalsController(
     MOE.Common.Models.Repositories.IControllerTypeRepository controllerTypeRepository,
     MOE.Common.Models.Repositories.IRegionsRepository regionRepository,
     MOE.Common.Models.Repositories.IDirectionTypeRepository directionTypeRepository,
     MOE.Common.Models.Repositories.IMovementTypeRepository movementTypeRepository,
     MOE.Common.Models.Repositories.ILaneTypeRepository laneTypeRepository,
     MOE.Common.Models.Repositories.IDetectionHardwareRepository detectionHardwareRepository,
     MOE.Common.Models.Repositories.ISignalsRepository signalsRepository,
     MOE.Common.Models.Repositories.IDetectorRepository detectorRepository,
     MOE.Common.Models.Repositories.IDetectionTypeRepository detectionTypeRepository,
     MOE.Common.Models.Repositories.IApproachRepository approachRepository,
     MOE.Common.Models.Repositories.IMetricTypeRepository metricTypeRepository)
 {
     _signalsRepository           = signalsRepository;
     _detectorRepository          = detectorRepository;
     _detectionTypeRepository     = detectionTypeRepository;
     _approachRepository          = approachRepository;
     _controllerTypeRepository    = controllerTypeRepository;
     _regionRepository            = regionRepository;
     _directionTypeRepository     = directionTypeRepository;
     _movementTypeRepository      = movementTypeRepository;
     _laneTypeRepository          = laneTypeRepository;
     _detectionHardwareRepository = detectionHardwareRepository;
     _metricTypeRepository        = metricTypeRepository;
 }
示例#2
0
 public SignalsController()
 {
     _signalsRepository           = MOE.Common.Models.Repositories.SignalsRepositoryFactory.Create();
     _detectorRepository          = MOE.Common.Models.Repositories.DetectorRepositoryFactory.Create();
     _detectionTypeRepository     = MOE.Common.Models.Repositories.DetectionTypeRepositoryFactory.Create();
     _approachRepository          = MOE.Common.Models.Repositories.ApproachRepositoryFactory.Create();
     _metricTypeRepository        = MOE.Common.Models.Repositories.MetricTypeRepositoryFactory.Create();
     _controllerTypeRepository    = MOE.Common.Models.Repositories.ControllerTypeRepositoryFactory.Create();
     _regionRepository            = MOE.Common.Models.Repositories.RegionsRepositoryFactory.Create();
     _directionTypeRepository     = MOE.Common.Models.Repositories.DirectionTypeRepositoryFactory.Create();
     _movementTypeRepository      = MOE.Common.Models.Repositories.MovementTypeRepositoryFactory.Create();
     _laneTypeRepository          = MOE.Common.Models.Repositories.LaneTypeRepositoryFactory.Create();
     _detectionHardwareRepository = MOE.Common.Models.Repositories.DetectionHardwareRepositoryFactory.Create();
 }
示例#3
0
文件: Signal.cs 项目: zfx1982/ATSPM
        public List <Models.Detector> GetDetectorsForSignalThatSupportAMetric(int MetricTypeID)
        {
            MOE.Common.Models.Repositories.IDetectorRepository gdr =
                MOE.Common.Models.Repositories.DetectorRepositoryFactory.Create();
            List <Models.Detector> detectors = new List <Models.Detector>();

            foreach (Models.Detector d in GetDetectorsForSignal())
            {
                if (gdr.CheckReportAvialbility(d.DetectorID, MetricTypeID))
                {
                    detectors.Add(d);
                }
            }
            return(detectors);
        }
示例#4
0
文件: Signal.cs 项目: zfx1982/ATSPM
        public List <Models.Detector> GetDetectorsForSignalThatSupportAMetricByApproachDirection(int MetricTypeID, string Direction)
        {
            MOE.Common.Models.Repositories.IDetectorRepository gdr =
                MOE.Common.Models.Repositories.DetectorRepositoryFactory.Create();
            List <Models.Detector> detectors = new List <Detector>();

            foreach (Models.Detector d in GetDetectorsForSignal())
            {
                if (gdr.CheckReportAvialbility(d.DetectorID, MetricTypeID) && d.Approach.DirectionType.Description == Direction)
                {
                    detectors.Add(d);
                }
            }
            return(detectors);
        }
示例#5
0
        public ActionResult CopyDetector(int ID, int versionId, int approachID, string approachIndex)
        {
            Detector newDetector = Detector.CopyDetector(ID, true); //need to increase DetChannel if not copying the whole signal.
            Signal   signal      = _signalsRepository.GetSignalVersionByVersionId(versionId);
            Approach approach    = signal.Approaches.Where(s => s.ApproachID == approachID).First();

            newDetector.ApproachID = approach.ApproachID;
            newDetector.Index      = approachIndex + "Detectors[" + approach.Detectors.Count.ToString() + "].";
            MOE.Common.Models.Repositories.IDetectorRepository detectorRepository =
                MOE.Common.Models.Repositories.DetectorRepositoryFactory.Create();
            detectorRepository.Add(newDetector); //Do the Repository Add FOR detectors AT the detector leve.
            newDetector.Approach = approach;     //????do not associate up!!! Add from top down!
            //approach.Detectors.Add(newDetector);
            AddSelectListsToViewBag(signal);
            return(PartialView("AddDetector", newDetector));
        }
示例#6
0
文件: Signal.cs 项目: zfx1982/ATSPM
        public List <Models.Detector> GetDetectorsForSignalThatSupportAMetricByPhaseNumber(int MetricTypeID, int PhaseNumber)
        {
            MOE.Common.Models.Repositories.IDetectorRepository gdr =
                MOE.Common.Models.Repositories.DetectorRepositoryFactory.Create();
            List <Models.Detector> detectors = new List <Models.Detector>();

            foreach (Models.Detector d in GetDetectorsForSignal())
            {
                if (gdr.CheckReportAvialbility(d.DetectorID, MetricTypeID) &&
                    (d.Approach.ProtectedPhaseNumber == PhaseNumber || d.Approach.PermissivePhaseNumber == PhaseNumber))
                {
                    detectors.Add(d);
                }
            }
            return(detectors);
        }
示例#7
0
        public ConfigurationRecord(MOE.Common.Models.Detector gd)
        {
            MOE.Common.Models.Repositories.IDetectorRepository        gdr = MOE.Common.Models.Repositories.DetectorRepositoryFactory.Create();
            MOE.Common.Models.Repositories.IDetectorCommentRepository dcr = MOE.Common.Models.Repositories.DetectorCommentRepositoryFactory.Create();

            string comment = "";

            Models.DetectorComment c = dcr.GetMostRecentDetectorCommentByDetectorID(gd.ID);

            if (c != null)
            {
                comment = c.CommentText;
            }

            this.Comment             = comment;
            this.DecisionPoint       = gd.DecisionPoint.ToString();
            this.DetectorChannel     = gd.DetChannel.ToString();
            this.DetectorID          = gd.DetectorID;
            this.Direction           = gd.Approach.DirectionType.Abbreviation;
            this.DistanceFromStopBar = gd.DistanceFromStopBar.ToString();
            this.Enabled             = gd.Approach.Signal.Enabled.ToString();
            this.MinSpeedFilter      = gd.MinSpeedFilter.ToString();
            this.MovementDelay       = gd.MovementDelay.ToString();
            this.MPH     = gd.Approach.MPH.ToString();
            this.Overlap = gd.Approach.IsProtectedPhaseOverlap.ToString();
            this.PermissivePhaseNumber = gd.Approach.PermissivePhaseNumber.ToString();
            this.ProtectedPhaseNumber  = gd.Approach.ProtectedPhaseNumber.ToString();
            this.DetectionHardware     = gd.DetectionHardware.Name;

            if (gd.LaneType != null)
            {
                this.LaneType = gd.LaneType.Description;
            }
            if (gd.LaneNumber != null)
            {
                this.LaneNumber = gd.LaneNumber.ToString();
            }
            if (gd.MovementType != null)
            {
                this.MovementType = gd.MovementType.Description;
            }
            foreach (MOE.Common.Models.DetectionType dt in gd.DetectionTypes)
            {
                this.DetectionTypes += dt.Description + "<br/>";
            }
        }
示例#8
0
        public ControllerEventLogs CombineDetectorDataByApproachAndType(DateTime startDate, DateTime endDate, MOE.Common.Models.Approach approach, bool Has_PCD, bool Has_TMC)
        {
            MOE.Common.Models.Repositories.IDetectorRepository gr = MOE.Common.Models.Repositories.DetectorRepositoryFactory.Create();

            string signalId = approach.SignalID;


            if (Has_TMC)
            {
                ApproachCountDetectors.Clear();


                ApproachCountDetectors.AddRange(RemoveExitDetectors(approach.GetDetectorsForMetricType(5)));
            }

            if (Has_PCD)
            {
                ApproachCountDetectors.Clear();
                ApproachCountDetectors.AddRange(RemoveExitDetectors(approach.GetDetectorsForMetricType(6)));
            }



            List <ControllerEventLogs> eventsList = new List <ControllerEventLogs>();

            ControllerEventLogs MergedEvents = new ControllerEventLogs(signalId, startDate, endDate);

            foreach (Models.Detector detector in ApproachCountDetectors)
            {
                List <int> li = new List <int> {
                    82
                };
                ControllerEventLogs cs = new ControllerEventLogs(signalId, startDate, endDate, detector.DetChannel, li);
                eventsList.Add(cs);
            }

            foreach (ControllerEventLogs Events in eventsList)
            {
                MergedEvents.MergeEvents(Events);
            }


            return(MergedEvents);
        }
示例#9
0
文件: Signal.cs 项目: zfx1982/ATSPM
        public bool CheckReportAvailabilityForSignal(int MetricTypeID)
        {
            MOE.Common.Models.Repositories.IDetectorRepository gdr =
                MOE.Common.Models.Repositories.DetectorRepositoryFactory.Create();
            List <Models.Detector> detectors = new List <Detector>();

            foreach (Models.Detector d in GetDetectorsForSignal())
            {
                if (gdr.CheckReportAvialbility(d.DetectorID, MetricTypeID))
                {
                    detectors.Add(d);
                }
            }
            if (detectors.Count > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }