Пример #1
0
        internal Port(Context context, Entity entity, IEnumerable <Signal> outputSignals)
        {
            _context = context;
            _iid     = _context.GenerateInstanceId();
            _entity  = entity;

            _inputSignalSet  = new SignalSet(entity.InputSignals.Length);
            _outputSignalSet = new SignalSet(outputSignals);
            _busSet          = new BusSet(entity.Buses.Length);

            System.Diagnostics.Debug.Assert(_outputSignalSet.Count == entity.OutputSignals.Length);

            context.NotifyNewPortConstructed(this);

            _completelyConnected = true;

            for (int i = 0; i < _outputSignalSet.Count; i++)
            {
                if (_outputSignalSet[i] != null)
                {
                    _outputSignalSet[i].DriveSignal(this, i);
                }
                else
                {
                    _completelyConnected = false;
                }
            }

            _completelyConnected &= _inputSignalSet.Count == 0 && _busSet.Count == 0;
            for (int i = 0; i < _outputSignalSet.Count && _completelyConnected; i++)
            {
                _completelyConnected &= _outputSignalSet[i] != null;
            }
        }
Пример #2
0
        internal Port(IEntity entity, IEnumerable <MathNet.Symbolics.Signal> outputSignals)
        {
            _entity = entity;

            _inputSignalSet  = new SignalSet(entity.InputSignals.Length);
            _outputSignalSet = new SignalSet(outputSignals);
            _busSet          = new BusSet(entity.Buses.Length);

            System.Diagnostics.Debug.Assert(_outputSignalSet.Count == entity.OutputSignals.Length);

            Service <IMediator> .Instance.NotifyNewPortCreated(this);

            _completelyConnected = true;

            for (int i = 0; i < _outputSignalSet.Count; i++)
            {
                if (_outputSignalSet[i] != null)
                {
                    ((ISignal_Drive)_outputSignalSet[i]).DriveSignal(this, i);
                }
                else
                {
                    _completelyConnected = false;
                }
            }

            _completelyConnected &= _inputSignalSet.Count == 0 && _busSet.Count == 0;
            for (int i = 0; i < _outputSignalSet.Count && _completelyConnected; i++)
            {
                _completelyConnected &= _outputSignalSet[i] != null;
            }
        }
Пример #3
0
        public MathSystem()
        {
            _iid = Config.GenerateInstanceId();

            _inputs = new SignalSet();
            _outputs = new SignalSet();
            _allSignals = new SignalSet();
            _allBuses = new BusSet();
            _allPorts = new PortSet();
        }
        public ConditionalCollectVisitor()
        {
            _signals = new SignalSet();
            _ports   = new PortSet();
            _buses   = new BusSet();

            _signalMatch = DummySignalPredicate;
            _portMatch   = DummyPortPredicate;
            _busMatch    = DummyBusPredicate;
        }
Пример #5
0
        public MathSystem()
        {
            _iid = Config.GenerateInstanceId();

            _inputs     = new SignalSet();
            _outputs    = new SignalSet();
            _allSignals = new SignalSet();
            _allBuses   = new BusSet();
            _allPorts   = new PortSet();
        }
        public ConditionalCollectVisitor()
        {
            _signals = new SignalSet();
            _ports = new PortSet();
            _buses = new BusSet();

            _signalMatch = DummySignalPredicate;
            _portMatch = DummyPortPredicate;
            _busMatch = DummyBusPredicate;
        }
        public ConditionalCollectVisitor(Predicate<Signal> signalMatch, Predicate<Port> portMatch, Predicate<Bus> busMatch)
        {
            _signals = new SignalSet();
            _ports = new PortSet();
            _buses = new BusSet();

            _signalMatch = signalMatch;
            _portMatch = portMatch;
            _busMatch = busMatch;
        }
        public ConditionalCollectVisitor(Predicate <Signal> signalMatch, Predicate <Port> portMatch, Predicate <Bus> busMatch)
        {
            _signals = new SignalSet();
            _ports   = new PortSet();
            _buses   = new BusSet();

            _signalMatch = signalMatch;
            _portMatch   = portMatch;
            _busMatch    = busMatch;
        }
Пример #9
0
        public MathSystem(Context context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            _context = context;
            _iid     = _context.GenerateInstanceId();

            _inputs     = new SignalSet();
            _outputs    = new SignalSet();
            _allSignals = new SignalSet();
            _allBuses   = new BusSet();
            _allPorts   = new PortSet();
        }
