/// <summary>
        /// Сохранить изменения во всех параметрах
        /// </summary>
        private void SaveBarometersSetting()
        {
            int i = 0;

            //foreach (ParameterDetailViewModel item in mMainViewModel.PartWorkspace.CurrentPart.ParameterDetails)
            //{
            //    ((TuningParameterViewModel)item).NameParameter = "Ерунда" + i;
            //    i++;
            //}

            foreach (CommPresenter itemCommPresenter in Presenters.Values)
            {
                DeviceBRS1MViewModel deviceBRS1M = (DeviceBRS1MViewModel)mMainViewModel.PartWorkspace.CurrentPart.DeviceDetaills[i];
                deviceBRS1M.ParameterName   = (itemCommPresenter.GetCommPortModel.ParameterName == string.Empty) ? Guid.NewGuid().ToString() : itemCommPresenter.GetCommPortModel.ParameterName;
                deviceBRS1M.PortName        = itemCommPresenter.GetCommPortModel.PortName;
                deviceBRS1M.Parity          = itemCommPresenter.GetCommPortModel.Parity;
                deviceBRS1M.StopBits        = itemCommPresenter.GetCommPortModel.StopBits;
                deviceBRS1M.DataBits        = itemCommPresenter.GetCommPortModel.DataBits;
                deviceBRS1M.BaudRate        = itemCommPresenter.GetCommPortModel.BaudRate;
                deviceBRS1M.ClearOnOpen     = itemCommPresenter.GetCommPortModel.ClearOnOpen;
                deviceBRS1M.ClearWithDTR    = itemCommPresenter.GetCommPortModel.ClearWithDTR;
                deviceBRS1M.CurrentDataMode = itemCommPresenter.GetCommPortModel.CurrentDataMode;
                deviceBRS1M.UnitInput       = itemCommPresenter.GetCommPortModel.UnitInput;
                deviceBRS1M.UnitOutput      = itemCommPresenter.GetCommPortModel.UnitOutput;

                i++;
            }

            mMainViewModel.SaveCommand.Execute(null);
            SaveDataSetTuningParameters();
        }
Esempio n. 2
0
        public CommPresenter(IView view, ManagerComPorts inManagerPorts, DeviceBRS1MViewModel inDeviceBRS1M)
        {
            managerPorts = inManagerPorts;
            deviceBRS1M  = inDeviceBRS1M;
            // После того, как интерфейс готов, надо придумать как подпихнуть экземпляр интерфейса в Presenter.
            // В данном случае, для простой задачи, можно сделать это через конструктор, в более сложных ситуациях Presenter может получать ссылку
            // на конкретный экземпляр через специальную фабрику представлений или даже сам являться фабрикой,
            // порождающий необходимые Представления в зависимости от ситуации.
            viewTerminal = view;
            commModel    = new CommPortModel();

            SubscribeToEvents();
            // Применить сохранённые пользовательские настройки
            InitializeControlValues();
        }
        /// <summary>
        /// Добавить новый контрол по заданному индексу на панель.
        /// Перегруженный.
        /// </summary>
        private void AddNewBarometerControlView()
        {
            mMainViewModel.PartWorkspace.CurrentPart.AddDeviceDetailCommand.Execute(null);

            DeviceBRS1MViewModel curBRS1M_VM = mMainViewModel.PartWorkspace.CurrentPart.CurrentDeviceDetail as DeviceBRS1MViewModel;

            // значения по умолчанию
            curBRS1M_VM.PortName        = "COM1";
            curBRS1M_VM.BaudRate        = 1200;
            curBRS1M_VM.Parity          = Parity.None;
            curBRS1M_VM.StopBits        = StopBits.One;
            curBRS1M_VM.DataBits        = 8;
            curBRS1M_VM.ParameterName   = USER_TEXT_CONTROL_BAROMETER;
            curBRS1M_VM.ClearOnOpen     = false;
            curBRS1M_VM.ClearWithDTR    = false;
            curBRS1M_VM.CurrentDataMode = DataMode.Hex;
            curBRS1M_VM.UnitInput       = UnitOfMeasureInput.гПаВх;
            curBRS1M_VM.UnitOutput      = UnitOfMeasureOutput.гПаВых;

            AddNewBarometerControlView(curBRS1M_VM);
        }
        /// <summary>
        /// Добавить новый контрол по заданному индексу на панель.
        /// Перегруженный.
        /// </summary>
        /// <param name="indexRow"></param>
        private void AddNewBarometerControlView(DeviceBRS1MViewModel deviceBRS1M)
        {
            ClosePortAllPresenters();
            tslDeleteBarometer.Enabled = false;
            allControlsCount          += 1;

            BarometerControlView mBarometerControlView = new BarometerControlView
            {
                BorderStyle = BorderStyle.Fixed3D,
                Dock        = DockStyle.Fill,
                TabIndex    = tlpBarometers.RowCount,
                Name        = USER_CONTROL_BAROMETER + allControlsCount,
                Tag         = (string)deviceBRS1M.ParameterName
            };

            ComboBoxControlsToDelete.ComboBoxToDelete.ComboBoxControlsToDelete.Items.Add(mBarometerControlView);
            AddBarometerControlToPanel(mBarometerControlView);
            HighlightingSelectedControl(mBarometerControlView);
            ComboBoxControlsToDelete.ComboBoxToDelete.ComboBoxControlsToDelete.Text = string.Empty;

            CreateNewCommPresenter(mBarometerControlView, deviceBRS1M);
        }
        /// <summary>
        /// Создать экземпляр Presenter и добавить в словарь.
        /// </summary>
        private void CreateNewCommPresenter(BarometerControlView inBarometerControlView, DeviceBRS1MViewModel deviceBRS1M)
        {
            // После того, как интерфейс готов, надо придумать как подпихнуть экземпляр интерфейса в Presenter.
            // В данном случае, для простой задачи, можно сделать это через конструктор,
            // в более сложных ситуациях Presenter может получать ссылку на конкретный экземпляр через специальную фабрику представлений
            // или даже сам являться фабрикой, порождающий необходимые Представления в зависимости от ситуации.
            CommPresenter oneCommPresenter = new CommPresenter(inBarometerControlView, managerPorts, deviceBRS1M);

            Presenters.Add(inBarometerControlView.Name, oneCommPresenter);
        }