public int ParseTruthTableUserControl(LogicPad2.TruthTable.UserControl1 userControl, out string generatedExpr, out XElement generatedXElement) { if (userControl.TruthTableInkCanvas.TruthTable == null) { generatedExpr = null; generatedXElement = null; return 2; } else { generatedXElement = userControl.Parse(out generatedExpr); //changed generatedXElement to generatedExpr if (generatedExpr.Equals("1")) { return 1; } //changed generatedXElement to generatedExpr else if (generatedExpr.Equals("0")) { return 0; } else { return 2; } } }
public void ParseDiagramUserControl(LogicPad2.Diagram.UserControl1 userControl, out string generatedExpr, out TruthTableWindow.TruthTable generatedTruthTable) { userControl.Parse(out generatedExpr); generatedTruthTable = new TruthTableWindow.TruthTable(); int numberOfTerm; String[] terms_names; int[] fvalues; String outputName; LogicPadParser.LogicPadParser.Instance.ParseInterTreeToTruthTable( LogicPadParser.LogicPadParser.diagram, out numberOfTerm, out terms_names, out fvalues, out outputName ); LogicPadParser.TruthTable interTruthTable = new LogicPadParser.TruthTable(numberOfTerm); interTruthTable.Terms_names = terms_names; interTruthTable.Fvalues = fvalues; interTruthTable.OutputName = outputName; //Diagram To TruthTable Minimization LogicPadParser.TruthTableSolver solver = new LogicPadParser.TruthTableSolver(); solver.CurrentTruthTable = interTruthTable; solver.Solve(); LogicPadParser.LogicPadParser.Instance.ParseInterTreeToTruthTable( LogicPadParser.LogicPadParser.truthTable, out numberOfTerm, out terms_names, out fvalues, out outputName ); generatedTruthTable.Number_of_terms = numberOfTerm; generatedTruthTable.Terms_names = terms_names; generatedTruthTable.Fvalues = fvalues; generatedTruthTable.Rows = (int)Math.Pow(2, generatedTruthTable.Number_of_terms) + 1; generatedTruthTable.Columns = generatedTruthTable.Number_of_terms + 2; generatedTruthTable.OutputName = outputName; generatedExpr = InterTree.ParseExpressionToString(LogicPadParser.LogicPadParser.truthTable); }
void DragDropHelper_ItemDropped(object sender, LogicPad2.Diagram.DragDrop.DragDropEventArgs e) { if (e.DropTarget.IsDescendantOf(inkCanvas)) { Gate newGate = null; newGate = ((Gate)e.Content).CreateUserInstance(); inkCanvas.AddGate(newGate, new GateLocation(inkCanvas.GetNearestSnapTo(inkCanvas.TranslateScrolledPoint(e.Position)))); inkCanvas.UpdateLayout(); } }
public int ParseExpressionUserControl(LogicPad2.Expression.UserControl1 userControl, out TruthTableWindow.TruthTable generatedTruthTable, out XElement generatedXElement) { int output = 2; generatedXElement = userControl.Parse(ref output); if(output != 2) { generatedTruthTable = null; return output; } LogicPadParser.LogicPadParser.Instance.ParseExpressionXElement(generatedXElement); generatedTruthTable = new TruthTableWindow.TruthTable(); int numberOfTerm; String[] terms_names; int[] fvalues; string outputName; LogicPadParser.LogicPadParser.Instance.ParseInterTreeToTruthTable( LogicPadParser.LogicPadParser.expression, out numberOfTerm, out terms_names, out fvalues, out outputName ); if (numberOfTerm == 0) { generatedTruthTable = null; return 0; } else if (numberOfTerm == -1) { generatedTruthTable = null; return 1; } LogicPadParser.TruthTable interTruthTable = new LogicPadParser.TruthTable(numberOfTerm); interTruthTable.Terms_names = terms_names; interTruthTable.Fvalues = fvalues; interTruthTable.OutputName = outputName; //Expression Minimization LogicPadParser.TruthTableSolver solver = new LogicPadParser.TruthTableSolver(); solver.CurrentTruthTable = interTruthTable; solver.Solve(); LogicPadParser.LogicPadParser.Instance.ParseInterTreeToTruthTable( LogicPadParser.LogicPadParser.truthTable, out numberOfTerm, out terms_names, out fvalues, out outputName ); if (numberOfTerm == 0) { generatedTruthTable = null; return 0; } else if (numberOfTerm == -1) { generatedTruthTable = null; return 1; } generatedTruthTable.Number_of_terms = numberOfTerm; generatedTruthTable.Terms_names = terms_names; generatedTruthTable.Fvalues = fvalues; generatedTruthTable.Rows = (int)Math.Pow(2, generatedTruthTable.Number_of_terms) + 1; generatedTruthTable.Columns = generatedTruthTable.Number_of_terms + 2; return 2; }