Ejemplo n.º 1
0
        private void Simulate(Reco3Msg msg, DatabaseContext dbx)
        {
            try
            {
                // Helper.ToConsole("=> Reco3Simulator.Simulate");
                // if (dbx.Vehicle == null)
                // Helper.ToConsole(">> Reco3Simulator.Simulate: dbx.vehicle=null");


                string strVehicleXML = dbx.Vehicle.SingleOrDefault(mytable => mytable.VehicleId == msg.VehicleId).XML;
                if (strVehicleXML.Length > 0)
                {
                    // Helper.ToConsole(">> Creating XML-reader...");
                    long startTick = DateTime.Now.Ticks;
                    // Helper.ToConsole(string.Format("Start Sim: {0}", msg.VehicleId));

                    using (XmlReader xmlReader = XmlReader.Create(new StringReader(strVehicleXML)))
                    {
                        // Helper.ToConsole(">> Feeding Vecto,....");
                        VSumEntry entry = Simulate(xmlReader);
                        entry.SetSimulationId(msg.SimulationJobId, DateTime.Now, msg.VehicleId);

                        UpdateSimulationEntry(msg, ref dbx, true);
                        dbx.SaveChanges();

                        ResultList.Add(entry);
                        //dbx.VSum.AddRange(entry.Records);
                        //dbx.SaveChanges();
                    }


                    long     endTick      = DateTime.Now.Ticks;
                    long     elapsedTicks = endTick - startTick;
                    TimeSpan elapsedSpan  = new TimeSpan(elapsedTicks);
                    Helper.ToConsole(string.Format("Sim-time: {0}   ({1:N2}seconds)", msg.VehicleId, elapsedSpan.TotalSeconds));

                    // Helper.ToConsole(">> Forcing garbage-collection!");
                    GC.Collect();
                }
            }
            catch (Exception e)
            {
                Helper.ToConsole(string.Format("!! Reco3Simulator.Simulate: {0}", e.Message));
            }
        }
Ejemplo n.º 2
0
        private VSumEntry Simulate(XmlReader xmlReader)
        {
            try
            {
                Helper.ToConsole(">> inner Simulate");
                var    run  = VectoApi.VectoInstance(xmlReader);
                SimJob job2 = new SimJob(run);

                run.WaitFinished = false;
                run.RunSimulation();

                while (!run.IsFinished)
                {
                    Thread.Sleep(100);
                }

                Helper.ToConsole(">> inner Simulate, done");
                bool bAnyAbortedCycle = job2.ContainsAbortedCycles();
                if (bAnyAbortedCycle == true)
                {
                }

                string strVSum = job2.CreateVSumBlob(DateTime.Now.ToUniversalTime()
                                                     .ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"));

                VSumEntry entry = new VSumEntry();
                entry.ApiVersion = VectoApi.GetVectoCoreVersion();
                entry.LoadString(strVSum);

                Helper.ToConsole(">> inner Simulate, inner done");
                return(entry);
            }
            catch (Exception e)
            {
                Helper.ToConsole(string.Format("!! Reco3Simulator.Simulate, inner: {0}", e.Message));
            }

            return(null);
        }
Ejemplo n.º 3
0
        private void SimulateXMLFromDisc(string strFilename)
        {
            var data = XmlReader.Create(strFilename);

            VSumEntry entry = Simulate(data);
        }