示例#1
0
 public Pin(int width, int height, int row, int col, string name, ValuesFunction valuesFunction, bool isOutputPin, bool isSignificant)
 {
     Width = width;
     Height = height;
     Row = row;
     Col = col;
     Name = name;
     ValuesFunction = valuesFunction;
     IsOutputPin = isOutputPin;
     IsSignificant = isSignificant;
 }
        public ValuesFunctionTemplate(ValuesFunction func)
        {
            Type = func.Type;

            switch (func)
            {
            case StaticValuesFunction svf:
                StaticValue = svf.Value;
                break;

            case PeriodicValuesFunction pvf:
                PeriodicOn   = pvf.On;
                PeriodicOff  = pvf.Off;
                PeriodicSkip = pvf.Skip;
                break;

            case RepeatingSequenceValuesFunction rsvf:
                foreach (var part in rsvf.Sequence)
                {
                    Sequence.Add(new SequencePartTemplate {
                        Value = part.Value, Length = part.Length
                    });
                }
                break;

            case AggregateValuesFunction avf:
                AggregateOperation = avf.Operation;
                foreach (var fn in avf.Functions)
                {
                    AggregateParts.Add(new ValuesFunctionTemplate(fn));
                }
                break;

            case ReferenceValuesFunction rvf:
                Reference = rvf.Reference;
                break;
            }
        }