Exemple #1
0
            public void SetNextLogInfo(String row, int lineNumber)
            {
                switch (lineNumber)
                {
                case 2:
                    string[] version = row.Split(new char[] { '\t' }, StringSplitOptions.None);
                    if (version.Length == 2)
                    {
                        Softwareversion = version[1].Trim();
                    }
                    break;

                case 3:
                    string[] system = row.Split(new char[] { '\t' }, StringSplitOptions.None);
                    if (system.Length == 2)
                    {
                        SolvisSystem = system[1].Trim();
                    }
                    break;

                case 4:
                    String[] names = row.Split(new char[] { '\t' }, StringSplitOptions.None);
                    if (names.Length > 2)
                    {
                        for (int i = 2; i < names.Length; i++)
                        {
                            attribs.Add(new IOAttribute(names[i]));
                        }
                    }
                    break;

                case 5:
                    string[] formats = row.Split(new char[] { '\t' }, StringSplitOptions.None);
                    if (formats.Length > 2 && attribs.Count == formats.Length - 2)
                    {
                        for (int i = 2; i < formats.Length; i++)
                        {
                            attribs[i - 2].SetValues(formats[i]);
                        }
                    }
                    int actualSensorIndex = 0;
                    int actualActorIndex  = CountSensorCheckBoxes;
                    for (int i = 0; i < attribs.Count; i++)
                    {
                        IOAttribute iOAttrib = attribs[i];
                        if (iOAttrib.Ident == GroupIdent.Sensor && actualSensorIndex < CountSensorCheckBoxes)
                        {
                            NamesAndUnits[actualSensorIndex++] = iOAttrib.IOName + ", " + iOAttrib.Unit;
                        }
                        if (iOAttrib.Ident == GroupIdent.Actor && actualActorIndex < (CountSensorCheckBoxes + CountActorCheckBoxes))
                        {
                            NamesAndUnits[actualActorIndex++] = iOAttrib.IOName + ", " + iOAttrib.Unit;
                        }
                    }
                    AppManager.MainForm.UpdateToolTips();
                    break;

                default: break;
                }
            }
