Ejemplo n.º 1
0
        /// <summary>
        /// Converts an array of SignalData to a SignalList
        /// </summary>
        /// <param name="signalDataArray">Array of SignalData to convert</param>
        /// <returns>converted SignalList</returns>
        public SignalList ConvertToSignalList(SignalData[] signalDataArray)
        {
            SignalList signalList = new SignalList();

            foreach (SignalData signalData in signalDataArray)
            {
                signalList.Add(ConvertSignalData(signalData));
            }
            return(signalList);
        }
Ejemplo n.º 2
0
        public void ConnectToByIndex(Bus bus, params int[] indexes)
        {
            ThrowIfBusWidthIsTooSmall(bus);

            SourceBus = bus;

            SignalList.Clear();
            foreach (var index in indexes)
            {
                SignalList.Add(SignalList[index]);
            }

            _prevValue = ValueFromSignals();
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Adds a new element to the circuit
 /// </summary>
 /// <param name="element">the element to add</param>
 public void AddElement(GraphicBaseElement element)
 {
     if (element != null)
     {
         m_Circuit.AddElement(element.LinkedObject as BaseElement);
         element.OnUpdateDrawing += new UpdateDrawingEvent(element_OnUpdateDrawing);
         if (element is GraphicInput && element.LinkedObject is SignalInput)
         {
             m_SignalList.Add((element.LinkedObject as SignalInput).Signal);
         }
         RaiseChangedEvent();
         UpdateDrawing();
         Invalidate();
     }
 }
Ejemplo n.º 4
0
        internal void readSignalsAndTime()
        {
            // Assume first line to be titles
            string titleLine = sr.ReadLine();
            var    titles    = titleLine.Split(new char[] { splitChar }, StringSplitOptions.RemoveEmptyEntries);

            this.signals = new SignalList();
            int col = 0;

            foreach (string title in titles)
            {
                signals.Add(new Signal()
                {
                    Name = title, UID = col
                });
                col++;
            }

            // Assume first column to be time
            List <DateTime> samples = new List <DateTime>();

            while (!sr.EndOfStream)
            {
                var line = sr.ReadLine();

                var values = line.Split(new char[] { splitChar }, StringSplitOptions.RemoveEmptyEntries);
                if (values.Length > timeColumn)
                {
                    var timeStr = values[timeColumn];
                    // Try to parse as double
                    double   doubleValue;
                    DateTime dt;
                    if (double.TryParse(timeStr, NumberStyles.Any, nfi, out doubleValue))
                    {
                        dt = new DateTime((long)(doubleValue * TimeSpan.TicksPerSecond));
                        samples.Add(dt);
                    }
                    else if (DateTime.TryParse(timeStr, out dt))
                    {
                        samples.Add(dt);
                    }
                }
            }

            timeVector = samples.ToArray();
        }
        public void TestMethod1()
        {
            //
            // TODO: Testlogik hier einfügen
            //
            Signal signal = new Signal();

            signal.Add(State.Low);
            signal.Add(State.High);
            SignalList sigList = new SignalList();

            sigList.Add(signal);

            SignalData[] sigData;
            sigData = SignalConverter.Instance.ConvertFromSignalList(sigList);
            SignalList compare = SignalConverter.Instance.ConvertToSignalList(sigData);

            Assert.AreEqual <SignalList>(sigList, compare);
            //Assert.IsTrue(sigList.Equals(compare));
        }
Ejemplo n.º 6
0
        public void ConnectTo(Bus bus, int offset = 0, int count = 0)
        {
            ThrowIfBusWidthIsTooSmall(bus);

            SourceBus = bus;

            if (count == 0)
            {
                count = BusWidth;
            }

            SignalList.Clear();
            var signals = bus.Signals.Skip(offset).Take(count);

            foreach (var signal in signals)
            {
                SignalList.Add(signal);
            }

            _prevValue = ValueFromSignals();
        }
Ejemplo n.º 7
0
 private void button6_Click(object sender, EventArgs e)
 {
     //add
     signalList.Add((Signal)signal.Clone());
 }
Ejemplo n.º 8
0
        private void UpdateListViewAfterTreeViewItemSelect()
        {
            lvSignals.Clear();
            lvSignals.Groups.Clear();

            var collectionIdentifier = tvSignals.SelectedNode.Tag as string;

            if (collectionIdentifier != null &&
                !collectionIdentifier.StartsWith("COLLECTION", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }
            if (collectionIdentifier != null)
            {
                collectionIdentifier = collectionIdentifier.Substring("COLLECTION:".Length);
                var categoryIdentifier = (tvSignals.SelectedNode.Parent.Tag as string)?.Substring("CATEGORY:".Length);
                var sourceIdentifier   =
                    (tvSignals.SelectedNode.Parent.Parent.Tag as string)?.Substring("SOURCE:".Length);

                lvSignals.Columns.Clear();
                lvSignals.Columns.Add(nameof(Signal));

                lvSignals.BeginUpdate();
                var signalsThisSource     = Signals.GetSignalsFromSource(sourceIdentifier);
                var signalsThisCategory   = signalsThisSource.GetSignalsByCategory(categoryIdentifier);
                var signalsThisCollection = signalsThisCategory.GetSignalsByCollection(collectionIdentifier);
                if (signalsThisCollection != null)
                {
                    var subCollections = signalsThisCollection.GetUniqueSubcollections(collectionIdentifier)
                                         .OrderBy(x => x)
                                         .ToList();


                    if (subCollections.Count > 0)
                    {
                        var signalsAlreadyAdded = new SignalList <Signal>();
                        foreach (var subcollectionName in subCollections)
                        {
                            var lvg = new ListViewGroup(subcollectionName, HorizontalAlignment.Left);
                            lvSignals.Groups.Add(lvg);
                            var signalsThisSubcollection =
                                signalsThisCollection
                                .GetSignalsBySubcollectionName(collectionIdentifier, subcollectionName)
                                .OrderBy(x => x.FriendlyName)
                                .ToList();
                            foreach (var signal in signalsThisSubcollection)
                            {
                                var lvi = CreateListViewItemFromSignal(signal);
                                lvg.Items.Add(lvi);
                                lvSignals.Items.Add(lvi);
                                signalsAlreadyAdded.Add(signal);
                            }
                        }
                        foreach (var signal in signalsThisCollection.Except(signalsAlreadyAdded))
                        {
                            var lvi = CreateListViewItemFromSignal(signal);
                            lvSignals.Items.Add(lvi);
                        }
                    }
                    else
                    {
                        foreach (var signal in signalsThisCollection)
                        {
                            var lvi = CreateListViewItemFromSignal(signal);
                            lvSignals.Items.Add(lvi);
                        }
                    }
                }
            }
            for (var i = 0; i < lvSignals.Columns.Count; i++)
            {
                lvSignals.Columns[i].TextAlign = HorizontalAlignment.Left;
                lvSignals.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
            }
            lvSignals.EndUpdate();
            lvSignals.Sort();
        }