Esempio n. 1
0
        public void APinvaluesTest2()
        {
            var pin1 = new APin();

            pin1.Offset = 2;
            pin1.Value  = new DateTimeValue(5, DateTime.Now);

            Assert.AreEqual(7, pin1.Value.Value);

            pin1.Offset = 0;
            pin1.Slope  = .5;
            pin1.Value  = new DateTimeValue(5, DateTime.Now);
            Assert.AreEqual(2.5, pin1.Value.Value);
        }
Esempio n. 2
0
        /// <summary>
        /// Setups the nodeview.
        /// </summary>
        private void SetupNodeView()
        {
            nvSignal.NodeStore = SignalStore;
            nvSignal.AppendColumn(new TreeViewColumn("Name(Pin)", new CellRendererText(), "text", 0));
            nvSignal.AppendColumn(new TreeViewColumn("Frequency", new CellRendererText(), "text", 1));
            nvSignal.AppendColumn(new TreeViewColumn("Number of mean values", new CellRendererText(), "text", 2));

            nvSignal.ButtonPressEvent += new ButtonPressEventHandler(OnSignalButtonPress);
            nvSignal.KeyPressEvent    += new KeyPressEventHandler(OnSignalKeyPress);
            nvSignal.RowActivated     += (o, args) => {
                var node = ((o as NodeView).NodeSelection.SelectedNode as APinSignalDialogTreeNode).Pin;
                ActiveNode = node;

                btnRemove.Sensitive = true;
            };
        }
Esempio n. 3
0
        public void SerializeAPin()
        {
            APin TestPin = new APin()
            {
                Number    = 42,
                Name      = "TestPin",
                PlotColor = GUIHelper.ColorHelper.GetRandomGdkColor(),
            };

            Formator.Serialize(MemStream, TestPin);

            MemStream.Seek(0, SeekOrigin.Begin);

            APin TestPinClone = (APin)Formator.Deserialize(MemStream);

            Assert.AreEqual(TestPin, TestPinClone);
        }
Esempio n. 4
0
        public void APinNewValueEventTestAfterEdit()
        {
            double val = -1;
            var    pin = new APin();

            pin.OnNewValue += (o, args) => val = args.Value;

            pin.Value = new DateTimeValue(42, DateTime.Now);

            Assert.AreEqual(42, val);

            pin.Interval    = 3000;
            pin.OnNewValue  = null;
            pin.OnNewValue += (o, args) => val = args.Value * 2;
            pin.Value       = new DateTimeValue(42, DateTime.Now);

            Assert.AreEqual(84, val);
        }
Esempio n. 5
0
        public void SerializeBoardConfigTest2()
        {
            var conf = new BoardConfiguration();

            conf.Board.AnalogReferenceVoltageType = "INTERNAL";
            conf.Board.AnalogReferenceVoltage     = 4.24;

            var pin = new APin()
            {
                Number = 42
            };

            var MeCom = new MeasurementCombination();

            MeCom.AddPin(pin);


            conf.AddPin(pin);
            conf.AddMeasurementCombination(MeCom);


            Formator.Serialize(MemStream, conf);
            MemStream.Seek(0, SeekOrigin.Begin);

            var confClone = (BoardConfiguration)Formator.Deserialize(MemStream);

            Assert.AreEqual(conf.Pins[0], confClone.Pins[0]);
            Assert.AreEqual(conf.MeasurementCombinations[0], confClone.MeasurementCombinations[0]);
            Assert.AreEqual(4.24, conf.Board.AnalogReferenceVoltage, 0.000000001);
            Assert.AreEqual(4.24, confClone.Board.AnalogReferenceVoltage, 0.000000001);
            Assert.AreEqual("INTERNAL", conf.Board.AnalogReferenceVoltageType);
            Assert.AreEqual("INTERNAL", confClone.Board.AnalogReferenceVoltageType);
            Assert.AreSame(conf.Pins[0], conf.MeasurementCombinations[0].Pins[0]);
            Assert.AreSame(confClone.Pins[0], confClone.MeasurementCombinations[0].Pins[0]);

            conf.Pins[0].Name = "Dulli";
            Assert.AreEqual(conf.Pins[0].Name, conf.MeasurementCombinations[0].Pins[0].Name);
            Assert.AreEqual(19, confClone.AvailableDigitalPins.Length);
            Assert.AreEqual(6, confClone.AvailableAnalogPins.Length);

            conf.ClearPins();
            Assert.AreEqual(0, conf.Pins.Count);
            Assert.AreEqual(0, conf.MeasurementCombinations.Count);
        }
Esempio n. 6
0
        public void APinCopyConstructorTest()
        {
            var pin = new APin();

            pin.Name     = "PinPinsen";
            pin.Interval = 3000;

            double value = 42;

            pin.Value = new DateTimeValue(value, DateTime.Now);

            var copypin = new APin(pin);

            Assert.AreEqual("PinPinsen", copypin.Name);
            Assert.AreEqual(3000, copypin.Interval);
            Assert.AreEqual(value, copypin.Value.Value);
            Assert.AreEqual(1, copypin.Values.Count);
            Assert.AreEqual(pin.RAWValues, copypin.RAWValues);
        }
        public void MeasurementCombinationTests1()
        {
            var mecom = new MeasurementCombination();
            var pin   = new APin()
            {
                Number = 0, RealNumber = 14, Interval = 1000, MeanValuesCount = 1
            };

            Assert.AreEqual(0, mecom.Pins.Count);

            mecom.AddPin(pin);
            Assert.AreEqual(1, mecom.Pins.Count);
            Assert.AreEqual(false, mecom.AddPin(pin));

            var mecomcopy = new MeasurementCombination();

            mecomcopy.AddPin(pin);

            Assert.AreEqual(mecom, mecomcopy);
        }
