Пример #1
0
        private static void WriteBehavior(CircuitSimLib.TruthTable truthTable, XmlTextWriter xmlDocument)
        {
            Dictionary <List <int>, List <int> > behavior = truthTable.TruthTableDictionary;

            xmlDocument.WriteStartElement("behavior");

            foreach (KeyValuePair <List <int>, List <int> > ioPair in behavior)
            {
                string input = "";
                foreach (int i in ioPair.Key)
                {
                    input += i.ToString() + " ";
                }
                xmlDocument.WriteStartElement("input");
                xmlDocument.WriteString(input);
                xmlDocument.WriteEndElement();

                string output = "";
                foreach (int i in ioPair.Value)
                {
                    output += i.ToString() + " ";
                }
                xmlDocument.WriteStartElement("output");
                xmlDocument.WriteString(output);
                xmlDocument.WriteEndElement();
            }
            xmlDocument.WriteEndElement();
        }
Пример #2
0
        /// <summary>
        /// precondition: circuit is not null
        /// </summary>
        /// <param name="circuit"></param>
        /// <param name="xmlDocument"></param>
        private static void WriteCircuit(CircuitSimLib.Circuit circuit, XmlTextWriter xmlDocument)
        {
            CircuitSimLib.TruthTable truthTable = new CircuitSimLib.TruthTable(circuit);
            xmlDocument.WriteStartElement("circuit");
            List <CircuitSimLib.INPUT>  inputs   = circuit.GlobalInputs;
            List <CircuitSimLib.OUTPUT> outputs  = circuit.GlobalOutputs;
            Dictionary <int, int>       behavior = new Dictionary <int, int>();

            SaveToXML.WriteInputOutput(truthTable, xmlDocument);
            SaveToXML.WriteBehavior(truthTable, xmlDocument);
            xmlDocument.WriteEndElement();
        }
Пример #3
0
 /// <summary>
 /// Write the behavior inputs and outputs for the current project from the circuit
 /// </summary>
 /// <param name="circuit"></param>
 public void setCircuitInfo(CircuitSimLib.Circuit circuit)
 {
     // No truth table if the circuit is oscillating
     if (circuit != null && !circuit.IsOscillating)
     {
         CircuitSimLib.TruthTable             truthTable = new CircuitSimLib.TruthTable(circuit);
         Dictionary <List <int>, List <int> > behavior   = new Dictionary <List <int>, List <int> >();
         string logisimSave = SaveToCirc.SubcircuitInfo(project, circuit);
         project.setCircuitInfo(truthTable.TruthTableDictionary, circuit.InputShapes, circuit.OutputShapes, logisimSave);
         project.setCircuitDirection(circuit.inputsHoriz, circuit.outputsHoriz);
     }
 }
Пример #4
0
        /// <summary>
        /// Stores the stings that are the names of the inputs and outputs of the circuit
        /// as attribuits of the circuit header seperated by spaces
        /// </summary>
        /// <param name="truthTable"></param>
        /// <param name="xmlDocument"></param>
        private static void WriteInputOutput(CircuitSimLib.TruthTable truthTable, XmlTextWriter xmlDocument)
        {
            List <string> inputs = truthTable.Inputs;

            string inputString = "";

            foreach (string input in inputs)
            {
                inputString += input + " ";
            }
            xmlDocument.WriteAttributeString("inputs", inputString);

            List <string> outputs      = truthTable.Outputs;
            string        outputString = "";

            foreach (string output in outputs)
            {
                outputString += output + " ";
            }
            xmlDocument.WriteAttributeString("outputs", outputString);
        }
Пример #5
0
 public TruthTableWindow(CircuitSimLib.TruthTable truthTable)
     : this(truthTable.TruthTableHeader, truthTable.TruthTableOutputs, truthTable.Inputs.Count)
 {
 }