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