예제 #1
0
            /// <summary>
            /// Получить объект 'ITEM_SRC' по индксу панели, строковому идентификатору
            /// </summary>
            /// <param name="indxSrc">Индекс панели</param>
            /// <param name="id">Строковый идентификатор объекта</param>
            /// <returns>Объект описания элемента группы</returns>
            private ITEM_SRC getItemSrc(INDEX_SRC indxSrc,string id)
            {
                ITEM_SRC itemSrcRes = null;                        //Результат
                //Получить объект с
                SRC src       = m_arListGroupValues[(int)indxSrc]; //источник/назначение
                int groupType = getTypeGroup(id);


                //группы источников/сигналов
                switch (groupType)
                {
                case 0:     //GROUP_SOURCES
                    foreach (ITEM_SRC itemSrc in src.m_listGroupSrc)
                    {
                        if (itemSrc.m_strID.Equals(id) == true)
                        {    //Получить результат
                            itemSrcRes = itemSrc;
                            //Прекратить выполнение цикла
                            break;
                        }
                        else
                        {
                            ;
                        }
                    }
                    break;

                case 2:     //GROUP_SIGNALS
                    foreach (ITEM_SRC itemSrc in src.m_listGroupSgnlsSrc)
                    {
                        if (itemSrc.m_strID.Equals(id) == true)
                        {    //Получить результат
                            itemSrcRes = itemSrc;
                            //Прекратить выполнение цикла
                            break;
                        }
                        else
                        {
                            ;
                        }
                    }
                    break;

                default:
                    break;
                }
                //Вернуть результат
                return(itemSrcRes);
            }
예제 #2
0
            /// <summary>
            /// Получить объект 'ITEM_SRC' по индксу панели, типу группы, индексу текущей группы
            /// </summary>
            /// <param name="indxSrc">Индекс панели</param>
            /// <param name="groupType">Тип группы</param>
            /// <param name="indxSel">Индекс выбранной группы</param>
            /// <returns>Объект описания элемента группы</returns>
            private ITEM_SRC getItemSrc(INDEX_SRC indxSrc,int groupType,string idSel)
            {
                ITEM_SRC itemSrcRes = null;

                SRC src = m_arListGroupValues[(int)indxSrc]; //источник/назначение

                //группы источников/сигналов
                switch (groupType)
                {
                case 0:     //GROUP_SOURCES
                    itemSrcRes = src.m_listGroupSrc[GetIDIndex(idSel)];
                    break;

                case 2:     //GROUP_SIGNALS
                    itemSrcRes = src.m_listGroupSgnlsSrc[GetIDIndex(idSel)];
                    break;

                default:
                    break;
                }

                return(itemSrcRes);
            }
예제 #3
0
            /// <summary>
            /// Конструктор - основной
            /// </summary>
            /// <param name="nameFile">Наименование файла конфигурации</param>
            public FileINI(string nameFile)
                : base(nameFile,true)
            {
                //Получить наименования частей секций
                SEC_SRC_TYPES  = GetMainValueOfKey(@"SEC_SRC_TYPES").Split(s_chSecDelimeters[(int)INDEX_DELIMETER.VALUES]);
                KEY_TREE_SRC   = GetMainValueOfKey(@"KEY_TREE_SRC").Split(s_chSecDelimeters[(int)INDEX_DELIMETER.VALUES]);
                KEY_TREE_SGNLS = GetMainValueOfKey(@"KEY_TREE_SGNLS").Split(s_chSecDelimeters[(int)INDEX_DELIMETER.VALUES]);
                //Получить ключ для чтения параметров в секции
                KEY_PARS = GetMainValueOfKey(@"KEY_PARS");
                //Получить период для обновления информации на панели "Работа"
                Logging.Logg().Debug(@"FileINI::ctor () - PANEL_WORK_UPDATE = " + GetMainValueOfKey(@"PANEL_WORK_UPDATE"),Logging.INDEX_MESSAGE.NOT_SET);
                m_iSecPanelWorkUpdate = Int32.Parse(GetMainValueOfKey(@"PANEL_WORK_UPDATE"));
                //if (Int32.TryParse (GetMainValueOfKey(@"PANEL_WORK_UPDATE"), out m_iSecPanelWorkUpdate) == false)
                //    throw new Exception(@"FileINI::FileINI () - Параметр PANEL_WORK_UPDATE не удалось инициализировать ...");
                //else ;

                //Создать все объекты, списки для значений из файла конфигурации
                m_arListGroupValues = new SRC [(int)INDEX_SRC.COUNT_INDEX_SRC];
                for (INDEX_SRC i = INDEX_SRC.SOURCE; i < INDEX_SRC.COUNT_INDEX_SRC; i++)
                {
                    m_arListGroupValues[(int)i] = new SRC();
                }
                foreach (SRC src in m_arListGroupValues)
                {
                    src.m_listGroupSrc      = new List <GROUP_SRC>();
                    src.m_listGroupSgnlsSrc = new List <GROUP_SIGNALS_SRC>();
                }

                if (SEC_SRC_TYPES.Length == (int)INDEX_SRC.COUNT_INDEX_SRC)
                {
                    for (INDEX_SRC i = INDEX_SRC.SOURCE; i < INDEX_SRC.COUNT_INDEX_SRC; i++)
                    {
                        //Получить наименование секции для группы источников (в ~ от 'i')
                        string sec = SEC_SRC_TYPES[(int)i];
                        //Получить словарь параметров для панели 'Источник'
                        Dictionary <string, string> dictSecValues = getSecValues(sec);

                        //Получить группы источников, сигналов (источник)
                        if (!(dictSecValues == null))
                        {
                            //Получить все группы источников
                            fillGroupValues(dictSecValues, sec, KEY_TREE_SRC[(int)INDEX_KEY_SRC.GROUP_SRC], i, typeof(GROUP_SRC));

                            //Получить все группы сигналов
                            fillGroupValues(dictSecValues, sec, KEY_TREE_SGNLS[(int)INDEX_KEY_SRC.GROUP_SRC], i, typeof(GROUP_SIGNALS_SRC));
                        }
                        else
                        {
                            ;
                        }

                        int j         = -1
                        , cntGrpSgnls = -1;
                        foreach (GROUP_SRC grpSrc in m_arListGroupValues[(int)i].m_listGroupSrc)
                        {
                            cntGrpSgnls = grpSrc.m_listGroupSignalsPars.Count;
                            for (j = 0; j < cntGrpSgnls; j++)
                            {
                                if (grpSrc.m_listGroupSignalsPars[j].m_strId.Equals(string.Empty) == false)
                                {
                                    grpSrc.m_listGroupSignalsPars[j].m_strShrName = getItemSrc(i, grpSrc.m_listGroupSignalsPars[j].m_strId).m_strShrName;
                                }
                                else
                                {
                                    ;
                                }
                            }
                        }
                    }
                }
                else
                {
                    ;
                }
            }