public void Reset() { ControllerState = ControllerStateEnum.Control; Clock.Reset(); SignalGroups.ForEach(x => x.Reset()); BlockStructure.Reset(); Extras.Reset(); }
//加载路网 private void InitialSystem() { vis = new Vissim(); vis.LoadNet(@"E:\vissim4.3\Example\lianglukou.inp", 0); vis.Simulation.Resolution = 1; vis.Evaluation.set_AttValue("DATACOLLECTION", true); //软件激活datacollection检测器评价 vis.Evaluation.set_AttValue("TRAVELTIME", true); //软件激活traveltime检测器评价 vis.Evaluation.set_AttValue("QUEUECOUNTER", true); //软件激活queuecounter检测器评价 vis.Evaluation.set_AttValue("DELAY", true); //软件激活dealy检测器评价 //设置各检测器的评价周期 label15.Text = ""; //仿真步数显示控件初始化 progressBar1.Minimum = 0; //进度条显示控件最小值设置 progressBar1.Maximum = Convert.ToInt32(vis.Simulation.Period); //进度条显示控件最大值设置 //仿真信息表格展示 VehicleInputs vehins = vis.Net.VehicleInputs; listView2.Clear(); listView2.View = View.Details; listView2.FullRowSelect = true; listView2.Columns.Add("交叉口ID", 100, HorizontalAlignment.Center); listView2.Columns.Add("延时时间(s)", 100, HorizontalAlignment.Center); listView2.Columns.Add("仿真时间(s)", 100, HorizontalAlignment.Center); listView2.Columns.Add("输入交通量(pcu)", 100, HorizontalAlignment.Center); for (int i = 1; i <= vehins.Count; i++) { ListViewItem itm = listView2.Items.Add(vehins[i].ID.ToString()); itm.SubItems.AddRange(new string[] { (vehins[i].AttValue["TIMEFROM"]).ToString(), vis.Simulation.Period.ToString(), (string)(vehins[i].AttValue["VOLUME"]).ToString() }); } //修改vissim中各交叉口信号机周期 for (int i = 1; i <= 4; i++) { vis.Net.SignalControllers.GetSignalControllerByNumber(i).AttValue["CYCLETIME"] = infoArr[i - 1]; groups = vis.Net.SignalControllers[i].SignalGroups; for (int j = 1; j <= Convert.ToInt32(groups.Count); j++) { group = groups.GetSignalGroupByNumber(j); if (j == 1) { group.AttValue["GREENEND"] = firstgreenArr[i - 1]; group.AttValue["REDEND"] = 0; group.AttValue["AMBER"] = 3; } else { group.AttValue["GREENEND"] = infoArr[i - 1] - 3; group.AttValue["REDEND"] = infoArr[i - 1] - secondgreenArr[i - 1] - 3; group.AttValue["AMBER"] = 3; } } } }