private Statement.Statement CreateStatement(StatementData statementValues)
        {
            Statement.Statement 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 "Lagrer 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;
        }
예제 #2
0
        private Statement.Statement CreateStatement(StatementData statementValues)
        {
            Statement.Statement 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 "Lagrer 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);
        }