Esempio n. 1
0
        private void AddTimeExpression()
        {
            var statementvalue = new StatementDataModel(_avalibleSignals, StatementDataModelType.TimedStatement);

            if (_statementValuesList.Count < 1)
            {
                statementvalue.IsAlgebraOperatorVisible = false;
            }
            statementvalue.PropertyChanged += StatementValueField_Changed;
            _statementValuesList.Add(statementvalue);
            _removeExpressionCommand.RaiseCanExecuteChanged();
            ObservableStatements.Refresh();
        }
        private Statement.Statement CreateStatement(StatementDataModel statementValues)
        {
            Statement.Statement statement;

            if (statementValues.StatementDataModelType == StatementDataModelType.TimedStatement)
            {
                int value;
                if (Int32.TryParse(statementValues.SignalOrValue, out value))
                {
                    value = value * 10000;
                    switch (statementValues.ExpressionValue)
                    {
                        case "Larger Then":
                            statement = new Statement.StatementTimeLargerThen(value);
                            break;
                        case "Less Then":
                            statement = new Statement.StatementTimeLessThen(value);
                            break;
                        default:
                            throw new Exception();
                    }
                    return statement;
                }

            }

            var signal = _avalibleSignals.First(x => x.Name.Equals(statementValues.Signal));

            if (_avalibleSignals.Any(x => x.Name.Equals(statementValues.SignalOrValue)))
            {
                var signal2 = _avalibleSignals.First(x => x.Name.Equals(statementValues.SignalOrValue));

                switch (statementValues.ExpressionValue)
                {
                    case "Equals":
                        statement = new Statement.Equals(signal, signal2);
                        break;
                    case "Larger Then":
                        statement = new Statement.LargerThen(signal, signal2);
                        break;
                    case "Less Then":
                        statement = new Statement.LessThen(signal, signal2);
                        break;
                    case "Rising Edge":
                        statement = new Statement.RisingEdge(signal, signal2);
                        break;
                    case "Falling Edge":
                        statement = new Statement.FallingEdge(signal, signal2);
                        break;
                    default:
                        throw new Exception();
                }

            }
            else
            {
                double value;
                if (double.TryParse(statementValues.SignalOrValue, out value))
                {
                    switch (statementValues.ExpressionValue)
                    {
                        case "Equals":
                            statement = new Statement.Equals(signal, value);
                            break;
                        case "Larger Then":
                            statement = new Statement.LargerThen(signal, value);
                            break;
                        case "Less Then":
                            statement = new Statement.LessThen(signal, value);
                            break;
                        case "Rising Edge":
                            statement = new Statement.RisingEdge(signal, value);
                            break;
                        case "Falling Edge":
                            statement = new Statement.FallingEdge(signal, value);
                            break;
                        default:
                            throw new Exception();
                    }
                }
                else
                {
                    throw new Exception();
                }
            }
            return statement;
        }
Esempio n. 3
0
        private Statement.Statement CreateStatement(StatementDataModel statementValues)
        {
            Statement.Statement statement;

            if (statementValues.StatementDataModelType == StatementDataModelType.TimedStatement)
            {
                int value;
                if (Int32.TryParse(statementValues.SignalOrValue, out value))
                {
                    value = value * 10000;
                    switch (statementValues.ExpressionValue)
                    {
                    case "Larger Then":
                        statement = new Statement.StatementTimeLargerThen(value);
                        break;

                    case "Less Then":
                        statement = new Statement.StatementTimeLessThen(value);
                        break;

                    default:
                        throw new Exception();
                    }
                    return(statement);
                }
            }

            var signal = _avalibleSignals.First(x => x.Name.Equals(statementValues.Signal));

            if (_avalibleSignals.Any(x => x.Name.Equals(statementValues.SignalOrValue)))
            {
                var signal2 = _avalibleSignals.First(x => x.Name.Equals(statementValues.SignalOrValue));

                switch (statementValues.ExpressionValue)
                {
                case "Equals":
                    statement = new Statement.Equals(signal, signal2);
                    break;

                case "Larger Then":
                    statement = new Statement.LargerThen(signal, signal2);
                    break;

                case "Less Then":
                    statement = new Statement.LessThen(signal, signal2);
                    break;

                case "Rising Edge":
                    statement = new Statement.RisingEdge(signal, signal2);
                    break;

                case "Falling Edge":
                    statement = new Statement.FallingEdge(signal, signal2);
                    break;

                default:
                    throw new Exception();
                }
            }
            else
            {
                double value;
                if (double.TryParse(statementValues.SignalOrValue, out value))
                {
                    switch (statementValues.ExpressionValue)
                    {
                    case "Equals":
                        statement = new Statement.Equals(signal, value);
                        break;

                    case "Larger Then":
                        statement = new Statement.LargerThen(signal, value);
                        break;

                    case "Less Then":
                        statement = new Statement.LessThen(signal, value);
                        break;

                    case "Rising Edge":
                        statement = new Statement.RisingEdge(signal, value);
                        break;

                    case "Falling Edge":
                        statement = new Statement.FallingEdge(signal, value);
                        break;

                    default:
                        throw new Exception();
                    }
                }
                else
                {
                    throw new Exception();
                }
            }
            return(statement);
        }
 private void AddTimeExpression()
 {
     var statementvalue = new StatementDataModel(_avalibleSignals, StatementDataModelType.TimedStatement);
     if (_statementValuesList.Count < 1)
         statementvalue.IsAlgebraOperatorVisible = false;
     statementvalue.PropertyChanged += StatementValueField_Changed;
     _statementValuesList.Add(statementvalue);
     _removeExpressionCommand.RaiseCanExecuteChanged();
     ObservableStatements.Refresh();
 }