Exemple #1
0
 /// <summary>
 /// Создание новой пустой конфигурации
 /// </summary>
 public Parser()
 {
     _listProductionThreads      = new Collection <ProductionThread>();
     MillConfigUnit              = new MillConfigUnit();
     SubscriptionsUnit           = new SubscriptionsUnit();
     ListDataBlockUnits          = new Collection <DataBlockUnit>();
     ListSignalUnits             = new Collection <SignalUnit>();
     ListThreadUnits             = new Collection <ThreadUnit>();
     ListRollgangUnits           = new Collection <RollgangUnit>();
     ListLabelUnits              = new Collection <LabelUnit>();
     ListSensorUnits             = new Collection <SensorUnit>();
     ListStopperUnits            = new Collection <StopperUnit>();
     ListLinearDisplacementUnits = new Collection <LinearDisplacementUnit>();
     ListDeleterUnits            = new Collection <DeleterUnit>();
     ListCagesUnits              = new Collection <CageUnit>();
     ListIngotParametersUnits    = new Collection <IngotParametersUnit>();
     ListConnectionStringUnits   = new Collection <ConnectionStringUnit>();
     ListAggregateUnits          = new Collection <AggregateUnit>();
     ListTechnicalUnits          = new Collection <TechnicalUnit>();
 }
Exemple #2
0
        /// <summary>
        /// Разбор конфигурационного файла на объекты
        /// </summary>
        /// <exception cref="NullReferenceException">Неверный формат конфигурационного файла</exception>
        public void Parse()
        {
            if (String.IsNullOrEmpty(_cfgFileName))
            {
                return;
            }

            List <ConfigurationUnit>  objectsList = new List <ConfigurationUnit>();
            Stack <ConfigurationUnit> subobjects  = new Stack <ConfigurationUnit>();
            bool              openedMainObject    = false;
            int               subObjectsCount     = 0;
            bool              closedSubObject     = true;
            string            line;
            ConfigurationUnit currConfigurationUnit = null;

            // Открываем файл конфигурации для чтения и читаем его построчно
            StreamReader reader = new StreamReader(_cfgFileName, System.Text.Encoding.Default);

            while ((line = reader.ReadLine()) != null)
            {
                line = line.Replace("\t", " ").Trim();

                if (line == "" || line.StartsWith("//") || line == "(")
                {
                    continue;
                }

                if (line.Contains("=") && currConfigurationUnit != null)
                {
                    // Разбираем параметры объекта по первому вхождению символа '='
                    int    separator = line.IndexOf('=');
                    string key       = line.Substring(0, separator);
                    string val       = line.Substring(separator + 1);
                    currConfigurationUnit.Parameters[key] = val;
                }
                else
                {
                    // Определяем тип операции с объектом
                    if (line == ")")
                    {
                        if (openedMainObject)
                        {
                            // Закрывем объект
                            if (subObjectsCount > 0)
                            {
                                // Закрываем подобъект
                                if (subObjectsCount > 1)
                                {
                                    // Забираем очередной подобъект из стека
                                    ConfigurationUnit topLevel = subobjects.Pop();
                                    topLevel.SubObjects.Add(currConfigurationUnit);
                                    currConfigurationUnit = topLevel;
                                    subObjectsCount--;
                                }
                                else
                                {
                                    // В стеке нет подобъектов, последний подобъект в переменной currObject
                                    ConfigurationUnit topLevel = objectsList[objectsList.Count - 1];
                                    objectsList.Remove(topLevel);
                                    topLevel.SubObjects.Add(currConfigurationUnit);
                                    currConfigurationUnit = topLevel;
                                    subObjectsCount--;
                                    closedSubObject = true;
                                }
                            }
                            else
                            {
                                // Закрываем главный объект
                                if (!closedSubObject)
                                {
                                    ConfigurationUnit sub = subobjects.Pop();
                                    currConfigurationUnit?.SubObjects.Add(sub);
                                    closedSubObject = true;
                                }
                                objectsList.Add(currConfigurationUnit);
                                currConfigurationUnit = null;
                                openedMainObject      = false;
                            }
                        }
                        else
                        {
                            // Нет созданных объектов
                            throw new NullReferenceException("Ошибка при разборе конфигурационного файла");
                        }
                    }
                    else
                    {
                        // Открываем объект
                        if (openedMainObject)
                        {
                            if (subObjectsCount == 0)
                            {
                                // Это главный объект, и подобъектов пока нет
                                // Сохраняем главный объект и создаем подобъект
                                objectsList.Add(currConfigurationUnit);
                                currConfigurationUnit = new ConfigurationUnit();
                                ConfigurationUnitType type = GetObjectType(line);
                                currConfigurationUnit.Name = line;
                                currConfigurationUnit.Type = type;
                                closedSubObject            = false;
                                subObjectsCount++;
                            }
                            else
                            {
                                // Это подобъект, сохроаняем его в стеке и создаем новый подобъект
                                subobjects.Push(currConfigurationUnit);
                                currConfigurationUnit = new ConfigurationUnit();
                                ConfigurationUnitType type = GetObjectType(line);
                                currConfigurationUnit.Name = line;
                                currConfigurationUnit.Type = type;
                                subObjectsCount++;
                                closedSubObject = false;
                            }
                        }
                        else
                        {
                            // Это главный объект
                            currConfigurationUnit = new ConfigurationUnit();
                            ConfigurationUnitType type = GetObjectType(line);
                            currConfigurationUnit.Name = line;
                            currConfigurationUnit.Type = type;
                            openedMainObject           = true;
                        }
                    }
                }
            }

            reader.Close();

            foreach (ConfigurationUnit item in objectsList)
            {
                switch (item.Type)
                {
                case ConfigurationUnitType.MillConfig:
                    MillConfigUnit = new MillConfigUnit(item);
                    break;

                case ConfigurationUnitType.Subscription:
                    SubscriptionsUnit = new SubscriptionsUnit(item);
                    break;

                case ConfigurationUnitType.DataBlock:
                    ListDataBlockUnits.Add(new DataBlockUnit(item));
                    break;

                case ConfigurationUnitType.Signal:
                    ListSignalUnits.Add(new SignalUnit(item));
                    break;

                case ConfigurationUnitType.Thread:
                    ListThreadUnits.Add(new ThreadUnit(item));
                    break;

                case ConfigurationUnitType.Rollgang:
                    ListRollgangUnits.Add(new RollgangUnit(item));
                    break;

                case ConfigurationUnitType.Label:
                    ListLabelUnits.Add(new LabelUnit(item));
                    break;

                case ConfigurationUnitType.Sensor:
                    ListSensorUnits.Add(new SensorUnit(item));
                    break;

                case ConfigurationUnitType.Stopper:
                    ListStopperUnits.Add(new StopperUnit(item));
                    break;

                case ConfigurationUnitType.LinearMoving:
                    ListLinearDisplacementUnits.Add(new LinearDisplacementUnit(item));
                    break;

                case ConfigurationUnitType.Deleter:
                    ListDeleterUnits.Add(new DeleterUnit(item));
                    break;

                case ConfigurationUnitType.Cage:
                    ListCagesUnits.Add(new CageUnit(item));
                    break;

                case ConfigurationUnitType.IngotParams:
                    ListIngotParametersUnits.Add(new IngotParametersUnit(item));
                    break;

                case ConfigurationUnitType.Connection:
                    ListConnectionStringUnits.Add(new ConnectionStringUnit(item));
                    break;

                case ConfigurationUnitType.Aggregate:
                    ListAggregateUnits.Add(new AggregateUnit(item));
                    break;

                case ConfigurationUnitType.TechnicalUnit:
                    ListTechnicalUnits.Add(new TechnicalUnit(item));
                    break;
                }
            }
        }