Exemple #2
0
        private void MiConvert(string[] values)
        {
            int actualSensorIndex = 0;
            int actualActorIndex = 0;
            int k, j;

            for (k = 2, j = 0; k < values.Length; k++, j++)
            {
                int tmp = Convert.ToInt32(values[k], CultureInfo.InvariantCulture);
                if (j == S10Index)   //Aussen Temperatur
                {
                    S10Raw = (double)tmp / 10.0D;
                    int last = mean.GetLastValue(tmp);
                    if (Math.Abs(last - tmp) > 40)   //4 Grad Abweichung zulässig
                    {
                        tmp = last;
                    }
                    mean.Write(tmp);
                }
                IOAttribute iOAttrib = Infos.Attribs[j];
                if (iOAttrib.Ident == GroupIdent.Sensor && actualSensorIndex < Infos.CountSensorCheckBoxes)
                {
                    sensors[actualSensorIndex++] = (double)tmp * iOAttrib.Multiplier;
                }
                if (iOAttrib.Ident == GroupIdent.Actor && actualActorIndex < Infos.CountActorCheckBoxes)
                {
                    actors[actualActorIndex++] = (double)tmp * iOAttrib.Multiplier;
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// Creates a binsized pin according to the information in the desciptor. Ignores IsRequired.
        /// </summary>
        /// <param name="field"></param>
        /// <exception cref="InvalidComObjectException">PluginInterface: Internal COM disconnect</exception>
        /// <returns>The container around the pin.</returns>
        protected virtual IIOContainer CreatePin(FormularFieldDescriptor field)
        {
            IOAttribute attr = SetPinAttributes(field);                                                          // each implementation of DynamicPinsNode must create its own InputAttribute or OutputAttribute (

            Type pinType = typeof(ISpread <>).MakeGenericType((typeof(ISpread <>)).MakeGenericType(field.Type)); // the Pin is always a binsized one

            IIOContainer pin = null;

            pin = FPins[field.Name] = FIOFactory.CreateIOContainer(pinType, attr);

            DynPinCount += 2; // total pincount. always add two to account for data pin and binsize pin

            return(pin);
        }
Exemple #4
0
        public DiffSpreadList(IIOFactory ioFactory, IOAttribute attribute)
            : base(0)
        {
            //store fields
            FIOFactory = ioFactory;
            FAttribute = attribute;

            //create config pin
            var att = new ConfigAttribute(FAttribute.Name + " Count");

            att.DefaultValue = 2;

            //increment instance Counter and store it as pin offset
            FOffsetCounter = FInstanceCounter++;

            FCountSpread          = ioFactory.CreateIO <IDiffSpread <int> >(att);
            FCountSpread.Changed += UpdatePins;
        }
Exemple #5
0
        public SpreadList(IIOFactory factory, IOAttribute attribute)
            : base(new SpreadListStream())
        {
            //store fields
            FFactory   = factory;
            FAttribute = attribute;

            //increment instance Counter and store it as pin offset
            FOffsetCounter = FInstanceCounter++;

            //create config pin
            FCountSpread = factory.CreateIO <IDiffSpread <int> >(
                new ConfigAttribute(FAttribute.Name + " Count")
            {
                DefaultValue = 2,
                MinValue     = 2
            }
                );
            FCountSpread.Changed += HandleCountSpreadChanged;
            FCountSpread.Sync();
        }
        protected virtual void OnConfigChange(IDiffSpread <string> configSpread)
        {
            var formular = new MessageFormular(MessageFormular.DYNAMIC, configSpread[0] ?? "string Value");

            if (formular.FieldNames.Count() < 1)
            {
                return;
            }

            if (FValue != null)
            {
                FValue.Dispose();
            }

            var name = formular.FieldNames.First();

            TargetDynamicType = formular[name].Type;

            IOAttribute attr    = DefinePin(formular[name]);                                                                   // each implementation of DynamicNode must create its own InputAttribute or OutputAttribute
            Type        pinType = typeof(ISpread <>).MakeGenericType((typeof(ISpread <>)).MakeGenericType(TargetDynamicType)); // the Pin is always a binsized one

            FValue = FIOFactory.CreateIOContainer(pinType, attr);
        }
Exemple #7
0
 public BinSpread(IIOFactory ioFactory, IOAttribute attribute, BinSpreadStream stream)
     : base(stream)
 {
     FIOFactory = ioFactory;
 }
Exemple #8
0
 /// <summary></summary>
 /// <param name="spread"></param>
 /// <param name="attr"></param>
 public SpreadWrapper(ISpread spread, IOAttribute attr)
 {
     Attributes = attr;
     Spread     = spread;
 }
        protected virtual void HandleConfigChange(IDiffSpread <string> configSpread)
        {
            FCount = 0;
            List <string> invalidPins = FPins.Keys.ToList();

            string[] config = configSpread[0].Trim().Split(',');
            foreach (string pinConfig in config)
            {
                string[] pinData = pinConfig.Trim().Split(' ');

                try
                {
                    string typeName = pinData[0].ToLower();
                    string name     = pinData[1];

                    bool create = false;
                    if (FPins.ContainsKey(name) && FPins[name] != null)
                    {
                        invalidPins.Remove(name);

                        if (FTypes.ContainsKey(name))
                        {
                            if (FTypes[name] != typeName)
                            {
                                FPins[name].Dispose();
                                FPins[name] = null;
                                create      = true;
                            }
                        }
                        else
                        {
                            // key is in FPins, but no type defined. should never happen
                            create = true;
                        }
                    }
                    else
                    {
                        FPins.Add(name, null);
                        create = true;
                    }

                    if (create)
                    {
                        Type type = typeof(string);
                        foreach (Type key in TypeIdentity.Instance.Keys)
                        {
                            if (TypeIdentity.Instance[key] == typeName)
                            {
                                type = key;
                            }
                        }

                        IOAttribute attr = DefinePin(name, type);
                        // each implementation of DynamicNode must create its own InputAttribute or OutputAttribute (
                        Type pinType = typeof(ISpread <>).MakeGenericType((typeof(ISpread <>)).MakeGenericType(type));
                        // the Pin is always a binsized one
                        FPins[name] = FIOFactory.CreateIOContainer(pinType, attr);

                        FTypes.Add(name, typeName);
                    }
                    FCount += 2; // total pincount. always add two to account for data pin and binsize pin
                }
                catch (Exception ex)
                {
                    var e = ex;
                    FLogger.Log(LogType.Debug, ex.ToString());
                    FLogger.Log(LogType.Debug, "Invalid Descriptor in Config Pin");
                }
            }
            foreach (string name in invalidPins)
            {
                FPins[name].Dispose();
                FPins.Remove(name);
                FTypes.Remove(name);
            }
        }
Exemple #10
0
 public GenericInput(IPluginHost plgh, IOAttribute attr)
 {
     plgh.CreateNodeInput(attr.Name, (TSliceMode)attr.SliceMode, (TPinVisibility)attr.Visibility, out Pin);
     Pin.SetSubType2(null, new Guid[] { }, "Variant");
 }
Exemple #11
0
 public GenericBinSizedInput(IPluginHost plgh, IOAttribute attr)
 {
     plgh.CreateNodeInput(attr.Name, (TSliceMode)attr.SliceMode, (TPinVisibility)attr.Visibility, out Pin);
     plgh.CreateValueInput(attr.Name + " Bin Size", 1, new[] { "X" }, TSliceMode.Dynamic, (TPinVisibility)attr.Visibility, out BinSizePin);
     Pin.SetSubType2(null, new Guid[] { }, "Variant");
 }
Exemple #12
0
 public DiffSpreadPin(NGIDiffSpread spread, IOAttribute attr, IIOContainer ioc)
 {
     Attributes  = attr;
     IOContainer = ioc;
     Spread      = spread;
 }