Esempio n. 1
0
        private void MenuClickTyreCalculator(object sender, EventArgs e)
        {
            FormTyreCalc frmTyreCalc = new FormTyreCalc(cfg.cfgTyreOrigin, cfg.cfgTyreCurrent);

            if (frmTyreCalc.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                cfg.cfgTyreOrigin  = frmTyreCalc._tOrigin;
                cfg.cfgTyreCurrent = frmTyreCalc._tNew;

                ConversionFunctions.SpeedCorrectCoefficient = TyreParams.CalcK(frmTyreCalc._tOrigin, frmTyreCalc._tNew);
            }
        }
Esempio n. 2
0
        public FormTyreCalc(TyreParams origin = null, TyreParams current = null)
        {
            InitializeComponent();

            _tOrigin = (origin == null)
                                ? UserControlTyreParams.DefaultTyre
                                : origin;

            _tNew = (current == null)
                                ? UserControlTyreParams.DefaultTyre
                                : current;

            ctlTyresOriginal.Tyre = _tOrigin;
            ctlTyresNew.Tyre      = _tNew;

            CalcAcurancy();

            this.VisibleChanged += new EventHandler(FormTyreCalc_VisibleChanged);
        }
Esempio n. 3
0
        //Отработка события изменения значений ComboBox
        private void CmbBox_Change(object sender, EventArgs e)
        {
            tyre1 = new TyreParams(Convert.ToInt32(widthComboBox.SelectedItem),
                                   Convert.ToInt32(profileComboBox.SelectedItem), Convert.ToInt32(wheelSizeComboBox.SelectedItem));
            if (widthComboBox.SelectedIndex != -1 && profileComboBox.SelectedIndex != -1 && wheelSizeComboBox.SelectedIndex != -1)
            {
                listView1.Items[0].SubItems[1].Text = string.Concat(Convert.ToString(tyre1.TyreDiametr()), " мм");
                listView1.Items[1].SubItems[1].Text = string.Concat(widthComboBox.SelectedItem, " мм");
                listView1.Items[2].SubItems[1].Text = string.Concat(Convert.ToString(Math.Round(tyre1.CircleLenght())), " мм");
                listView1.Items[3].SubItems[1].Text = string.Concat(Convert.ToString(tyre1.SideWall()), " мм");
                listView1.Items[4].SubItems[1].Text = Convert.ToString(Math.Round(tyre1.RevsPerKm()));
            }
            tyre2 = new TyreParams(Convert.ToInt32(newWidthComboBox.SelectedItem),
                                   Convert.ToInt32(newProfileComboBox.SelectedItem), Convert.ToInt32(newWheelSizeComboBox.SelectedItem));
            if (newWidthComboBox.SelectedIndex != -1 && newProfileComboBox.SelectedIndex != -1 && newWheelSizeComboBox.SelectedIndex != -1)
            {
                listView1.Items[0].SubItems[2].Text = string.Concat(Convert.ToString(tyre2.TyreDiametr()), " мм");
                listView1.Items[1].SubItems[2].Text = string.Concat(newWidthComboBox.SelectedItem, " мм");
                listView1.Items[2].SubItems[2].Text = string.Concat(Convert.ToString(Math.Round(tyre2.CircleLenght())), " мм");
                listView1.Items[3].SubItems[2].Text = string.Concat(Convert.ToString(tyre2.SideWall()), " мм");
                listView1.Items[4].SubItems[2].Text = Convert.ToString(Math.Round(tyre2.RevsPerKm()));
            }
            percentChange = new Double();
            if (widthComboBox.SelectedIndex != -1 && profileComboBox.SelectedIndex != -1 && wheelSizeComboBox.SelectedIndex != -1 && newWidthComboBox.SelectedIndex != -1 && newProfileComboBox.SelectedIndex != -1 && newWheelSizeComboBox.SelectedIndex != -1)
            {
                pictureBox1.Refresh();
                //pictureBox1.Image = null;
                //pictureBox1.Invalidate();
                if (tyre1.TyreDiametr() < tyre2.TyreDiametr() && tyre1.TyreDiametr() != tyre2.TyreDiametr())
                {
                    listView1.Items[0].SubItems[3].ForeColor = Color.Green;
                    listView1.Items[0].SubItems[3].Text      = Convert.ToString(Math.Round(tyre2.TyreDiametr() - tyre1.TyreDiametr()));
                    listView1.Items[5].SubItems[1].ForeColor = Color.Green;
                    listView1.Items[5].SubItems[1].Text      = string.Concat(Convert.ToString(Math.Round((tyre2.TyreDiametr() - tyre1.TyreDiametr()) / 2, 2)), " мм");
                    percentChange        = Math.Round(((tyre2.TyreDiametr() * 100) / tyre1.TyreDiametr()) - 100, 1);
                    titleLabelSpeed.Text = Convert.ToString(string.Concat("Изменение показаний спидометра:\n", percentChange, " %"));
                }
                if (tyre1.TyreDiametr() > tyre2.TyreDiametr() && tyre1.TyreDiametr() != tyre2.TyreDiametr())
                {
                    listView1.Items[0].SubItems[3].ForeColor = Color.Red;
                    listView1.Items[0].SubItems[3].Text      = Convert.ToString(Math.Round(tyre2.TyreDiametr() - tyre1.TyreDiametr()));
                    listView1.Items[5].SubItems[1].ForeColor = Color.Red;
                    listView1.Items[5].SubItems[1].Text      = string.Concat(Convert.ToString(Math.Round((tyre2.TyreDiametr() - tyre1.TyreDiametr()) / 2, 2)), " мм");
                    percentChange        = Math.Round(((tyre2.TyreDiametr() * 100) / tyre1.TyreDiametr()) - 100, 1);
                    titleLabelSpeed.Text = Convert.ToString(string.Concat("Изменение показаний спидометра:\n", percentChange, " %"));
                }
                if (tyre1.TyreDiametr() == tyre2.TyreDiametr())
                {
                    listView1.Items[0].SubItems[3].ForeColor = Color.Gray;
                    listView1.Items[0].SubItems[3].Text      = Convert.ToString(Math.Round(tyre2.TyreDiametr() - tyre1.TyreDiametr()));
                    listView1.Items[5].SubItems[1].ForeColor = Color.Gray;
                    listView1.Items[5].SubItems[1].Text      = Convert.ToString(Math.Round((tyre2.TyreDiametr() - tyre1.TyreDiametr()) / 2, 2));
                    percentChange        = Math.Round(((tyre2.TyreDiametr() * 100) / tyre1.TyreDiametr()) - 100, 1);
                    titleLabelSpeed.Text = Convert.ToString(string.Concat("Изменение показаний спидометра:\n", percentChange, " %"));
                }

                if (tyre1.TyreWidth < tyre2.TyreWidth && tyre1.TyreWidth != tyre2.TyreWidth)
                {
                    listView1.Items[1].SubItems[3].ForeColor = Color.Green;
                    listView1.Items[1].SubItems[3].Text      = Convert.ToString(tyre2.TyreWidth - tyre1.TyreWidth);
                }
                if (tyre1.TyreWidth > tyre2.TyreWidth && tyre1.TyreWidth != tyre2.TyreWidth)
                {
                    listView1.Items[1].SubItems[3].ForeColor = Color.Red;
                    listView1.Items[1].SubItems[3].Text      = Convert.ToString(tyre2.TyreWidth - tyre1.TyreWidth);
                }

                if (tyre1.TyreWidth == tyre2.TyreWidth)
                {
                    listView1.Items[1].SubItems[3].ForeColor = Color.Gray;
                    listView1.Items[1].SubItems[3].Text      = Convert.ToString(tyre2.TyreWidth - tyre1.TyreWidth);
                }

                if (tyre1.CircleLenght() < tyre2.CircleLenght() && tyre1.CircleLenght() != tyre2.CircleLenght())
                {
                    listView1.Items[2].SubItems[3].ForeColor = Color.Green;
                    listView1.Items[2].SubItems[3].Text      = Convert.ToString(Math.Round(tyre2.CircleLenght() - tyre1.CircleLenght()));
                }

                if (tyre1.CircleLenght() > tyre2.CircleLenght() && tyre1.CircleLenght() != tyre2.CircleLenght())
                {
                    listView1.Items[2].SubItems[3].ForeColor = Color.Red;
                    listView1.Items[2].SubItems[3].Text      = Convert.ToString(Math.Round(tyre2.CircleLenght() - tyre1.CircleLenght()));
                }
                if (tyre1.CircleLenght() == tyre2.CircleLenght())
                {
                    listView1.Items[2].SubItems[3].ForeColor = Color.Gray;
                    listView1.Items[2].SubItems[3].Text      = Convert.ToString(Math.Round(tyre2.CircleLenght() - tyre1.CircleLenght()));
                }

                if (tyre1.SideWall() < tyre2.SideWall() && tyre1.SideWall() != tyre2.SideWall())
                {
                    listView1.Items[3].SubItems[3].ForeColor = Color.Green;
                    listView1.Items[3].SubItems[3].Text      = Convert.ToString(tyre2.SideWall() - tyre1.SideWall());
                }
                if (tyre1.SideWall() > tyre2.SideWall() && tyre1.SideWall() != tyre2.SideWall())
                {
                    listView1.Items[3].SubItems[3].ForeColor = Color.Red;
                    listView1.Items[3].SubItems[3].Text      = Convert.ToString(tyre2.SideWall() - tyre1.SideWall());
                }
                if (tyre1.SideWall() == tyre2.SideWall())
                {
                    listView1.Items[3].SubItems[3].ForeColor = Color.Gray;
                    listView1.Items[3].SubItems[3].Text      = Convert.ToString(tyre2.SideWall() - tyre1.SideWall());
                }

                if (tyre1.RevsPerKm() < tyre2.RevsPerKm() && tyre1.RevsPerKm() != tyre2.RevsPerKm())
                {
                    listView1.Items[4].SubItems[3].ForeColor = Color.Green;
                    listView1.Items[4].SubItems[3].Text      = Convert.ToString(Math.Round(tyre2.RevsPerKm() - tyre1.RevsPerKm()));
                }
                if (tyre1.RevsPerKm() > tyre2.RevsPerKm() && tyre1.RevsPerKm() != tyre2.RevsPerKm())
                {
                    listView1.Items[4].SubItems[3].ForeColor = Color.Red;
                    listView1.Items[4].SubItems[3].Text      = Convert.ToString(Math.Round(tyre2.RevsPerKm() - tyre1.RevsPerKm()));
                }
                if (tyre1.RevsPerKm() == tyre2.RevsPerKm())
                {
                    listView1.Items[4].SubItems[3].ForeColor = Color.Gray;
                    listView1.Items[4].SubItems[3].Text      = Convert.ToString(Math.Round(tyre2.RevsPerKm() - tyre1.RevsPerKm()));
                }

                /// <summary>
                /// Заполнение шкалы визуального "спидометра" значениями отклонений
                /// </summary>

                //Изменение показаний спидометра перенесено в отдельный класс!
                Speedo = new Speed(percentChange);
                string[] strDigs = Speedo.ScaleSpeedo(18, 10);
                labelSpeed10.Text  = strDigs[0];
                labelSpeed20.Text  = strDigs[1];
                labelSpeed30.Text  = strDigs[2];
                labelSpeed40.Text  = strDigs[3];
                labelSpeed50.Text  = strDigs[4];
                labelSpeed60.Text  = strDigs[5];
                labelSpeed70.Text  = strDigs[6];
                labelSpeed80.Text  = strDigs[7];
                labelSpeed90.Text  = strDigs[8];
                labelSpeed100.Text = strDigs[9];
                labelSpeed110.Text = strDigs[10];
                labelSpeed120.Text = strDigs[11];
                labelSpeed130.Text = strDigs[12];
                labelSpeed140.Text = strDigs[13];
                labelSpeed150.Text = strDigs[14];
                labelSpeed160.Text = strDigs[15];
                labelSpeed170.Text = strDigs[16];
                labelSpeed180.Text = strDigs[17];
                int    offset = 6;
                int    halfX = pictureBox1.Size.Width / 2, halfY = pictureBox1.Size.Height / 2;
                double scale;
                int    radiusOfTyre, radiusOfWheel;
                int    radiusOfTyre2, radiusOfWheel2;
                g = pictureBox1.CreateGraphics();
                if (tyre1.TyreDiametr() >= 500 || tyre2.TyreDiametr() >= 500)
                {
                    scale          = 2.7;
                    radiusOfTyre   = (int)((tyre1.TyreDiametr() / 2) / scale);
                    radiusOfWheel  = (int)(((tyre1.WheelSize * 25.4) / 2) / scale);
                    radiusOfTyre2  = (int)((tyre2.TyreDiametr() / 2) / scale);
                    radiusOfWheel2 = (int)(((tyre2.WheelSize * 25.4) / 2) / scale);
                    g.DrawArc(new Pen(Brushes.Red), (halfX - offset) - radiusOfTyre, (halfY) - radiusOfTyre, (Int32)(tyre1.TyreDiametr() / scale), (Int32)(tyre1.TyreDiametr() / scale), 90, 180);
                    g.DrawArc(new Pen(Brushes.Red), (halfX - offset) - radiusOfWheel, (halfY) - radiusOfWheel, (Int32)((tyre1.WheelSize * 25.4) / scale), (Int32)((tyre1.WheelSize * 25.4) / scale), 90, 180);
                    g.DrawArc(new Pen(Brushes.Black), (halfX + offset) - radiusOfTyre2, (halfY) - radiusOfTyre2, (Int32)(tyre2.TyreDiametr() / scale), (Int32)(tyre2.TyreDiametr() / scale), 270, 180);
                    g.DrawArc(new Pen(Brushes.Black), (halfX + offset) - radiusOfWheel2, (halfY) - radiusOfWheel2, (Int32)((tyre2.WheelSize * 25.4) / scale), (Int32)((tyre2.WheelSize * 25.4) / scale), 270, 180);
                }
                else
                {
                    scale          = 2;
                    radiusOfTyre   = (int)((tyre1.TyreDiametr() / 2) / scale);
                    radiusOfWheel  = (int)(((tyre1.WheelSize * 25.4) / 2) / scale);
                    radiusOfTyre2  = (int)((tyre2.TyreDiametr() / 2) / scale);
                    radiusOfWheel2 = (int)(((tyre2.WheelSize * 25.4) / 2) / scale);
                    g.DrawArc(new Pen(Brushes.Red), (halfX - offset) - radiusOfTyre, (halfY) - radiusOfTyre, (Int32)(tyre1.TyreDiametr() / scale), (Int32)(tyre1.TyreDiametr() / scale), 90, 180);
                    g.DrawArc(new Pen(Brushes.Red), (halfX - offset) - radiusOfWheel, (halfY) - radiusOfWheel, (Int32)((tyre1.WheelSize * 25.4) / scale), (Int32)((tyre1.WheelSize * 25.4) / scale), 90, 180);
                    g.DrawArc(new Pen(Brushes.Black), (halfX + offset) - radiusOfTyre2, (halfY) - radiusOfTyre2, (Int32)(tyre2.TyreDiametr() / scale), (Int32)(tyre2.TyreDiametr() / scale), 270, 180);
                    g.DrawArc(new Pen(Brushes.Black), (halfX + offset) - radiusOfWheel2, (halfY) - radiusOfWheel2, (Int32)((tyre2.WheelSize * 25.4) / scale), (Int32)((tyre2.WheelSize * 25.4) / scale), 270, 180);
                }
            }
        }
