예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        /// <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);
        }
예제 #5
0
        /// <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);
        }
예제 #6
0
        /// <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);
        }