コード例 #1
0
            public StateManager(string ini) : this()
            {
                string[] arPars = null
                , values = null;

                try {
                    if (ini.Equals(string.Empty) == false)
                    {
                        arPars = ini.Split(FileINI.s_chSecDelimeters[(int)FileINI.INDEX_DELIMETER.PAIR_VAL]);

                        foreach (string key_val in arPars)
                        {
                            for (INDEX_PARAMETER par = (INDEX_PARAMETER.UNKNOWN + 1); par < INDEX_PARAMETER.COUNT; par++)
                            {
                                if (key_val.IndexOf(par.ToString()) == 0)
                                {
                                    values = key_val.Split(FileINI.s_chSecDelimeters[(int)FileINI.INDEX_DELIMETER.VALUE]);

                                    if (values.Length == 2)
                                    {
                                        if (values[1].Equals(string.Empty) == false)
                                        {
                                            switch (par)
                                            {
                                            case INDEX_PARAMETER.WAIT_CONFIRMED:
                                                StateManager.s_tsWaitConfirmed = new HTimeSpan(values[1]);
                                                break;

                                            case INDEX_PARAMETER.TIMER_UPDATE:
                                                StateManager.s_tsTimerFuncUpdate = new HTimeSpan(values[1]);
                                                break;

                                            //case INDEX_PARAMETER.SHEDULE_TURN:
                                            //    break;
                                            case INDEX_PARAMETER.SHEDULE_TIMESTART:
                                                break;

                                            case INDEX_PARAMETER.SHEDULE_TIMESPAN:
                                                m_tsShedule = new HTimeSpan(values[1]).Value;
                                                break;

                                            default:
                                                break;
                                            }
                                        }
                                        else
                                        {
                                            Logging.Logg().Warning(string.Format(@"HHandlerQueue.StateManager::ctor (ключ={0}) - значение=не_установлено", par.ToString())
                                                                   , Logging.INDEX_MESSAGE.NOT_SET);
                                        }
                                    }
                                    else
                                    {
                                        throw new Exception(string.Format(@"HHandlerQueue.StateManager::ctor (ключ={0}) - пара ключ:значение не распознана", par.ToString()));
                                    }

                                    break;
                                }
                                else
                                {
                                    ;
                                }
                            }
                        }

                        // таймер включается только если интервал обновления > 6 сек И время ожидания подтверждения состояния > 46 сек
                        // т.к. иначе проверка работоспособности заблокирует выполнение основного потока
                        m_bTurn = (!((int)StateManager.s_tsTimerFuncUpdate.Value.TotalMilliseconds < MIN_MSEC_TIMERFUNC_UPDATE)) &&
                                  (!((int)StateManager.s_tsWaitConfirmed.Value.TotalMilliseconds < MIN_MSEC_WAIT_CONFIRMED));
                    }
                    else
                    {
                        ;
                    }
                } catch (Exception e) {
                    Logging.Logg().Exception(e, @"HHandlerQueue.StateManager::ctor () - ...", Logging.INDEX_MESSAGE.NOT_SET);
                }
            }
コード例 #2
0
            public StateManager(string ini) : this()
            {
                string[] arPars = null
                , values = null;

                try {
                    if (ini.Equals(string.Empty) == false)
                    {
                        arPars = ini.Split(FileINI.s_chSecDelimeters[(int)FileINI.INDEX_DELIMETER.PAIR_VAL]);

                        foreach (string key_val in arPars)
                        {
                            for (INDEX_PARAMETER par = (INDEX_PARAMETER.UNKNOWN + 1); par < INDEX_PARAMETER.COUNT; par++)
                            {
                                if (key_val.IndexOf(par.ToString()) == 0)
                                {
                                    values = key_val.Split(FileINI.s_chSecDelimeters[(int)FileINI.INDEX_DELIMETER.VALUE]);

                                    if (values.Length == 2)
                                    {
                                        if (values[1].Equals(string.Empty) == false)
                                        {
                                            switch (par)
                                            {
                                            case INDEX_PARAMETER.TIMER_UPDATE:
                                                MSEC_TIMERFUNC_UPDATE = (int)new HTimeSpan(values[1]).Value.TotalSeconds * 1000;
                                                //??? почему период ожидания подтверждения РАВЕН интервалу выполнения целевой функции
                                                MSEC_CONFIRM_WAIT = MSEC_TIMERFUNC_UPDATE;
                                                m_bTurn           = !(MSEC_TIMERFUNC_UPDATE < 6006);
                                                break;

                                            //case INDEX_PARAMETER.SHEDULE_TURN:
                                            //    break;
                                            case INDEX_PARAMETER.SHEDULE_TIMESTART:
                                                break;

                                            case INDEX_PARAMETER.SHEDULE_TIMESPAN:
                                                m_tsShedule = new HTimeSpan(values[1]).Value;
                                                break;

                                            default:
                                                break;
                                            }
                                        }
                                        else
                                        {
                                            Logging.Logg().Warning(string.Format(@"HHandlerQueue.StateManager::ctor (ключ={0}) - значение=не_установлено", par.ToString())
                                                                   , Logging.INDEX_MESSAGE.NOT_SET);
                                        }
                                    }
                                    else
                                    {
                                        throw new Exception(string.Format(@"HHandlerQueue.StateManager::ctor (ключ={0}) - пара ключ:значение не распознана", par.ToString()));
                                    }

                                    break;
                                }
                                else
                                {
                                    ;
                                }
                            }
                        }
                    }
                    else
                    {
                        ;
                    }
                } catch (Exception e) {
                    Logging.Logg().Exception(e, @"HHandlerQueue.StateManager::ctor () - ...", Logging.INDEX_MESSAGE.NOT_SET);
                }
            }