Esempio n. 4
0
 private void ctlTyresNew_SizesChanged(object sender, TyreParams e)
 {
     _tNew = e;
     CalcAcurancy();
 }
Esempio n. 5
0
 private void ctlTyresOriginal_SizesChanged(object sender, TyreParams e)
 {
     _tOrigin = e;
     CalcAcurancy();
 }
Esempio n. 6
0
        private void InitializeSettings()
        {
            //Логи
            _log = Log.Instance;
            _log.CatchExceptions = true;
            _log.LogLevel        = debugFlag ? EventEntryType.Debug : EventEntryType.Event;
            _log.LogFileEnabled  = true;

            //делегат перехвата событий Click на ToolStripMenuItems
            _EHmainMenu = new EventHandler(menu_Click);

            //Инициализация класса настроек приложения
            _cfg = new Settings();
            //Если настройки дефолтовые, то возможно обновили версию.
            //вытащим настройки из предыдущей версии и сменим флаг
            if (_cfg.NeedUpgrade)
            {
                _cfg.Upgrade();
                _cfg.NeedUpgrade = false;
            }
            //Проверим на валидность последние пути диалогов
            if (_cfg.cfgdlgADRPath == null ||
                _cfg.cfgdlgADRPath.Length == 0 ||
                !new DirectoryInfo(_cfg.cfgdlgADRPath).Exists
                )
            {
                _cfg.cfgdlgADRPath = Environment.CurrentDirectory;
            }
            if (_cfg.cfgdlgROMPath == null ||
                _cfg.cfgdlgROMPath.Length == 0 ||
                !new DirectoryInfo(_cfg.cfgdlgROMPath).Exists
                )
            {
                _cfg.cfgdlgROMPath = Environment.CurrentDirectory;
            }

            //список доступных интерфейсов диагностики (устройств)
            _consltDataList = new ListIndexString <IConsultData>()
            {
                new ConsultData(new DataEngine()),
                new ConsultData(new DataAT()),
                new ConsultData(new DataHICAS()),
                new ConsultData(new DataAirCon()),
            };
            mnuConsultMode.DropDownItems.Clear();
            //Добавляем список режимов диагностики в меню
            foreach (IConsultData i in _consltDataList)
            {
                string            name = i.ToString();
                ToolStripMenuItem mnu  = new ToolStripMenuItem();
                //mnu.Click -= new EventHandler(menu_Click);
                //mnu.Click += new EventHandler(mnuConsultMode_Click);
                mnu.Name = mnu.Text = name;
                mnuConsultMode.DropDownItems.Add(mnu);
            }
            //Выбираем первый пункт меню по умолчанию
            mnuConsultMode_Click(
                mnuConsultMode.DropDownItems[_consltDataList[0].ToString()],
                new EventArgs());
            //класс работы через интерфейс consult
            _consult = new ConsultProvider(_consltDataList[0]);
            //Расчитаем коэффициент скорости если размеры шин заданы
            if (_cfg.cfgTyreOrigin != null && _cfg.cfgTyreCurrent != null)
            {
                ConversionFunctions.SpeedCorrectCoefficient = TyreParams.CalcK(_cfg.cfgTyreOrigin, _cfg.cfgTyreCurrent);
            }
            //Если стоит настройка на автоподключение - подключимся к консульту
            if (_cfg.cfgConsultConnectAtStartup)
            {
                menu_Click(mnuConsultConnect);
            }

            //создаем класс работы с ROM/ADR Файлами
            _bin = new From();
            //подписываем функцию обновления интерфейса на событие смены источника данных класса
            _bin.DataSourceChanged += new From.FromEventHandler(InitFRomInterface);
            //InitInterface(_bin, null);

            //Откроем предыдущие файлы конфигурации если необходимо
            if (_cfg.cfgOpenLastConfig)
            {
                if (_cfg.cfgRecentAdrFiles.Count > 0 && File.Exists(_cfg.cfgRecentAdrFiles[0]))
                {
                    try { _bin.OpenAddressFile(_cfg.cfgRecentAdrFiles[0]); }
                    catch { }
                }
                if (_cfg.cfgRecentBinFiles.Count > 0 && File.Exists(_cfg.cfgRecentBinFiles[0]))
                {
                    try { _bin.OpenROMFile(_cfg.cfgRecentBinFiles[0]); }
                    catch { _bin.Clear(); }
                }
            }
        }