/// <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); }
/// <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); }
/// <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 { ; } }