/// <summary> /// Сохранить конфигурацию в файл /// </summary> public bool SaveConfiguration() { // Вывод на экран количество элементов каждой коллекции bool res = false; if (!String.IsNullOrEmpty(_cfgFileName)) { Console.WriteLine("MillConfigUnit = 1"); Console.WriteLine("SubscriptionsUnits = 1"); Console.WriteLine($"ListDataBlockUnits = {ListDataBlockUnits.GetItemsCount()}"); Console.WriteLine($"ListSignalUnits = {ListSignalUnits.GetItemsCount()}"); Console.WriteLine($"ListThreadUnits = {ListThreadUnits.GetItemsCount()}"); Console.WriteLine($"ListRollgangUnits = {ListRollgangUnits.GetItemsCount()}"); Console.WriteLine($"ListLabelUnits = {ListLabelUnits.GetItemsCount()}"); Console.WriteLine($"ListSensorUnits = {ListSensorUnits.GetItemsCount()}"); Console.WriteLine($"ListStopperUnits = {ListStopperUnits.GetItemsCount()}"); Console.WriteLine($"ListLinearDisplacementUnits = {ListLinearDisplacementUnits.GetItemsCount()}"); Console.WriteLine($"ListDeleterUnits = {ListDeleterUnits.GetItemsCount()}"); Console.WriteLine($"ListCagesUnits = {ListCagesUnits.GetItemsCount()}"); Console.WriteLine($"ListIngotParametersUnits = {ListIngotParametersUnits.GetItemsCount()}"); Console.WriteLine($"ListConnectionStringUnits = {ListConnectionStringUnits.GetItemsCount()}"); Console.WriteLine($"ListAggregateUnits = {ListAggregateUnits.GetItemsCount()}"); Console.WriteLine($"ListTechnicalUnits = {ListTechnicalUnits.GetItemsCount()}"); res = true; } return(res); }
/// <summary> /// Получить список сигналов из конфигурационного файла /// </summary> /// <returns>Список номеров сигналов</returns> public List <ushort> GetSignals() { List <ushort> res = new List <ushort>(); for (int i = 0; i < ListSignalUnits.GetItemsCount(); i++) { SignalUnit signal = ListSignalUnits[i]; res.Add((ushort)signal.Uid); } return(res); }
/// <summary> /// Получить список сигналов из конфигурационного файла с описанием /// </summary> /// <returns>Список сигналов</returns> public Dictionary <ushort, string> GetSignalsList() { Dictionary <ushort, string> res = new Dictionary <ushort, string>(); for (int i = 0; i < ListSignalUnits.GetItemsCount(); i++) { SignalUnit signal = ListSignalUnits[i]; res.Add((ushort)signal.Uid, signal.Name); } return(res); }
/// <summary> /// Удалить сигнал по его идентификатору /// </summary> /// <param name="uid">Идентификатор сигнала</param> /// <returns>Результат операции удаления</returns> public bool DeleteSignal(int uid) { bool result = false; for (int i = 0; i < ListSignalUnits.GetItemsCount(); i++) { if (ListSignalUnits[i].Uid == uid) { result = ListSignalUnits.RemoveItem(i); } } return(result); }
/// <summary> /// Удалить блок данных по его идентификатору /// </summary> /// <param name="uid">Идентификатор блока данных</param> /// <param name="cascade">Удаление также всех сигналов, привязанных к блоку данных</param> /// <returns>Результат выполнения операции удаления (-1 - не найден блок данных, 0 - успех, иначе - количество сигналов, привязанных к блоку данных)</returns> public int DeleteDataBlock(int uid, bool cascade = false) { int result = -1; DataBlockUnit db = FindDataBlock(uid); if (db == null) { return(result); // Если блок данных не найдем, возвращаем статус -1 } // Найдем сигналы, привязанные к блоку данных result = 0; for (int i = 0; i < ListSignalUnits.GetItemsCount(); i++) { if (ListSignalUnits[i].DataBlockUid == uid) { if (cascade) { // Удаляем все сигналы, привязанные к этому блоку данных ListSignalUnits.RemoveItem(i); } else { result++; } } } if (result == 0) { for (int i = 0; i < ListDataBlockUnits.GetItemsCount(); i++) { if (ListDataBlockUnits[i].Uid == uid) { ListDataBlockUnits.RemoveItem(i); break; } } } return(result); }
/// <summary> /// Получить количество всех найденных элементов конфигурации /// </summary> /// <returns>Количество найденных элементов</returns> public int GetElementsCount() { int res = 0; res += string.IsNullOrEmpty(MillConfigUnit.Name) ? 0 : 1; res += SubscriptionsUnit.Threads > 0 ? 1 : 0; res += ListDataBlockUnits.GetItemsCount(); res += ListSignalUnits.GetItemsCount(); res += ListThreadUnits.GetItemsCount(); res += ListRollgangUnits.GetItemsCount(); res += ListLabelUnits.GetItemsCount(); res += ListSensorUnits.GetItemsCount(); res += ListStopperUnits.GetItemsCount(); res += ListLinearDisplacementUnits.GetItemsCount(); res += ListDeleterUnits.GetItemsCount(); res += ListCagesUnits.GetItemsCount(); res += ListIngotParametersUnits.GetItemsCount(); res += ListConnectionStringUnits.GetItemsCount(); res += ListAggregateUnits.GetItemsCount(); res += ListTechnicalUnits.GetItemsCount(); return(res); }