/// <summary> /// Инициализировать теги КП и группы переменных на основе конфигурации /// </summary> private void InitKPTags() { int groupCnt = config.VarGroups.Count; List <TagGroup> tagGroups = new List <TagGroup>(groupCnt); List <bool> isBitsList = new List <bool>(); varGroups = new VarGroup[groupCnt]; int signal = 1; for (int i = 0; i < groupCnt; i++) { KpConfig.VarGroup configVarGroup = config.VarGroups[i]; int varCnt = configVarGroup.Variables.Count; TagGroup tagGroup = new TagGroup(configVarGroup.Name); VarGroup varGroup = new VarGroup(configVarGroup.Name, varCnt, signal); for (int j = 0; j < varCnt; j++) { KpConfig.Variable configVar = configVarGroup.Variables[j]; KPTag kpTag = new KPTag(signal++, configVar.Name); tagGroup.KPTags.Add(kpTag); varGroup.Variables[j] = CreateVariable(configVar); isBitsList.Add(configVar.IsBits); } tagGroups.Add(tagGroup); varGroups[i] = varGroup; } InitKPTags(tagGroups); strVals = new string[KPTags.Length]; Array.Clear(strVals, 0, strVals.Length); isBitsArr = isBitsList.ToArray(); }
/// <summary> /// Создать переменную для работы по SNMP на основе переменной конфигурации /// </summary> private Variable CreateVariable(KpConfig.Variable configVar) { try { return(new Variable(new ObjectIdentifier(configVar.OID))); } catch (Exception ex) { throw new Exception(string.Format(Localization.UseRussian ? "Ошибка при создании переменной \"{0}\" с идентификатором {1}: {2}" : "Error creating variable \"{0}\" with identifier {1}: {2}", configVar.Name, configVar.OID, ex.Message)); } }