Beispiel #1
0
        protected override List <SimulatorInitEvent> GetInitialEvents()
        {
            var pairs           = new List <SimulatorInitEvent>();
            var testTraceReader = new NSTraceReader(testTracePath, blockLength);
            var header          = testTraceReader.ReadHeader();         // bypass the header

            // load and schedule all NS-generated events
            while (!testTraceReader.Finished)
            {
                // group events of the block by their node IDs
                var nodeEventBlocks = testTraceReader.ReadNextGroupBlock(e => e.NodeID);

                // convert each event block to the corresponding signal and then
                // schedule the ProcessSignal method of the corresponding node passing
                // the signal as an EventArg
                foreach (var nodeEventBlock in nodeEventBlocks)
                {
                    var time    = nodeEventBlock.Last().Time;
                    var signals = GetSignals(nodeEventBlock.ToNSEventBlock());

                    foreach (var signal in signals)
                    {
                        pairs.Add(new SimulatorInitEvent(time, signal, nodeEventBlock.Key));
                    }
                }

                if (Initializing != null)
                {
                    Initializing(this, new ProgressEventArgs("Loading initial NS events...",
                                                             testTraceReader.Length, testTraceReader.Position));
                }
            }
            testTraceReader.Close();
            return(pairs);
        }