コード例 #1
0
ファイル: Bus.cs プロジェクト: obiwanjacobi/Zim80
 private bool AreMultipleMastersActive(BusMaster currentMaster)
 {
     return(_masters
            .Where(m => !m.Value.IsFloating)
            .Except(new[] { currentMaster })
            .Any());
 }
コード例 #2
0
ファイル: Bus.cs プロジェクト: obiwanjacobi/Zim80
 private void ThrowIfMultipleMastersAreActive(BusMaster currentMaster)
 {
     if (AreMultipleMastersActive(currentMaster))
     {
         throw new BusConflictException("Multiple masters are active on bus: " + Name);
     }
 }
コード例 #3
0
        private bool AreMultipleMastersActive(BusMaster currentMaster)
        {
            var floating = new BusData(BusWidth);

            return(_masters
                   .Where(m => !m.Value.Equals(floating))
                   .Except(new[] { currentMaster })
                   .Any());
        }
コード例 #4
0
ファイル: Bus.cs プロジェクト: obiwanjacobi/Zim80
        internal void OnMasterValueChanged(BusMaster busMaster)
        {
            ThrowIfMultipleMastersAreActive(busMaster);
            var value = busMaster.Value;

            if (!Value.Equals(value))
            {
                Value = value;
                ApplyValue(value);
                NotifyChange(busMaster);
            }
        }
コード例 #5
0
ファイル: Bus.cs プロジェクト: obiwanjacobi/Zim80
        internal void Attach(BusMaster busMaster)
        {
            if (busMaster == null)
            {
                throw new ArgumentNullException(nameof(busMaster));
            }
            if (_masters.Contains(busMaster))
            {
                throw new ArgumentException("Specified BusMaster is already connected.", nameof(busMaster));
            }

            _masters.Add(busMaster);
        }
コード例 #6
0
 public BusChangedEventArgs(BusMaster busMaster, BusData value)
 {
     BusMaster = busMaster;
     Value     = value;
 }
コード例 #7
0
ファイル: Bus.cs プロジェクト: obiwanjacobi/Zim80
 protected void NotifyChange(BusMaster source)
 {
     OnChanged?.Invoke(this, new BusChangedEventArgs <BusData>(source, Value));
 }
コード例 #8
0
ファイル: BusMasterSlave.cs プロジェクト: DualBrain/Zim80
 public BusSlaveOfMaster(BusMaster owner, Bus bus, string name)
     : base(bus, name)
 {
     _owner = owner;
 }
コード例 #9
0
ファイル: BusMasterSlave.cs プロジェクト: DualBrain/Zim80
 public BusSlaveOfMaster(BusMaster owner, Bus bus)
     : base(bus)
 {
     _owner = owner;
 }
コード例 #10
0
ファイル: BusMasterSlave.cs プロジェクト: DualBrain/Zim80
 public BusSlaveOfMaster(BusMaster owner)
 {
     _owner = owner;
 }