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(); }
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; } } }