Example #1
0
        public WatchItem(int index, ESignalType type)
        {
            this.index      = index;
            this.signalType = type;
            switch (type)
            {
            case ESignalType.DI:
                DIStruct signaldi = DIStruct.FindByIndex(index);
                signaldi.PropertyChanged += Signal_PropertyChanged;
                break;

            case ESignalType.AI:
                AIStruct signalai = AIStruct.FindByIndex(index);
                signalai.PropertyChanged += Signal_PropertyChanged;
                break;

            case ESignalType.DO:
                DOStruct signaldo = DOStruct.FindByIndex(index);
                signaldo.PropertyChanged += Signal_PropertyChanged;
                break;

            case ESignalType.AO:
                AOStruct signalao = AOStruct.FindByIndex(index);
                signalao.PropertyChanged += Signal_PropertyChanged;
                break;
            }
        }
Example #2
0
        /// <summary>
        /// актуализировать привязку
        /// </summary>
        public void RefreshLink()
        {
            if (index > -1)
            {
                switch (signalType)
                {
                case ESignalType.DI:
                    DIStruct signaldi = DIStruct.FindByIndex(index);
                    signaldi.PropertyChanged += Signal_PropertyChanged;
                    break;

                case ESignalType.AI:
                    AIStruct signalai = AIStruct.FindByIndex(index);
                    signalai.PropertyChanged += Signal_PropertyChanged;
                    break;

                case ESignalType.DO:
                    DOStruct signaldo = DOStruct.FindByIndex(index);
                    signaldo.PropertyChanged += Signal_PropertyChanged;
                    break;

                case ESignalType.AO:
                    AOStruct signalao = AOStruct.FindByIndex(index);
                    signalao.PropertyChanged += Signal_PropertyChanged;
                    break;
                }
            }
        }
        void ReadTableAO(StreamReader reader, out int count)
        {
            count = 0;
            string line;
            //CultureInfo culture = new CultureInfo("ru-RU");
            CultureInfo culture = new CultureInfo("en-US");

            try
            {
                reader.ReadLine(); //пропускаем строку с заголовками
                                   //    List<AOStruct> items = new List<AOStruct>();
                while (!reader.EndOfStream)
                {
                    line = reader.ReadLine();


                    string[] values = line.Split('\t');
                    if (values.Count() < 11)
                    {
                        continue;
                        //  System.Windows.Forms.MessageBox.Show("Ошибка чтения файла");
                    }
                    AOStruct item = new AOStruct();
                    item.En          = bool.Parse(values[0]);
                    item.indx        = int.Parse(values[1]);
                    item.OPCtag      = values[2];
                    item.PLCAddr     = int.Parse(values[3]);
                    item.PLCDestType = (EPLCDestType)Enum.Parse(typeof(EPLCDestType), values[4]);

                    item.Forced = bool.Parse(values[5]);
                    //item.ForcedValue = float.Parse(values[6], culture);
                    item.fVal    = float.Parse(values[6], culture);
                    item.minACD  = ushort.Parse(values[7], culture);
                    item.maxACD  = ushort.Parse(values[8], culture);
                    item.minPhis = float.Parse(values[9], culture);
                    item.maxPhis = float.Parse(values[10], culture);


                    if (values.Length > 10)
                    {
                        item.TagName = values[11];
                    }

                    if (values.Length > 11)
                    {
                        item.Name = values[12];
                    }

                    //    items.Add(item);
                    AOStruct.items.Add(item);
                }
                count = AOStruct.items.Count;

                //обновление ссылок
                foreach (KLStruct kl in KLTableViewModel.KL)
                {
                    kl.UpdateRefs();
                }

                foreach (ZDStruct zd in ZDTableViewModel.ZDs)
                {
                    zd.UpdateRefs();
                }

                foreach (VSStruct vs in VSTableViewModel.VS)
                {
                    vs.UpdateRefs();
                }

                foreach (MPNAStruct mpna in MPNATableViewModel.MPNAs)
                {
                    mpna.UpdateRefs();
                }

                foreach (USOCounter counter in CountersTableViewModel.Counters)
                {
                    counter.Refresh();
                }

                foreach (WatchItem item in WatchItem.Items)
                {
                    item.RefreshLink();
                }
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show("Ошибка импорта таблицы AO:\n\r" + ex.Message);
            }
        }
Example #4
0
 public WatchItem(AOStruct signal)
 {
     index                   = signal.indx;
     signalType              = ESignalType.AO;
     signal.PropertyChanged += Signal_PropertyChanged;
 }