示例#1
0
 protected ChkVm(int loudspeaker, int line, CardModel card, MainUnitModel main)
 {
     Loudspeaker = loudspeaker;
     Line        = line;
     Card        = card;
     Main        = main;
 }
示例#2
0
 public LspNode(int loudspeaker, int line, CardModel card, MainUnitModel main)
     : base(loudspeaker, line, card, main)
 {
     _loudspeaker = loudspeaker;
     _line        = line;
     _flow        = card.Flows.Skip(Loudspeaker).FirstOrDefault();
 }
示例#3
0
        /// <summary>
        /// Low Pilot
        ///         0 1 2
        /// Watts   A B AB
        ///         3 4 5
        /// Ohm     A B AB
        /// High Pilot
        ///         6 7 8
        /// Watts   A B AB
        ///         9 1011
        /// Ohm     A B AB
        /// </summary>
        public static double[] GetLoads(FlowModel flow, MainUnitModel main)
        {
            var ret = new double[12];

            if (main.DspCopy.Count < 131070)
            {
                return(Enumerable.Range(0, 12).Select(n => 0.0).ToArray());
            }
            var ks = main.DspCopy.Skip(McuDat.KreisInstall).Skip(flow.Id * 72).Take(72).ToArray();

            for (var g = 0; g < 2; g++)
            {
                var start = 12 + g * 18;

                //stored load high pilot a, b, ab
                for (var i = 0; i < 3; i++)
                {
                    ret[i + g * 6] = (DspCoefficients.Nfb(new[]
                    {
                        ks[start + i * 2],
                        ks[start + i * 2 + 1]
                    }));
                }
            }
            for (var g = 0; g < 2; g++)
            {
                //add resistance to array
                for (var i = 0; i < 3; i++)
                {
                    switch (flow.AmplifierOperationMode)
                    {
                    case AmplifierOperationMode.Bridged100V:
                    case AmplifierOperationMode.Trafo:
                        var q = ret[i + g * 6];
                        ret[i + 3 + g * 6] = q < .01 ? 0 : Math.Round(10000 / ret[i + g * 6], 0);

                        break;

                    case AmplifierOperationMode.Single50V:
                        q = ret[i + g * 6];
                        ret[i + 3 + g * 6] = q < 0.01 ? 0 : Math.Round(2500 / ret[i + g * 6], 0);
                        break;

                    default:
                        ret[i + 3 + g * 6] = 0;
                        break;
                    }
                }
            }
            for (int i = 0; i < ret.Length; i++)
            {
                if (ret[i] < 10)
                {
                    ret[i] = 0;
                }
            }

            return(ret);
        }
示例#4
0
 private static SortedSet <FlowModel> GenFlows(MainUnitModel model, int cardId)
 {
     return
         (new SortedSet <FlowModel>(
              Enumerable.Range(model.Id * 12 + cardId * 4, 4).Select(n => new FlowModel {
         Id = n
     })));
 }
示例#5
0
        public MainUnitViewModel(MainUnitModel mainUnit, MainViewModel main)
        {
            main.Communication.ConnectionModeChanged += Communication_ConnectionModeChanged;
            _mainUnit           = mainUnit;
            _main               = main;
            main.SystemChanged += UpdateName;

            VuMeter       = new VuMeter(this);
            AlarmMessages = new AlarmMessagesViewModel(this);

            UpdateConnectionMode();
        }
 protected internal ToneControlUpdater(MainUnitModel main) : base(main)
 {
 }
示例#7
0
 protected internal TimeStampUpdater(MainUnitModel main) : base(main)
 {
 }
示例#8
0
 protected internal MessageSelector(MainUnitModel main)
     : base(main)
 {
 }
示例#9
0
 public HardwareReceive(MainUnitModel main)
     : base(main)
 {
 }
示例#10
0
 public PeqUpload(MainUnitModel main) : base(main)
 {
 }
示例#11
0
 protected internal MatrixSender(MainUnitModel main) : base(main)
 {
 }
示例#12
0
 protected internal InputSensitivityUpdater(MainUnitModel main) : base(main)
 {
 }
示例#13
0
 public MainUnitEmergencyViewModel(MainUnitModel main, int xLocation)
 {
     _main      = main;
     Location.Y = 0;
     Location.X = xLocation;
 }
示例#14
0
 public SensitivityReceive(int mcuId, MainUnitModel main)
 {
     _mcuId = mcuId;
     _main  = main;
 }
示例#15
0
 protected internal EscLogic(MainUnitModel main)
 {
     Main = main;
 }
示例#16
0
 public EscSender(MainUnitModel main)
 {
     _main = main;
 }
示例#17
0
 protected internal SliderUpdater(MainUnitModel main) : base(main)
 {
 }
示例#18
0
 /// <summary>
 /// Design instance
 /// </summary>
 public MainUnitViewModel()
 {
     LibraryData.CreateEmptySystem();
     _mainUnit = LibraryData.GetMainUnit(0);
     _main     = new MainViewModel();
 }
 private static void MainUnitIntegratyChecker(MainUnitModel mainUnitModel)
 {
     if (mainUnitModel.LoudSpeakers == null || mainUnitModel.LoudSpeakers.Count < 1)
     {
         mainUnitModel.LoudSpeakers = new List<LoudSpeakerModel>();
         mainUnitModel.LoudSpeakers.AddRange(Enumerable.Range(0, 24).Select(n => new LoudSpeakerModel()
         {
             Id = n,
             IsVisibileInMonitoringSchematic = false,
             Line = (n < 12) ? LoudspeakerLine.LineA : LoudspeakerLine.LineB
         }));
     }
 }
示例#20
0
 protected internal LineLinkUpdater(MainUnitModel main)
     : base(main)
 {
     _flows = Main.Cards.OfType <CardModel>().SelectMany(o => o.Flows).ToList();
 }
示例#21
0
 protected internal SdMessageReceive(MainUnitModel main)
     : base(main)
 {
 }
示例#22
0
 protected internal DelayUpdater(MainUnitModel main) : base(main)
 {
 }
示例#23
0
 protected internal AuxLinker(MainUnitModel main)
     : base(main)
 {
 }
示例#24
0
 public LspLeftHeader(int line, CardModel card, MainUnitModel main)
     : base(0, line, card, main)
 {
     _flow = card.Flows.Skip(line).FirstOrDefault();
 }