//function /*public override int[] EvaluationProcess(int ModelTimeofDay, int[] PreviousStage) * { * TimeSpan TS = new TimeSpan(0, 0, ModelTimeofDay / 100); * string TimeOfDay = TS.ToString(); * * bool Stochastic = false; * string[] Source = { "default" }; * double[] Xsig = { 0 }; * double[] Ysig = { 0 }; * double[] SenPC = { 0 }; * * FindStoch(ref Stochastic, ref Source, ref Xsig, ref Ysig, ref SenPC); * * NetDat.IVPextract(); * NetDat2.IVPextractWiggle(Source, Xsig, Ysig, SenPC);//TODO implement a check that Stochastic is "true". * NetDat2.LoopExtract(ModelTimeofDay, 10);//TODO unhardcode 10 second calc time (call in function) * * int[] CurrentStages = MainZone.NextStages;//TODO ad hoc code for setting the red light state for areas in the triangle model * * MainZone.CoordinateJunctions(ModelTimeofDay, PreviousStage); * * WriteBidsDatabase(ModelTimeofDay); * WriteSITDataBase(ModelTimeofDay, ref MainZone, (NetworkDataSIT)NetDat); * * //TODO ad hoc code for setting the red light state for areas in the triangle model * /*SitB.ClearRedSignals(); * if (CurrentStages != null) * { * for (int si = 0; si < 3; si++) * { * switch (si) * { * case 0: * switch (CurrentStages[si]) * { * case 1: * SitB.SetAreaRed("WS3A1"); * SitB.SetAreaRed("WS2A2"); * break; * case 2: * SitB.SetAreaRed("WS1A1"); * SitB.SetAreaRed("WS1A2"); * break; * case 3: * SitB.SetAreaRed("WS3A1"); * SitB.SetAreaRed("WS2A2"); * SitB.SetAreaRed("WS2A2"); * break; * } * break; * case 1: * switch (CurrentStages[si]) * { * case 1: * SitB.SetAreaRed("NS2A1"); * SitB.SetAreaRed("NS2A2"); * break; * case 2: * SitB.SetAreaRed("NS1A1"); * SitB.SetAreaRed("NS1A2"); * break; * } * break; * case 2: * switch (CurrentStages[si]) * { * case 1: * SitB.SetAreaRed("ES3A1"); * SitB.SetAreaRed("ES4A1"); * break; * case 2: * SitB.SetAreaRed("ES3A1"); * SitB.SetAreaRed("ES4A1"); * SitB.SetAreaRed("ES1A2"); * break; * case 3: * SitB.SetAreaRed("ES2A1"); * SitB.SetAreaRed("ES4A1"); * SitB.SetAreaRed("ES1A2"); * break; * case 4: * SitB.SetAreaRed("ES3A1"); * SitB.SetAreaRed("ES2A1"); * SitB.SetAreaRed("ES1A2"); * break; * } * break; * } * * } * }*/ //********************************************************************************/ //TODO hardcoding for HighRd Signal pattern /*SitB.ClearRedSignals(); * if (CurrentStages != null) * { * for (int si = 0; si < 2; si++) * { * switch (si) * { * case 0: * switch (CurrentStages[si]) * { * case 1: * SitB.SetAreaRed("WS3_A1"); * SitB.SetAreaRed("WS2_A1"); * SitB.SetAreaRed("WS3_A2"); * SitB.SetAreaRed("WS4_A1"); * break; * case 2: * SitB.SetAreaRed("WS1_A1"); * SitB.SetAreaRed("WS3_A1"); * SitB.SetAreaRed("WS3_A2"); * SitB.SetAreaRed("WS4_A1"); * break; * case 3: * SitB.SetAreaRed("WS1_A1"); * SitB.SetAreaRed("WS2_A1"); * break; * case 4: * SitB.SetAreaRed("WS1_A1"); * SitB.SetAreaRed("WS2_A1"); * SitB.SetAreaRed("WS3_A1"); * break; * } * break; * case 1: * switch (CurrentStages[si]) * { * case 1: * SitB.SetAreaRed("ES2_A1"); * SitB.SetAreaRed("ES3_A1"); * SitB.SetAreaRed("ES2_A2"); * break; * case 2: * SitB.SetAreaRed("ES3_A1"); * SitB.SetAreaRed("ES1_A1"); * break; * case 3: * SitB.SetAreaRed("ES1_A1"); * SitB.SetAreaRed("ES2_A2"); * break; * } * break; * } * } * }*/ //*********************************************************************************/ /*SitB.PullSensorData(ModelTimeofDay); * SitB.StateUpdate(ModelTimeofDay, NetDat2); * //writeSITdiffFiles(MainZone,SitB,@"Z:\visualizationBuffer"); * * * * return (MainZone.NextStages); * }*/ private void WriteSITDataBase(int ToD, ref ZoneAgent ZoneIn, NetworkDataSIT NDin) { TimeSpan TS = new TimeSpan(0, 0, ToD / 100); string TimeOfDay = TS.ToString(); int Znum = 0; foreach (JunctionAgent JA in ZoneIn.Junctions) { foreach (StageAgent SA in JA.Stages) { foreach (LaneAgent LA in SA.Lanes) { if (!LA.Duplicate) { if (LA.Count == 0) { NDin.SIT.AddSITLine(TimeOfDay, Znum, LA.Name, Convert.ToDouble(LA.Count), 13.41, LA.AvDist, "unknown");//TODO super hacky hardcode! get rid of this! } else { NDin.SIT.AddSITLine(TimeOfDay, Znum, LA.Name, Convert.ToDouble(LA.Count), LA.AvSpeed, LA.AvDist, "unknown"); } Znum++; } } } } }
public override void ConnectToParamics() { //Find out the number of agents and junctions int AgentNum = NetworkStruct.GetElementsByTagName("Agent").Count; int JunctionNum = NetworkStruct.GetElementsByTagName("Junction").Count; //NetDat = new NetworkDataSIT(ParamicsPath, IP, Port, AgentNum, JunctionNum, "Vehicledatasimple", "SITtrue"); NetDat = new NetworkDataSIT(ParamicsPath, IP, Port, AgentNum, JunctionNum, "LinkTurningMovements", "SITtrue"); NetDat2 = new NetworkDataSIT(ParamicsPath, IP, Port, AgentNum, JunctionNum, "VehicledataWobbly", "SITwobbly"); NetDat.PDB.ClearTableContents(); NetDat2.PDB.ClearTableContents(); NetDat2.LTB.ClearTableContents(); MainZone = new ZoneAgent(NetDat, Strat); WobblyZone = new ZoneAgent(NetDat2, Strat); FindAgents(NetDat, ref MainZone); FindAgents(NetDat2, ref WobblyZone); SitB = new SITbridge(NetDat2); FindSITAgents(NetDat2, ref SitB); SitB.AreaMash(); FindSensors(NetDat2, ref SitB);//TODO it is important that this is called after AreaMash() should probably put in acheck for this.... List <string> NodeNames = new List <string>(); foreach (JunctionAgent JA in MainZone.Junctions) { NodeNames.Add(JA.SignalNode); } SigSet = new SignalsSet(NetDat, NodeNames); }
public SITbridge(NetworkDataSIT nd) { NetDat = nd; AreaList = new List <SITarea>(); CensusList = new List <Census>(); ProbeList = new List <Probe>(); }
private void WriteSITdatabase(int ToD, NetworkDataSIT NDin) { TimeSpan TS = new TimeSpan(0, 0, ToD / 100); string TimeOfDay = TS.ToString(); int Znum = 0; foreach (SITarea SA in AreaList) { NDin.SIT.AddSITLine(TimeOfDay, Znum, SA.Area.name, SA.Area.stateNow.getNumberOfVehicles(), SA.Area.stateNow.getAverageSpeedOfVehicles(), 0, "EKF"); Znum++; } }
public void StateUpdate(int ModelTimeOfDay, NetworkDataSIT NDin) { TimeSpan TS = new TimeSpan(0, 0, ModelTimeOfDay / 100); DateTime TimeStep = new DateTime(); TimeStep = TimeStep.Add(TS); foreach (SITarea SA in AreaList) { SA.Area.updateArea(TimeStep, 10);//TODO unhardcode the timestep length!!!!! } WriteSITdatabase(ModelTimeOfDay, NDin); writeSITfiles(@"Z:\visualizationBuffer"); }