Esempio n. 8
0
 public APinListStoreNode(APin pin, int index = -1)
 {
     Pin   = pin;
     Index = index;
 }
Esempio n. 9
0
 public APinSignalDialogTreeNode(APin pin, int index = -1)
 {
     Pin   = pin;
     Index = index;
 }
Esempio n. 10
0
 public APinTreeNode(APin pin, int index = -1, MeasurementCombination combination = null)
 {
     Pin         = pin;
     Combination = combination;
     Index       = index;
 }
Esempio n. 11
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AnalogPinConfigurationDialog.AnalogPinConfiguration"/> class.
        /// </summary>
        /// <param name="availablePins">Available pins.</param>
        /// <param name="apin">Apin.</param>
        /// <param name="parent">Parent.</param>
        public APinConfigDialog(APin[] availablePins, APin apin = null, Gtk.Window parent = null, List <string> units = null)
            : base("Analog Input - Dialog", parent, Gtk.DialogFlags.Modal, new object[0])
        {
            this.Build();


            if (apin != null)
            {
                AvailablePins = new APin[availablePins.Length + 1];
                Array.Copy(availablePins, AvailablePins, availablePins.Length);
                AvailablePins [availablePins.Length] = apin;

                buttonOk.Label = "Apply";
                buttonOk.Image = new Image(Gtk.Stock.Apply, IconSize.Button);
            }
            else
            {
                AvailablePins = availablePins;
            }


            sbSlope.Adjustment.Lower           = double.MinValue;
            sbSlope.Adjustment.Upper           = double.MaxValue;
            sbOffset.Adjustment.Lower          = double.MinValue;
            sbOffset.Adjustment.Upper          = double.MaxValue;
            sbMeanValuesCount.Adjustment.Upper = int.MaxValue;
            sbMeanValuesCount.Adjustment.Lower = 1;


            for (int i = 0; i < AvailablePins.Length; i++)
            {
                cbPin.AppendText(AvailablePins [i].DisplayNumber);
            }

            if (apin != null)
            {
                Pin = new APin(apin);
            }
            else
            {
                if (AvailablePins.Length > 0)
                {
                    pin = AvailablePins [0];
                }
                else
                {
                    pin = new APin();
                }
                pin.PlotColor = GUIHelper.ColorHelper.GetRandomGdkColor();
                cbColor.Color = pin.PlotColor;
            }

            if (AvailablePins.Length > 0)
            {
                if (apin != null)
                {
                    cbPin.Active = AvailablePins.Length - 1;
                }
                else
                {
                    cbPin.Active = 0;
                }
            }
            else
            {
                buttonOk.Sensitive   = false;
                buttonOk.TooltipText = "There are no more available pins to configure.";
            }

            Units = units;
            ListStore store = new ListStore(typeof(string));

            Units.ForEach(o => store.AppendValues(new object[] { o }));
            cbUnit.Model = store;
            if (!string.IsNullOrEmpty(pin.Unit))
            {
                if (Units.Contains(pin.Unit))
                {
                    cbUnit.Active = Array.IndexOf(Units.ToArray(), pin.Unit);
                }
                else
                {
                    store.AppendValues(new string[] { pin.Unit });
                    cbUnit.Active = Units.Count;
                }
            }
            else
            {
                cbUnit.Active = Array.IndexOf(Units.ToArray(), "V");
            }

            BindEvents();
        }
Esempio n. 12
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AComConfigDialog"/> class.
        /// </summary>
        /// <param name="pins">Pins.</param>
        /// <param name="signal">Signal.</param>
        /// <param name="pin">Pin.</param>
        /// <param name="parent">Parent.</param>
        /// <param name="units">Units.</param>
        public AComConfigDialog(APin[] pins, MeasurementCombination signal = null, APin pin = null, Gtk.Window parent = null, List <string> units = null)
            : base("Analog Inputs Combinations - Dialog", parent, Gtk.DialogFlags.Modal, new object[0])
        {
            this.Build();

            sbMeanValuesCount.Adjustment.Upper = int.MaxValue;
            sbMeanValuesCount.Adjustment.Lower = 1;

            APins = pins;

            cbColor.Color = GUIHelper.ColorHelper.GetRandomGdkColor();

            if (signal == null)
            {
                Combination_       = new MeasurementCombination();
                Combination_.Color = cbColor.Color;
            }
            else
            {
                Combination = signal;
                if (!string.IsNullOrEmpty(Combination.OperationString))
                {
                    CompileOperation();
                }
                else
                {
                    SetWarning();
                }
                buttonOk.Label = "Apply";
            }

            if (pin != null)
            {
                Combination_.AddPin(pin);
                Combination_.Unit = Combination_.Pins [0].Unit;
            }

            SetupNodeView();
            DrawNodeView();
            UpdateCBPins();
            SetApplyButton();

            entryOperation.Activated += (sender, e) => {
                if (!CompileTimer.Enabled)
                {
                    CompileTimer.Start();
                }
            };
            entryOperation.FocusInEvent += (sender, e) => {
                if (!CompileTimer.Enabled)
                {
                    CompileTimer.Start();
                }
            };

            CompileTimer.Elapsed += CompileTimerElapsed;

            Units = units;
            ListStore store = new ListStore(typeof(string));

            Units.ForEach(o => store.AppendValues(new object[] { o }));
            cbeUnit.Model = store;
            if (!string.IsNullOrEmpty(Combination_.Unit))
            {
                if (Units.Contains(Combination_.Unit))
                {
                    cbeUnit.Active = Array.IndexOf(Units.ToArray(), Combination_.Unit);
                }
                else
                {
                    store.AppendValues(new string[] { Combination_.Unit });
                    cbeUnit.Active = Units.Count;
                }
            }
        }