Exemple #3
0
 private void button2_Click(object sender, EventArgs e)
 {
     MillConfig = null;
     Result     = DialogResult.Cancel;
 }
Exemple #4
0
        private void UpdateMillConfigView()
        {
            List <DataViews> dataViews = new List <DataViews>();
            MillConfigUnit   item      = _configuration.MillConfigUnit;

            DataViews dataView = new DataViews();

            dataView.ParameterName  = "Наименование";
            dataView.ParameterValue = item.Name;
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Комментарий";
            dataView.ParameterValue = item.Comment;
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Файл архивов";
            dataView.ParameterValue = item.ArchiveFile;
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Адрес сервера архивов";
            dataView.ParameterValue = item.ArchiveHost;
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Порт сервера архивов";
            dataView.ParameterValue = item.ArchivePort.ToString();
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Адрес севрера визуализации";
            dataView.ParameterValue = item.VisualHost;
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Порт сервера визуализации";
            dataView.ParameterValue = item.VisualPort.ToString();
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Размер буффера";
            dataView.ParameterValue = item.BufferSize.ToString();
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Максимальный размер файла";
            dataView.ParameterValue = item.MaxFileSize.ToString();
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Окрестность за клетью";
            dataView.ParameterValue = item.CageNeighborhood.ToString();
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Окресность датчика голова";
            dataView.ParameterValue = item.HeadNeighborhood.ToString();
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Окрестность датчика хвост";
            dataView.ParameterValue = item.TailNeighborhood.ToString();
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Максимальное количество единиц";
            dataView.ParameterValue = item.MaxUnitsCount.ToString();
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Ускорение объекта";
            dataView.ParameterValue = item.ObjectAcceleration.ToString();
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Максимальная скорость объекта";
            dataView.ParameterValue = item.MaxObjectSpeed.ToString();
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Период накопления данных";
            dataView.ParameterValue = item.PeriodAccumulation.ToString();
            dataViews.Add(dataView);
            dataView = new DataViews();
            dataView.ParameterName  = "Период записи данных";
            dataView.ParameterValue = item.PeriodRecording.ToString();
            dataViews.Add(dataView);

            dataMillConfig.DataSource            = dataViews;
            dataMillConfig.Columns[0].HeaderText = "Параметр";
            dataMillConfig.Columns[0].Width      = 150;
            dataMillConfig.Columns[1].HeaderText = "Значение";
            dataMillConfig.Columns[1].Width      = 200;
        }
Exemple #5
0
 public EditMillConfig()
 {
     InitializeComponent();
     MillConfig = new MillConfigUnit();
 }