示例#1
0
 private void UIConsultConnect(ToolStripMenuItem menu)
 {
     if (menu.Checked)
     {
         _consult.Disconnect();
     }
     else
     {
         string port    = _cfg.cfgConsultPort;
         string caption = String.Format("Consult init on port [{0}]", port);
         using (IProgressBar _progressForm = FormProgressBar.GetInstance(caption))
         {
             _progressForm.ShowProgressBar(delegate()
             {
                 try
                 {
                     _consult.Initialise(_cfg.cfgConsultPort);
                 }
                 catch (ConsultException ex)
                 {
                     string msg = String.Format("Connect to ECU on [{0}] failed!", port);
                     HelperClass.Message(this, ex, msg, MessageBoxIcon.Error);
                     _progressForm.StopProgressBar();
                 }
             });
         }
     }
     InitializeConsultMenu();
 }
示例#2
0
        /// <summary>
        /// Отсылает письмо на [email protected]
        /// </summary>
        /// <param name="message">Тело письма</param>
        /// <param name="attachments">Пути к прикрепляемым файлам</param>
        private void SendEmail(MailAddress replyAddress, string message, List <string> attachments)
        {
            do
            {
                string     emailTo = "*****@*****.**";
                SmtpClient smtp    = new System.Net.Mail.SmtpClient();
                smtp.Host        = "smtp.mail.ru";
                smtp.Port        = 2525;
                smtp.EnableSsl   = true;
                smtp.Timeout     = 10;
                smtp.Credentials = new NetworkCredential(emailTo, "simple");
                MailMessage msg = new MailMessage(emailTo, emailTo);

                //Добавляем аттачменты
                if (attachments != null)
                {
                    MemoryStream st = HelperClass.CreateZipAttachement(attachments);

                    ContentType ct = new ContentType();
                    ct.MediaType = MediaTypeNames.Application.Zip;
                    ct.Name      = "archive.zip";

                    st.Position = 0;

                    msg.Attachments.Add(new Attachment(st, ct));
                }

                msg.ReplyTo = replyAddress;

                msg.Subject = String.Format("Bug report: {0} [{1}<{2}>]",
                                            FormAboutBox.AssemblyProduct,
                                            replyAddress.DisplayName,
                                            replyAddress.Address);

                msg.Body = String.Format("{0}{1}\tv.{2}{0}{3}{0}{4}",
                                         Environment.NewLine,
                                         FormAboutBox.AssemblyProduct,
                                         FormAboutBox.AssemblyVersion,
                                         "____________________________________________________________",
                                         message);
                try
                {
                    IProgressBar progress = FormProgressBar.GetInstance("Sending eMail...");
                    progress.ShowProgressBar(delegate()
                    {
                        smtp.Send(msg);
                    });
                    HelperClass.Message(this, "Done!\nThank you for feedback!");
                }
                catch (Exception ex)
                {
                    string errDelivery = String.Format("Ошибка при отправке:{0}{1}{0}{0}Повторить?", Environment.NewLine, HelperClass.GetExceptionInfo(ex));
                    if (MessageBox.Show(this, errDelivery, "Error", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes)
                    {
                        continue;
                    }
                }
                break;
            } while (true);
        }
示例#3
0
        /// <summary>
        /// Сархивировать файлы в MemoryStream
        /// </summary>
        /// <param name="attachments">Список файлов</param>
        /// <returns>Поток данных</returns>
        public static MemoryStream CreateZipAttachement(List <string> attachments)
        {
            _progressZip = FormProgressBar.GetInstance("Packing log file...");
            MemoryStream st  = new MemoryStream();
            ZipFile      zip = new ZipFile();


            lock (_progressZip) {
                foreach (string file in attachments)
                {
                    try {
                        zip.AddFile(file, "");
                    } catch {
                    }
                }
                _progressZip.ShowProgressBar(delegate() {
                    zip.Save(st);
                });
            }

            _progressZip.Dispose();
            _progressZip = null;
            return(st);
        }
示例#4
0
        private void ConsultConnect(COMPortName comPort = null)
        {
            StatusLabel(StatusCommunications.Search, lblStatusConsult);
            StatusLabel(StatusCommunications.Search, cbConsultPort);

            string port = comPort == null ? "" : comPort.PortName;

            _consultECUInfo = null;
            //Если Класса не существует - внештатная ситуация
            if (_consult == null)
            {
                throw new NullReferenceException("Не создан экземпляр класса Consult!");
            }

            //Порт пуст. будем искать консульт на всех свободных портах
            if (String.IsNullOrEmpty(port))
            {
                if (!_consult.IsOnline)
                {
                    List <COMPortName> lstAccesiblePorts = COMPortName.GetPortNames(true);
                    using (IProgressBar progressCOMSearch = FormProgressBar.GetInstance("Initialize consult on "))
                    {
                        progressCOMSearch.ShowProgressBar(delegate()
                        {
                            foreach (COMPortName i in lstAccesiblePorts)
                            {
                                progressCOMSearch.SetCurrentState(i.PortName);
                                try
                                {
                                    _consult.Initialise(i.PortName, true);
                                    _consultECUInfo = _consult.GetECUInfo();
                                    break;
                                }
                                catch (ConsultException)
                                { continue; }
                            }
                        });
                    }

                    if (_consult.IsOnline)
                    {
                        StatusLabel(StatusCommunications.Found, lblStatusConsult, _consultECUInfo.ToString());
                        StatusLabel(StatusCommunications.Found, cbConsultPort, _consultECUInfo.ToString());

                        port = _consult.COMPort;
                        _consult.Disconnect();
                        ComboBoxSelectedIndexUpdate(new COMPortName(_consult.COMPort), cbConsultPort);
                    }
                    else
                    {
                        StatusLabel(StatusCommunications.NotFound, lblStatusConsult);
                        StatusLabel(StatusCommunications.NotFound, cbConsultPort);
                    }
                }
            }
            //выбран конкретный порт
            else
            {
                try
                {
                    //выбранный порт отличается от того по которому сейчас работает консульт
                    //выбранный порт новый и consult уже подключен, отключимся
                    if (port != _consult.COMPort && _consult.IsOnline)
                    {
                        _consult.Disconnect();
                    }

                    using (IProgressBar progress = FormProgressBar.GetInstance("Consult initialization on " + port))
                    {
                        progress.ShowProgressBar(delegate()
                        {
                            try
                            {
                                _consult.Initialise(port);
                                _consultECUInfo = _consult.GetECUInfo();

                                StatusLabel(StatusCommunications.Found, lblStatusConsult, _consultECUInfo.ToString());
                                StatusLabel(StatusCommunications.Found, cbConsultPort, _consultECUInfo.ToString());
                            }
                            catch (ConsultException ex)
                            {
                                StatusLabel(StatusCommunications.NotFound, lblStatusConsult, ex.Message);
                                StatusLabel(StatusCommunications.NotFound, cbConsultPort, ex.Message);
                            }
                        });
                    }
                }
                catch (ConsultException ex)
                {
                    StatusLabel(ex.Message, Color.Red, lblStatusConsult);
                    StatusLabel(ex.Message, Color.Red, cbConsultPort);
                    return;
                }
            }
        }