示例#1
0
        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;
            }
        }
示例#2
0
 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" - ошибка
 }
示例#3
0
 /// <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; });
         );
 }
示例#4
0
            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);
            }
示例#5
0
                /// <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();
                }
示例#6
0
                public void GetListSignals(int id_tec, CONN_SETT_TYPE type)
                {
                    clearValues(true);
                    ClearStates();

                    _key._current_id_tec = id_tec;
                    _key._current_type = type;

                    getListSignals();
                }
示例#7
0
            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);
            }
示例#8
0
        /// <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
            {
                ;
            }
        }
示例#9
0
            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
                {
                    ;
                }
            }
示例#10
0
        /// <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);
        }
示例#11
0
        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);
            }
        }
示例#12
0
        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);
        }
示例#13
0
            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);
                }
            }
示例#14
0
        /// <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);
        }
示例#15
0
        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());
        }
示例#16
0
        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);
        }
示例#17
0
            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);
            }
示例#18
0
        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);
        }
示例#19
0
        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;
            }
        }
示例#20
0
        /// <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; // тип графика-Гистограмма по умолчанию
        }
示例#21
0
            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);
                }
            }
示例#22
0
        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);
        }
示例#23
0
        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; //Гистограмма
        }
示例#24
0
 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
     {
         ;
     }
 }
示例#25
0
        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);
            }
        }
示例#26
0
 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);
 }
示例#27
0
        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);
        }
示例#28
0
        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);
        }
示例#29
0
 public IEnumerable <VALUE> Values(CONN_SETT_TYPE type)
 {
     return(_values.ContainsKey(type) == true ? _values [type].m_valuesHours : new List <VALUE>());
 }
示例#30
0
 private void register(int id, ConnectionSettings connSett, string name, CONN_SETT_TYPE type)
 {
     register(id, (int)type, connSett, name);
 }