Пример #10
0
        internal Port(IEntity entity)
        {
            _entity = entity;

            _inputSignalSet  = new SignalSet(entity.InputSignals.Length);
            _outputSignalSet = new SignalSet(entity.OutputSignals.Length);
            _busSet          = new BusSet(entity.Buses.Length);

            _completelyConnected = _inputSignalSet.Count == 0 && _busSet.Count == 0;

            Service <IMediator> .Instance.NotifyNewPortCreated(this);

            for (int i = 0; i < _outputSignalSet.Count; i++)
            {
                _outputSignalSet[i] = new Signal();
                ((ISignal_Drive)_outputSignalSet[i]).DriveSignal(this, i);
            }
        }
Пример #11
0
        internal Port(IEntity entity)
        {
            _entity = entity;

            _inputSignalSet = new SignalSet(entity.InputSignals.Length);
            _outputSignalSet = new SignalSet(entity.OutputSignals.Length);
            _busSet = new BusSet(entity.Buses.Length);

            _completelyConnected = _inputSignalSet.Count == 0 && _busSet.Count == 0;

            Service<IMediator>.Instance.NotifyNewPortCreated(this);

            for(int i = 0; i < _outputSignalSet.Count; i++)
            {
                _outputSignalSet[i] = new Signal();
                ((ISignal_Drive)_outputSignalSet[i]).DriveSignal(this, i);
            }
        }
Пример #12
0
        internal Port(Context context, Entity entity)
        {
            _context = context;
            _iid     = _context.GenerateInstanceId();
            _entity  = entity;

            _inputSignalSet  = new SignalSet(entity.InputSignals.Length);
            _outputSignalSet = new SignalSet(entity.OutputSignals.Length);
            _busSet          = new BusSet(entity.Buses.Length);

            _completelyConnected = _inputSignalSet.Count == 0 && _busSet.Count == 0;

            context.NotifyNewPortConstructed(this);

            for (int i = 0; i < _outputSignalSet.Count; i++)
            {
                _outputSignalSet[i] = new Signal(context);
                _outputSignalSet[i].DriveSignal(this, i);
            }
        }
Пример #13
0
        internal Port(IEntity entity, IEnumerable<MathNet.Symbolics.Signal> outputSignals)
        {
            _entity = entity;

            _inputSignalSet = new SignalSet(entity.InputSignals.Length);
            _outputSignalSet = new SignalSet(outputSignals);
            _busSet = new BusSet(entity.Buses.Length);

            System.Diagnostics.Debug.Assert(_outputSignalSet.Count == entity.OutputSignals.Length);

            Service<IMediator>.Instance.NotifyNewPortCreated(this);

            _completelyConnected = true;

            for(int i = 0; i < _outputSignalSet.Count; i++)
                if(_outputSignalSet[i] != null)
                    ((ISignal_Drive)_outputSignalSet[i]).DriveSignal(this, i);
                else
                    _completelyConnected = false;

            _completelyConnected &= _inputSignalSet.Count == 0 && _busSet.Count == 0;
            for(int i = 0; i < _outputSignalSet.Count && _completelyConnected; i++)
                _completelyConnected &= _outputSignalSet[i] != null;
        }
Пример #14
0
 private InstanceIdSet BuilderMapBuses(BusSet buses, Dictionary <Guid, Guid> busMappings)
 {
     return(buses.ConvertAllToInstanceIds(delegate(MathNet.Symbolics.Bus b) { return busMappings[b.InstanceId]; }));
 }
Пример #15
0
 private BusSet MapBuses(InstanceIdSet buses)
 {
     return(BusSet.ConvertAllFromInstanceIds(buses, delegate(Guid id) { return _busMappings[id]; }));
 }
Пример #16
0
 private InstanceIdSet MapBuses(BusSet buses, Dictionary <Guid, Guid> busMappings)
 {
     return(buses.ConvertAllToInstanceIds(delegate(Bus b) { return busMappings[b.InstanceId]; }));
 }
Пример #17
0
 public CollectVisitor()
 {
     _signals = new SignalSet();
     _ports   = new PortSet();
     _buses   = new BusSet();
 }
Пример #18
0
 private InstanceIdSet BuilderMapBuses(BusSet buses, Dictionary<Guid, Guid> busMappings)
 {
     return buses.ConvertAllToInstanceIds(delegate(MathNet.Symbolics.Bus b) { return busMappings[b.InstanceId]; });
 }
Пример #19
0
 public CollectVisitor()
 {
     _signals = new SignalSet();
     _ports = new PortSet();
     _buses = new BusSet();
 }