Exemplo n.º 1
0
        private void SetDayPlayDetailsOnUI(DayPlan dp)
        {
            cycleValueLabel.Text    = dp.TimingPlan.CycleLength.ToString();
            offsetValueLabel.Text   = dp.TimingPlan.Offset.ToString();
            sequenceValueLabel.Text = dp.TimingPlan.SequenceNumber.ToString();

            if (dp.Schedule != null)
            {
                scheduleStartLabel.Text = "From: " + dp.Schedule.StartTime.TimeOfDay.ToString();
                scheduleEndLabel.Text   = "To: " + dp.Schedule.EndTime.TimeOfDay.ToString();
            }

            string sequenceString = ControllerInfoTool.SequenceIndexToSequence(dp.TimingPlan.SequenceNumber);

            if (sequenceString.Length > 0)
            {
                ring1Label.Text = sequenceString.Split(':')[0];
                ring2Label.Text = sequenceString.Split(':')[1];
            }
            patternNoValueLabel.Text = dp.DayPlanActionId.ToString();
        }
Exemplo n.º 2
0
        private void CreateIntersectionTimingWorkSheet(Intersection intersection)
        {
            Worksheet timingSheet;

            timingSheet      = (Worksheet)xlWorkBook.Worksheets.Add();
            timingSheet.Name = FixNameToOfficialFormat(intersection.Name);

            // Create Schedule Frame
            timingSheet.Cells[1, 1] = intersection.Name;

            // Header
            IList <string> scheduleColumnNames = new List <string>();

            scheduleColumnNames.Add("Week days");
            scheduleColumnNames.Add("Plan 1");
            scheduleColumnNames.Add("Plan 2");
            scheduleColumnNames.Add("Plan 3");
            scheduleColumnNames.Add("Plan 4");
            scheduleColumnNames.Add("Plan 5");
            scheduleColumnNames.Add("Plan 6");
            scheduleColumnNames.Add("Plan 7");
            scheduleColumnNames.Add("Plan 8");

            // Index
            for (int i = 1; i <= scheduleColumnNames.Count; i++)
            {
                timingSheet.Cells[2, i] = scheduleColumnNames[i - 1];
            }

            // Content
            for (int i = 1; i <= intersection.WholeWeeksDayPlan.Count; i++)
            {
                IList <DayPlan> plans = intersection.WholeWeeksDayPlan[i];
                timingSheet.Cells[i + 2, 1] = i.ToString();
                for (int j = 1; j <= 8; j++)
                {
                    string displayStr = "N/A";
                    if (j <= plans.Count)
                    {
                        DayPlan p          = plans[j - 1];
                        string  startTime  = GetTimeHourAndMinuteString(p.Schedule.StartTime);
                        string  endTime    = GetTimeHourAndMinuteString(p.Schedule.EndTime);
                        string  patternStr = p.DayPlanActionId.ToString();
                        displayStr = startTime + " - " + endTime + " (" + patternStr + ")";
                    }
                    timingSheet.Cells[i + 2, j + 1] = displayStr;
                }
            }
            //
            //

            // Create intersection common info frame
            int intersectionCommonFrameOffset = 10;

            timingSheet.Cells[intersectionCommonFrameOffset + 1, 1] = "Type/Phases";
            timingSheet.Cells[intersectionCommonFrameOffset + 2, 1] = "walk";
            timingSheet.Cells[intersectionCommonFrameOffset + 3, 1] = "Ped Clear";
            timingSheet.Cells[intersectionCommonFrameOffset + 4, 1] = "Yellow Ctr";
            timingSheet.Cells[intersectionCommonFrameOffset + 5, 1] = "Red Ctr";
            IList <string> planNames = new List <string>(new string[] { "Phase 1", "Phase 2", "Phase 3", "Phase 4", "Phase 5", "Phase 6", "Phase 7", "Phase 8", "Phase 9", "Phase 10", "Phase 11", "Phase 12", "Phase 13", "Phase 14", "Phase 15", "Phase 16" });

            for (int i = 0; i < planNames.Count; i++)
            {
                timingSheet.Cells[intersectionCommonFrameOffset + 1, i + 2] = planNames[i];
                timingSheet.Cells[intersectionCommonFrameOffset + 2, i + 2] = intersection.PresetInfo.WalkInfo[planNames[i]].ToString();
                timingSheet.Cells[intersectionCommonFrameOffset + 3, i + 2] = intersection.PresetInfo.PedClearance[planNames[i]].ToString();
                timingSheet.Cells[intersectionCommonFrameOffset + 4, i + 2] = intersection.PresetInfo.YellowCtl[planNames[i]].ToString();
                timingSheet.Cells[intersectionCommonFrameOffset + 5, i + 2] = intersection.PresetInfo.RedCtr[planNames[i]].ToString();
            }

            // Create Patterns Frames
            int patternsFrameOffset = intersectionCommonFrameOffset + 6;
            int patternFrameHeight  = 5;

            // Find patterns need to display
            IList <DayPlan> displayPatterns = FindPatternsNeedToDisplay(intersection);

            for (int i = 0; i < displayPatterns.Count; i++)
            {
                DayPlan p = displayPatterns[i];

                // Pre info
                timingSheet.Cells[patternFrameHeight * i + patternsFrameOffset + 1, 1] = "Pattern: " + p.DayPlanActionId;
                timingSheet.Cells[patternFrameHeight * i + patternsFrameOffset + 1, 2] = "Cycle Length: " + p.TimingPlan.CycleLength;
                timingSheet.Cells[patternFrameHeight * i + patternsFrameOffset + 1, 3] = "Offset: " + p.TimingPlan.Offset;
                timingSheet.Cells[patternFrameHeight * i + patternsFrameOffset + 1, 4] = "Ring1: " + ControllerInfoTool.GetRing1StringBySequenceIndex(p.TimingPlan.SequenceNumber);
                timingSheet.Cells[patternFrameHeight * i + patternsFrameOffset + 1, 5] = "Ring2: " + ControllerInfoTool.GetRing2StringBySequenceIndex(p.TimingPlan.SequenceNumber);

                // Header info
                int coordinatePhaseId = GetCoordinatePhaseId(p);
                timingSheet.Cells[patternFrameHeight * i + patternsFrameOffset + 2, 1] = "Type/Phases";
                timingSheet.Cells[patternFrameHeight * i + patternsFrameOffset + 3, 1] = "Split";

                //Content
                for (int j = 0; j < planNames.Count; j++)
                {
                    timingSheet.Cells[patternFrameHeight * i + patternsFrameOffset + 2, j + 2] = planNames[j];
                    if (j + 1 == coordinatePhaseId)
                    {
                        timingSheet.Cells[patternFrameHeight * i + patternsFrameOffset + 2, j + 2] = planNames[j] + "*";
                    }

                    timingSheet.Cells[patternFrameHeight * i + patternsFrameOffset + 3, j + 2] = p.TimingPlan.split.phases[j].Length;
                }
            }
        }