示例#1
0
        public void SerializeAndDeserialize()
        {
            var circuitToSave = new CircuitData();
            var andGateData   = new AndGateData();
            var input1        = new InputData();

            input1.Id = Guid.NewGuid();
            var input2 = new InputData();

            input2.Id = Guid.NewGuid();

            andGateData.Input1 = input1;
            andGateData.Input2 = input2;

            andGateData.Delay = 10;
            andGateData.Id    = Guid.NewGuid();
            circuitToSave.Elements.Add(andGateData);

            CircuitData circuitToRead;

            using (var stream = new MemoryStream())
            {
                CircuitDataWriter.Write(circuitToSave, stream);
                stream.Seek(0, SeekOrigin.Begin); // przewinięcie z powrotem na początek
                circuitToRead = CircuitDataReader.Read(stream);
            }
            var andGate = (AndGateData)circuitToRead.Elements[0];

            Assert.AreEqual(andGateData.Id, andGate.Id);
            Assert.AreEqual(andGateData.Delay, andGate.Delay);
        }
示例#2
0
 private CircuitData ReadData(string fileName)
 {
     try
     {
         return(CircuitDataReader.ReadFromFile(fileName));
     }
     catch (SimulationException e)
     {
         DialogUtils.ShowOpenFileError(null, fileName, e.InnerException.Message);
         return(null);
     }
 }
示例#3
0
        private static void Run(ProgramArguments arguments)
        {
            try
            {
                var circuitData = CircuitDataReader.ReadFromFile(arguments.CircuitFile);

                var simulator      = new CircuitSimulator(circuitData);
                var simulationData = simulator.Simulate(new List <InitialSwitchState>(), new List <InitialGeneratorState>());

                var writer = new SimulationDataWriter(simulationData);
                writer.WriteToFile(simulationData, arguments.OutputSimulationFile);
            }
            catch (SimulationException exception)
            {
                System.Console.WriteLine("Error while producing simulation:");
                System.Console.WriteLine(exception.ToString());
            }
        }