private void panelManagement_OnEvtActionSignalItem(CONN_SETT_TYPE type,ActionSignal action,int indxSignal) { SIGNAL signal; bool bCheckStateReverse = action == ActionSignal.CHECK; switch (action) { case ActionSignal.CHECK: signal = m_HandlerQueue.Signals[type].ElementAt(indxSignal); if (m_dictDataGridViewValues[type].ActionColumn(signal.kks_code ,signal.name_shr) == true) { // запросить значения для заполнения нового столбца //??? оптимизация, сравнение с предыдущим, полученным по 'SELECT', набором значений - должны совпадать => запрос не требуется m_dictDataGridViewValues [type].Fill(m_HandlerQueue.Values(type)); } else { // столбец удален - ничего не делаем ; } break; case ActionSignal.SELECT: //??? оптимизация, поиск в табличном представлении ранее запрошенных/полученных наборов значений //m_HandlerQueue.Push(this, new object[] { new object[] { new object[] { HandlerSignalQueue.EVENT.VALUES, type, indxSignal } } }); DataAskedHost(new object[] { new object[] { HandlerSignalQueue.EVENT.CUR_VALUES,type,indxSignal } }); break; default: break; } }
private int getIdSource(int id_tec,CONN_SETT_TYPE type = CONN_SETT_TYPE.DATA_SOTIASSO) { return(id_tec * 10 + (type == CONN_SETT_TYPE.DATA_AISKUE ? 1 : type == CONN_SETT_TYPE.DATA_SOTIASSO ? 2 : -1)); //??? "-1" - ошибка }
/// <summary> /// Возвратить признак наличия значения в БД (PPBR, ADMIN) по индексу часа /// </summary> /// <param name="type">Тип значения (PPBR, ADMIN)</param> /// <param name="indx">Индекс часа</param> /// <returns>Признак г=наличия значения</returns> protected bool IsHaveDates(CONN_SETT_TYPE type, int indx) { return (m_arHaveDates[(int)type, indx] > 0 ? true : false //m_dictHaveDates[type].Exists(date => { return (date.date_time.Hour - 1) == indx; }); ); }
protected override int StateRequest(int state) { int iRes = 0; ItemQueue itemQueue = Peek; CONN_SETT_TYPE type = CONN_SETT_TYPE.UNKNOWN; switch ((EVENT)state) { case EVENT.LIST_SIGNAL: type = (CONN_SETT_TYPE)itemQueue.Pars[1]; _handlerDb.GetListSignals((int)itemQueue.Pars[0],type); break; case EVENT.CUR_VALUES: case EVENT.CHECK_VALUES: type = (CONN_SETT_TYPE)itemQueue.Pars[0]; _handlerDb.Request(type,Signals[type].ElementAt((int)itemQueue.Pars[1]).kks_code); break; default: Logging.Logg().Error(string.Format(@"HandlerSignalQueue::StateRequest (CONN_SETT_TYPE={0}, event={1}) - необработанное событие...",type,(EVENT)state),Logging.INDEX_MESSAGE.NOT_SET); iRes = -1; break; } return(iRes); }
/// <summary> /// Отправить запрос на получение значений сигналов АИИСКУЭ, СОТИАССО /// </summary> public void Request(CONN_SETT_TYPE type, string kks_code) { clearValues(false); ClearStates(); _key._current_type = type; _key._kks_code = kks_code; getValues(); }
public void GetListSignals(int id_tec, CONN_SETT_TYPE type) { clearValues(true); ClearStates(); _key._current_id_tec = id_tec; _key._current_type = type; getListSignals(); }
protected override int StateResponse(int state,object obj) { int iRes = 0; ItemQueue itemQueue = Peek; CONN_SETT_TYPE type = CONN_SETT_TYPE.UNKNOWN; EventArgsDataHost arg; switch ((EVENT)state) { case EVENT.LIST_SIGNAL: type = (CONN_SETT_TYPE)itemQueue.Pars[1]; if (Signals.ContainsKey(type) == false) { Signals.Add(type,new List <SIGNAL>(obj as IList <SIGNAL>)); } else { Signals[type] = new List <SIGNAL>(obj as IList <SIGNAL>); } arg = new EventArgsDataHost(null,new object[] { (EVENT)state,type }); break; case EVENT.CUR_VALUES: case EVENT.CHECK_VALUES: type = (CONN_SETT_TYPE)itemQueue.Pars[0]; if (_values.ContainsKey(type) == false) { _values.Add(type,VALUES.Copy(obj as VALUES)); } else { _values[type] = VALUES.Copy(obj as VALUES); } // дополнительно передать ккс-код (для поиска столбца) arg = new EventArgsDataHost(null,new object[] { (EVENT)state,type,Signals[type].ElementAt((int)itemQueue.Pars[1]).kks_code }); break; default: arg = new EventArgsDataHost(null,new object[] { }); break; } itemQueue.m_dataHostRecieved.OnEvtDataRecievedHost(arg); return(iRes); }
/// <summary> /// Перегруженный метод, принимающий индекс источника информации /// </summary> /// <param name="indx">Индекс-таг-идентификатор типа источника данных для отображения</param> private void rbtnSourceData_Click(CONN_SETT_TYPE indx) { if (m_arRbtnSourceData [(int)indx].Checked == false) { m_markSourceData.UnMarked(); m_markSourceData.Marked((int)indx); rbtnSourceData_Click(); } else { ; } }
private void clbSOTIASSOSignal_OnSelectedIndexChanged(object sender, EventArgs e) { CONN_SETT_TYPE type = CONN_SETT_TYPE.DATA_SOTIASSO; if (!(m_dictPreviousSignalItemSelected[type] == (sender as CheckedListBox).SelectedIndex)) { EvtActionSignalItem?.Invoke(type, ActionSignal.SELECT, (sender as CheckedListBox).SelectedIndex); m_dictPreviousSignalItemSelected[type] = (sender as CheckedListBox).SelectedIndex; } else { ; } }
/// <summary> /// Настроить/применить праметры соединения с БД_конфигурации /// </summary> /// <param name="type">Индекс параметров соединения с БД</param> /// <returns>Результат выполнения функции</returns> private int connectionSettings(CONN_SETT_TYPE type) { int iRes = -1 , idListener = -1; DialogResult result; //Отобразить окно с параметрами соединения result = s_listFormConnectionSettings[(int)type].ShowDialog(this); if (result == DialogResult.Yes) { //Очистить/выгрузить список плюгИнов, пункты меню stop(); iRes = s_listFormConnectionSettings[(int)type].Ready; string msg = string.Empty; if (iRes == 0) { // персонализация в новой БД - аналог в конструкторе формы idListener = DbSources.Sources().Register(s_listFormConnectionSettings[(int)type].getConnSett(), false, type.ToString()); initProfiles(idListener); // закрыть соединение с новой БД DbSources.Sources().UnRegister(idListener); iRes = Initialize(out msg); } else { msg = @"Параметры соединения с БД конфигурации не корректны"; } if (!(iRes == 0)) { //@"Ошибка инициализации пользовательских компонентов формы" Abort(msg, false); } else { ; } } else { ; } return(iRes); }
private void draw(CONN_SETT_TYPE type) { Color colorChart = Color.Empty ,colorPCurve = Color.Empty; if (m_HandlerQueue.Values(type).Count() > 0) { // отобразить m_dictZGraphValues[type].Draw(m_HandlerQueue.Values(type) ,type == CONN_SETT_TYPE.DATA_AISKUE ? @"АИИСКУЭ" : type == CONN_SETT_TYPE.DATA_SOTIASSO ? @"СОТИАССО" : @"Неизвестный тип",textGraphCurDateTime); } else { Logging.Logg().Error(string.Format(@"PanelSOTIASSODay::draw (type={0}) - нет ни одного значения за [{1}]...",type,m_HandlerQueue.UserDate),Logging.INDEX_MESSAGE.NOT_SET); } }
private int impCSVValuesResponse() { int iRes = -1; int indxFieldtypeValues = 2; List <string []> listFields = new List <string[]> (); listFields.Add(new string [] { @"GTP_ID", @"SESSION_INTERVAL", @"REC", @"IS_PER", @"DIVIAT", @"FC" }); listFields.Add(new string[] { @"GTP_ID", @"SESSION_INTERVAL", @"TotalBR", @"PminBR", @"PmaxBR" }); //Определить тип загружаемых значений // по наличию в загруженной таблице поля с индексом [1] CONN_SETT_TYPE typeValues = CONN_SETT_TYPE.COUNT_CONN_SETT_TYPE; for (typeValues = CONN_SETT_TYPE.ADMIN; typeValues < (CONN_SETT_TYPE.PBR + 1); typeValues++) { if (m_tableValuesResponse.Columns.Contains(listFields[(int)typeValues][indxFieldtypeValues]) == true) { break; } else { ; } } if (typeValues < (CONN_SETT_TYPE.PBR + 1)) { iRes = CheckNameFieldsOfTable(m_tableValuesResponse, listFields[(int)typeValues]) == true ? 0 : -1; } else { ; } if (iRes == 0) { //'indxTECComponents' необходимо сохранить ??? - сохраняется в потоке !!! new Thread(new ParameterizedThreadStart(threadCSVValues)).Start(typeValues); } else { Logging.Logg().Error(@"AdminTS_KomDisp::ImpCSVValuesResponse () - входная таблица не соответствует требованиям...", Logging.INDEX_MESSAGE.NOT_SET); } return(iRes); }
public void InitializeSignalList(CONN_SETT_TYPE key, IEnumerable <string> listSignalNameShr) { KEY_CONTROLS keyCtrl = KEY_CONTROLS.UNKNOWN; CheckedListBox clb; switch (key) { case CONN_SETT_TYPE.DATA_AISKUE: keyCtrl = KEY_CONTROLS.CLB_AIISKUE_SIGNAL; break; case CONN_SETT_TYPE.DATA_SOTIASSO: keyCtrl = KEY_CONTROLS.CLB_SOTIASSO_SIGNAL; break; default: break; } if (!(keyCtrl == KEY_CONTROLS.UNKNOWN)) { clb = (findControl(keyCtrl.ToString())) as CheckedListBox; // отменить регистрацию обработчика enableSelectedIndexchanged(clb, key, false); clb.Items.AddRange(listSignalNameShr.ToArray()); // восстановить регистрацию обработчика enableSelectedIndexchanged(clb, key, true); if (clb.Items.Count > 0) { clb.SelectedIndex = 0; } else { ; } } else { Logging.Logg().Error(string.Format(@"PanelSOTIASSODay.PanelManagement::InitializeSignalList (key={0}) - ", key.ToString()) , Logging.INDEX_MESSAGE.NOT_SET); } }
/// <summary> /// Настроить/применить праметры соединения с БД_конфигурации /// </summary> /// <param name="type">Индекс параметров соединения с БД</param> /// <returns>Результат выполнения функции</returns> private int connectionSettings(CONN_SETT_TYPE type) { int iRes = -1; DialogResult result; //Отобразить окно с параметрами соединения result = s_listFormConnectionSettings[(int)type].ShowDialog(this); if (result == DialogResult.Yes) { // удалить все вкладки, остановить таймер (если есть) Stop(); //Удалить все пункты меню removePluginMenuItem(); //Очистить/выгрузить список плюгИнов iRes = s_listFormConnectionSettings[(int)type].Ready; string msg = string.Empty; if (iRes == 0) { iRes = Initialize(out msg); } else { msg = @"Параметры соединения с БД конфигурации не корректны"; } if (!(iRes == 0)) { //@"Ошибка инициализации пользовательских компонентов формы" Abort(msg, false); } else { ; } } else { ; } return(iRes); }
protected virtual void clearDates(CONN_SETT_TYPE type) { int cntHours = -1 , length = -1 ; cntHours = m_curDate.Date.Equals(HAdmin.SeasonDateTime.Date) == false ? 24 : 25; length = m_arHaveDates.Length / m_arHaveDates.Rank //m_dictHaveDates[type].Count ; if (!(length == cntHours)) { if (length < cntHours) { m_arHaveDates = new int[2, cntHours]; } //while (m_dictHaveDates[type].Count < cntHours) // m_dictHaveDates[type].Add(new HAVE_DATES()); else if (length > cntHours) { m_arHaveDates = new int[2, cntHours]; } //while (m_dictHaveDates[type].Count > cntHours) // m_dictHaveDates[type].RemoveAt(0); else { // недостижимый код ; } } else { ; } for (int i = 0; i < cntHours; i++) { m_arHaveDates[(int)type, i] = 0; } //m_dictHaveDates[type].ForEach(date => date.Reset()); }
private int impCSVValuesResponse() { int iRes = -1; //??? проверяется 3-е(2-ой индекс) поле, т.к. 1-ые 2 поля совпадают ("GTP_ID", "SESSION_INTERVAL") int indxFieldtypeValues = 2; //Определить тип загружаемых значений // по наличию в загруженной таблице поля с индексом <indxFieldtypeValues> CONN_SETT_TYPE typeValues = CONN_SETT_TYPE.COUNT_CONN_SETT_TYPE; for (typeValues = CONN_SETT_TYPE.ADMIN; typeValues < (CONN_SETT_TYPE.PBR + 1); typeValues++) { if (m_tableValuesResponse.Columns.Contains(_listCSVValuesFields [(int)typeValues][indxFieldtypeValues]) == true) { break; } else { ; } } // в ~ от типа значений (ADMIN | PBR) проверить наличие всех необходимых столбцов if (typeValues < (CONN_SETT_TYPE.PBR + 1)) { iRes = CheckNameFieldsOfTable(m_tableValuesResponse, _listCSVValuesFields [(int)typeValues]) == true ? 0 : -1; } else { ; } if (iRes == 0) { //'indxTECComponents' необходимо сохранить ??? - сохраняется в потоке !!! new Thread(new ParameterizedThreadStart(threadCSVValues)).Start(typeValues); } else { Logging.Logg().Error(@"AdminTS_KomDisp::ImpCSVValuesResponse () - входная таблица не соответствует требованиям...", Logging.INDEX_MESSAGE.NOT_SET); } return(iRes); }
protected override int StateRequest(int state) { int iRes = 0; ItemQueue itemQueue = Peek; CONN_SETT_TYPE type = CONN_SETT_TYPE.UNKNOWN; switch ((EVENT)state) { case EVENT.LIST_SIGNAL: type = (CONN_SETT_TYPE)itemQueue.Pars[1]; _handlerDb.GetListSignals((int)itemQueue.Pars[0],type); break; case EVENT.CUR_VALUES: case EVENT.CHECK_VALUES: type = (CONN_SETT_TYPE)itemQueue.Pars[0]; iRes = (Signals.ContainsKey(type) == false) ? -4 : !((int)itemQueue.Pars [1] < Signals [type].Count) ? -3 : (string.IsNullOrEmpty(Signals [type].ElementAt((int)itemQueue.Pars [1]).kks_code) == true) ? -2 : 0; if (!(iRes < 0)) { _handlerDb.Request(type,Signals [type].ElementAt((int)itemQueue.Pars [1]).kks_code); } else { Logging.Logg().Error($"HandlerSignalQueue::StateRequest (CONN_SETT_TYPE={type}, event={(EVENT)state}) - запрос не отправлен..." ,Logging.INDEX_MESSAGE.NOT_SET); } break; default: Logging.Logg().Error(string.Format(@"HandlerSignalQueue::StateRequest (CONN_SETT_TYPE={0}, event={1}) - необработанное событие...",type,(EVENT)state) ,Logging.INDEX_MESSAGE.NOT_SET); iRes = -1; break; } return(iRes); }
private int connectionSettings(CONN_SETT_TYPE type) { int iRes = -1; DialogResult result; result = s_listFormConnectionSettings[(int)type].ShowDialog(this); if (result == DialogResult.Yes) { //Остановить все вкладки //StopTabPages (); //Остановить таймер (если есть) Stop(); iRes = s_listFormConnectionSettings[(int)type].Ready; string msg = string.Empty; if (iRes == 0) { iRes = Initialize(out msg); } else { msg = @"Параметры соединения с БД конфигурации не корректны"; } if (!(iRes == 0)) { //@"Ошибка инициализации пользовательских компонентов формы" Abort(msg, false); } else { ; } } else { ; } return(iRes); }
protected virtual void ClearDates(CONN_SETT_TYPE type) { int i = 1 , cntHours = 24 , length = m_arHaveDates.Length / m_arHaveDates.Rank; if (m_curDate.Date.Equals(HAdmin.SeasonDateTime.Date) == false) { if (length > 24) { m_arHaveDates = null; } else { ; } } else if (length < 25) { m_arHaveDates = null; cntHours = 25; } else { ; } if (m_arHaveDates == null) { m_arHaveDates = new int[(int)CONN_SETT_TYPE.PBR + 1, cntHours]; } else { ; } for (i = 0; i < cntHours; i++) { m_arHaveDates[(int)type, i] = 0; //false; } }
/// <summary> /// Открытый пользовательский конструктор FormGraphicsSettings инициализирует поля m_formMain, delegateUpdateActiveGui, delegateHideGraphicsSettings /// </summary> /// <param name="form">Родительская форма - главное окно приложения</param> /// <param name="fUpdate">Метод для применения изменений</param> /// <param name="fHide">Метод снятия с отображения диалогового окна</param> /// <param name="bAllowedChangeShema">Признак(настраиваемый из БД) разрешения изменять цветовую схему</param> public FormGraphicsSettings(DelegateIntFunc fUpdate, DelegateFunc fHide, bool bAllowedChangeShema) { // инициализация полей заданными пользователем значениями delegateUpdateActiveGui = fUpdate; delegateHideGraphicsSettings = fHide; _allowedChangeShema = bAllowedChangeShema; //масштабирование выключено по умолчанию scale = false; // полю m_markSourceData присваиваем ссылку на экземпляр класса HMark, вызываем конструктор HMark с одним параметром, передаем 0 m_markSourceData = new HMark(0); InitializeComponent(); bool bGroupBoxSourceData = false; //переменной bGroupBoxSourceData присваиваем false CONN_SETT_TYPE cstGroupBoxSourceData = CONN_SETT_TYPE.AISKUE_3_MIN; //переменной cstGroupBoxSourceData присваиваем константу=1 (AISKUE_3_MIN) //Проверка условия прав доступа к возможности смены источника данных if (HStatisticUsers.IsAllowed((int)HStatisticUsers.ID_ALLOWED.SOURCEDATA_CHANGED) == true) //if (m_formMain.m_users.IsAllowed(HStatisticUsers.ID_ALLOWED.SOURCEDATA_CHANGED) == true) //if ((HStatisticUsers.RoleIsAdmin == true) || (HStatisticUsers.RoleIsKomDisp == true)) { bGroupBoxSourceData = true; //переменной bGroupBoxSourceData присваиваем true (групповой источник данных) cstGroupBoxSourceData = CONN_SETT_TYPE.COSTUMIZE; //переменной cstGroupBoxSourceData присваиваем константу=4 (по умолчанию установлен COSTUMIZE) //кнопки АИСКУЭ+СОТИАССО и СОТИАССО(3 мин) становятся активными (да вроде все активные..?) m_arRbtnSourceData [(int)CONN_SETT_TYPE.AISKUE_PLUS_SOTIASSO].Enabled = HStatisticUsers.IsAllowed((int)HStatisticUsers.ID_ALLOWED.SOURCEDATA_ASKUE_PLUS_SOTIASSO); m_arRbtnSourceData [(int)CONN_SETT_TYPE.SOTIASSO_3_MIN].Enabled = HStatisticUsers.IsAllowed((int)HStatisticUsers.ID_ALLOWED.SOURCEDATA_SOTIASSO_3_MIN); } else { ; } this.gbxSourceData.Enabled = bGroupBoxSourceData; //?? m_markSourceData.Marked((int)cstGroupBoxSourceData); checkedSourceData(); // вызов метода проверки источника данных m_graphTypes = GraphTypes.Bar; // тип графика-Гистограмма по умолчанию }
public void ClearSignalList(CONN_SETT_TYPE key) { KEY_CONTROLS keyCtrl = KEY_CONTROLS.UNKNOWN; CheckedListBox clb; switch (key) { case CONN_SETT_TYPE.DATA_AISKUE: keyCtrl = KEY_CONTROLS.CLB_AIISKUE_SIGNAL; break; case CONN_SETT_TYPE.DATA_SOTIASSO: keyCtrl = KEY_CONTROLS.CLB_SOTIASSO_SIGNAL; break; default: break; } if (!(keyCtrl == KEY_CONTROLS.UNKNOWN)) { clb = (findControl(keyCtrl.ToString())) as CheckedListBox; // отменить регистрацию обработчика enableSelectedIndexchanged(clb, key, false); m_dictPreviousSignalItemSelected[key] = -1; clb.Items.Clear(); // восстановить регистрацию обработчика enableSelectedIndexchanged(clb, key, true); } else { Logging.Logg().Error(string.Format(@"PanelSOTIASSODay.PanelManagement::InitializeSignalList (key={0}) - ", key.ToString()) , Logging.INDEX_MESSAGE.NOT_SET); } }
private void getColorZEDGraph(CONN_SETT_TYPE type,out Color colorChart,out Color colValue) { FormGraphicsSettings.INDEX_COLOR indxBackGround = FormGraphicsSettings.INDEX_COLOR.COUNT_INDEX_COLOR ,indxChart = FormGraphicsSettings.INDEX_COLOR.COUNT_INDEX_COLOR; //Значения по умолчанию switch (type) { default: case CONN_SETT_TYPE.DATA_AISKUE: indxBackGround = FormGraphicsSettings.INDEX_COLOR.BG_ASKUE; indxChart = FormGraphicsSettings.INDEX_COLOR.ASKUE; break; case CONN_SETT_TYPE.DATA_SOTIASSO: indxBackGround = FormGraphicsSettings.INDEX_COLOR.BG_SOTIASSO; indxChart = FormGraphicsSettings.INDEX_COLOR.SOTIASSO; break; } colorChart = FormMain.formGraphicsSettings.COLOR(indxBackGround); colValue = FormMain.formGraphicsSettings.COLOR(indxChart); }
public FormGraphicsSettings(FormMain fm, DelegateIntFunc delUp, DelegateFunc Hide) { InitializeComponent(); delegateUpdateActiveGui = delUp; delegateHideGraphicsSettings = Hide; m_formMain = fm; scale = false; m_markSourceData = new HMark(0); bool bGroupBoxSourceData = false; CONN_SETT_TYPE cstGroupBoxSourceData = CONN_SETT_TYPE.AISKUE_3_MIN; //Проверка условия прав доступа к возможности смены источника данных if (HStatisticUsers.IsAllowed((int)HStatisticUsers.ID_ALLOWED.SOURCEDATA_CHANGED) == true) //if (m_formMain.m_users.IsAllowed(HStatisticUsers.ID_ALLOWED.SOURCEDATA_CHANGED) == true) //if ((HStatisticUsers.RoleIsAdmin == true) || (HStatisticUsers.RoleIsKomDisp == true)) { bGroupBoxSourceData = true; cstGroupBoxSourceData = CONN_SETT_TYPE.COSTUMIZE; m_arRadioButtonSourceData[(int)CONN_SETT_TYPE.AISKUE_PLUS_SOTIASSO].Enabled = HStatisticUsers.IsAllowed((int)HStatisticUsers.ID_ALLOWED.SOURCEDATA_ASKUE_PLUS_SOTIASSO); m_arRadioButtonSourceData[(int)CONN_SETT_TYPE.SOTIASSO_3_MIN].Enabled = HStatisticUsers.IsAllowed((int)HStatisticUsers.ID_ALLOWED.SOURCEDATA_SOTIASSO_3_MIN); } else { ; } this.groupBoxSourceData.Enabled = bGroupBoxSourceData; m_markSourceData.Marked((int)cstGroupBoxSourceData); checkedSourceData(); m_graphTypes = GraphTypes.Bar; //Гистограмма }
private void enableSelectedIndexchanged(CheckedListBox clb, CONN_SETT_TYPE key, bool bEnabled) { if (bEnabled == true) { if (key == CONN_SETT_TYPE.DATA_AISKUE) { clb.SelectedIndexChanged += /*new EventHandler(*/ clbAIISKUESignal_OnSelectedIndexChanged /*)*/; } else if (key == CONN_SETT_TYPE.DATA_SOTIASSO) { clb.SelectedIndexChanged += /*new EventHandler(*/ clbSOTIASSOSignal_OnSelectedIndexChanged /*)*/; } else { ; } } else if (bEnabled == false) { if (key == CONN_SETT_TYPE.DATA_AISKUE) { clb.SelectedIndexChanged -= /*new EventHandler(*/ clbAIISKUESignal_OnSelectedIndexChanged /*)*/; } else if (key == CONN_SETT_TYPE.DATA_SOTIASSO) { clb.SelectedIndexChanged -= /*new EventHandler(*/ clbSOTIASSOSignal_OnSelectedIndexChanged /*)*/; } else { ; } } else { ; } }
public override void StartDbInterfaces() { if (!(m_list_tec == null)) { bool bInitSensorsStrings = (m_markQueries.IsMarked((int)CONN_SETT_TYPE.DATA_AISKUE) == true) || (m_markQueries.IsMarked((int)CONN_SETT_TYPE.DATA_SOTIASSO) == true) || (m_markQueries.IsMarked((int)CONN_SETT_TYPE.MTERM) == true); foreach (TEC t in m_list_tec) { if (!(t.connSetts == null)) { CONN_SETT_TYPE i = CONN_SETT_TYPE.COUNT_CONN_SETT_TYPE; if (m_dictIdListeners.ContainsKey(t.m_id) == false) { m_dictIdListeners.Add(t.m_id, new int[(int)CONN_SETT_TYPE.COUNT_CONN_SETT_TYPE]); for (i = CONN_SETT_TYPE.ADMIN; i < CONN_SETT_TYPE.COUNT_CONN_SETT_TYPE; i++) { m_dictIdListeners[t.m_id][(int)i] = -1; } } else { ; } for (i = CONN_SETT_TYPE.ADMIN; i < CONN_SETT_TYPE.COUNT_CONN_SETT_TYPE; i++) { if ((!(t.connSetts[(int)i] == null)) && (m_markQueries.IsMarked((int)i) == true)) { if (m_dictIdListeners[t.m_id][(int)i] < 0) { ; } else { DbSources.Sources().UnRegister(m_dictIdListeners[t.m_id][(int)i]); } register(t.m_id, t.connSetts[(int)i], t.name_shr, i); } else { ; } } if ((bInitSensorsStrings == true) && (t.m_bSensorsStrings == false)) { t.InitSensorsTEC(); } else { ; } } else { //Вообще нельзя что-либо инициализировать Logging.Logg().Error(@"HAdmin::StartDbInterfaces () - connSetts == null ...", Logging.INDEX_MESSAGE.NOT_SET); } } //foreach... } else { //Вообще нельзя что-либо инициализировать Logging.Logg().Error(@"HAdmin::StartDbInterfaces () - m_list_tec == null ...", Logging.INDEX_MESSAGE.NOT_SET); } }
private void admin_onEventUnitTestSetValuesRequest(TEC t, TECComponent comp, DateTime date, CONN_SETT_TYPE type, string[] queries, IEnumerable <int> listIdRec) { _eventUnitTestNextIndexSetValuesRequest?.Invoke(comboBoxTecComponent.SelectedIndex + 1 < comboBoxTecComponent.Items.Count ? comboBoxTecComponent.SelectedIndex + 1 : -1, t, comp, date, type, listIdRec, queries); }
private void threadCSVValues(object type) { Errors errRes = Errors.NoError; Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = ProgramBase.ss_MainCultureInfo; //new System.Globalization.CultureInfo(@"en-US") //Определить тип загружаемых значений CONN_SETT_TYPE typeValues = (CONN_SETT_TYPE)type; int indxEv = -1 , prevIndxTECComponents = indxTECComponents; string strPBRNumber = string.Empty; // ...только для ПБР if (typeValues == CONN_SETT_TYPE.PBR) {//Только для ПБР //Противоположные операции при завершении потока 'threadPPBRCSVValues' //Разрешить запись ПБР-значений if (m_markSavedValues.IsMarked((int)INDEX_MARK_PPBRVALUES.PBR_ENABLED) == true) { m_markSavedValues.Marked((int)INDEX_MARK_PPBRVALUES.PBR_SAVED); } else { ; } //Запретить запись Админ-значений if (m_markSavedValues.IsMarked((int)INDEX_MARK_PPBRVALUES.ADMIN_ENABLED) == true) { m_markSavedValues.UnMarked((int)INDEX_MARK_PPBRVALUES.ADMIN_SAVED); } else { ; } strPBRNumber = getNamePBRNumber((int)GetPropertiesOfNameFilePPBRCSVValues()[1] - 1); } else { ; } //Снять все признаки причин прекращения выполнения обработки событий for (INDEX_WAITHANDLE_REASON i = INDEX_WAITHANDLE_REASON.ERROR; i < (INDEX_WAITHANDLE_REASON.ERROR + 1); i++) { ((ManualResetEvent)m_waitHandleState[(int)i]).Reset(); } foreach (TECComponent comp in allTECComponents) { if (comp.IsGTP == true) //Является ГТП { indxEv = WaitHandle.WaitAny(m_waitHandleState); if (indxEv == 0) { switch (typeValues) { case CONN_SETT_TYPE.ADMIN: errRes = saveCSVValues(allTECComponents.IndexOf(comp), typeValues); break; case CONN_SETT_TYPE.PBR: errRes = saveCSVValues(allTECComponents.IndexOf(comp), strPBRNumber); break; default: break; } //if (! (errRes == Errors.NoError)) // ; //Ошибка ??? //else // ; } else { //Ошибка ??? //break; //completeHandleStates(); ; } } else { ; } } //Очистить таблицу, полученную из CSV-файла m_tableValuesResponse.Clear(); m_tableValuesResponse = null; if (typeValues == CONN_SETT_TYPE.PBR) {//Только для ПБР //Противоположные операции в 'ImpPPBRCSVValuesRequest' //Запретить запись ПБР-значений // , запрет устанавливается автоматически //Разрешить запись Админ-значений if (m_markSavedValues.IsMarked((int)INDEX_MARK_PPBRVALUES.ADMIN_ENABLED) == true) { m_markSavedValues.Marked((int)INDEX_MARK_PPBRVALUES.ADMIN_SAVED); } else { ; } } else { ; } //Обновить значения на вкладке GetRDGValues(/*m_typeFields,*/ prevIndxTECComponents); }
private Errors saveCSVValues(int indx, object pbr_number) { Errors errRes = Errors.NoSet; RDGStruct[] curRDGValues = new RDGStruct[m_curRDGValues.Length]; int hour = -1; double val = -1F; string name_future = string.Empty; CONN_SETT_TYPE typeValues = CONN_SETT_TYPE.COUNT_CONN_SETT_TYPE; if (pbr_number is string) { typeValues = CONN_SETT_TYPE.PBR; } else if (pbr_number is CONN_SETT_TYPE) { typeValues = (CONN_SETT_TYPE)pbr_number; //ADMIN } else { ; } if ((typeValues == CONN_SETT_TYPE.PBR) || (typeValues == CONN_SETT_TYPE.ADMIN)) { List <DataRow> rowsTECComponent = null; //Получить значения для сохранения name_future = allTECComponents[indx].name_future; rowsTECComponent = new List <DataRow>(m_tableValuesResponse.Select(@"GTP_ID='" + name_future + @"'")); //Вариант №2 - тестовый //foreach (DataRow r in m_tableValuesResponse.Rows) // if (name_future.Equals(r["GTP_ID"]) == true) // rowsTECComponent.Add(r); // else // ; //Проверить наличие записей для ГТП if (rowsTECComponent.Count > 0) { // добавление недостающих строк путем копирования крайней if (rowsTECComponent.Count < 24) { // фрагмент кода выполняется при загрузке //while (rowsTECComponent.Count < 24) { // rowsTECComponent.Add(rowsTECComponent[rowsTECComponent.Count - 1]); // if (m_tableValuesResponse.Columns.Contains(@"SESSION_INTERVAL") == true) // rowsTECComponent[rowsTECComponent.Count - 1][@"SESSION_INTERVAL"] = rowsTECComponent.Count - 1; // else // ; //} } else { Logging.Logg().Error(string.Format(@"AdminTS_KomDisp::saveCSVValues () - для ГТП(ИД={0}) количество записей={1} ..." , name_future, rowsTECComponent.Count) , Logging.INDEX_MESSAGE.NOT_SET); } foreach (DataRow r in rowsTECComponent) { hour = int.Parse(r[@"SESSION_INTERVAL"].ToString()); try { switch (typeValues) { case CONN_SETT_TYPE.PBR: HMath.doubleParse(r[@"TotalBR"].ToString(), out curRDGValues[hour].pbr); HMath.doubleParse(r[@"PminBR"].ToString(), out curRDGValues[hour].pmin); HMath.doubleParse(r[@"PmaxBR"].ToString(), out curRDGValues[hour].pmax); curRDGValues[hour].pbr_number = pbr_number as string; ////Отладка //Console.WriteLine(@"GTP_ID=" + allTECComponents[indx].name_future + @"(" + hour + @") TotalBR=" + curRDGValues[hour].pbr + @"; PBRNumber=" + curRDGValues[hour].pbr_number); break; case CONN_SETT_TYPE.ADMIN: HMath.doubleParse(r[@"REC"].ToString(), out curRDGValues[hour].recomendation); curRDGValues[hour].deviationPercent = Int16.Parse(r[@"IS_PER"].ToString()) == 1; HMath.doubleParse(r[@"DIVIAT"].ToString(), out curRDGValues[hour].deviation); curRDGValues[hour].fc = Int16.Parse(r[@"FC"].ToString()) == 1; break; default: break; } } catch (Exception e) { Logging.Logg().Exception(e , @"AdminTS_KomDisp::saveCSVValues () - GTP_ID=" + allTECComponents[indx].name_future + @"(" + hour + @")" , Logging.INDEX_MESSAGE.NOT_SET); errRes = Errors.ParseError; } if (errRes == Errors.ParseError) { break; } else { ; } } if (errRes == Errors.NoSet) { //Очистить тек./массив с данными ClearValues(); //Копировать полученные значения в "текущий массив" curRDGValues.CopyTo(m_curRDGValues, 0); indxTECComponents = indx; errRes = SaveChanges() //Errors.NoSet //Errors.NoError ; } else { ; //errRes = Errors.ParseError; } } else { errRes = Errors.ParseError; } if (errRes == Errors.ParseError) { //Пропустить запись ГТП, разрешить переход к следующей //Псевдо-закончена обработка всех событий completeHandleStates(INDEX_WAITHANDLE_REASON.SUCCESS); } else { ; } } else { ; } return(errRes); }
public IEnumerable <VALUE> Values(CONN_SETT_TYPE type) { return(_values.ContainsKey(type) == true ? _values [type].m_valuesHours : new List <VALUE>()); }
private void register(int id, ConnectionSettings connSett, string name, CONN_SETT_TYPE type) { register(id, (int)type, connSett, name); }