Exemplo n.º 1
0
        private void UpdateValueTextbox(TextBox txt, double value)
        {
            Classificacoes.Classificacao classe = this.Classe.GetClassificacao(value);

            if (classe != Classificacoes.Classificacao.Undefined)
            {
                txt.Text = value.ToString("0.000");
            }
            else
            {
                txt.Text = "----";
            }

            txt.ForeColor = this.GetClassColor(classe);
        }
Exemplo n.º 2
0
        public Color GetClassColor(Classificacoes.Classificacao classificacao)
        {
            switch (classificacao)
            {
            case Classificacoes.Classificacao.Conforme:
                return(Color.LimeGreen);

            case Classificacoes.Classificacao.Classe2:
                return(Color.Yellow);

            case Classificacoes.Classificacao.Classe3:
                return(Color.OrangeRed);

            case Classificacoes.Classificacao.NaoConforme:
                return(Color.Red);

            default:
                return(Color.White);
            }
        }
Exemplo n.º 3
0
 public DataPoint(double value, DateTime dataHora, Classificacoes.Classificacao classe)
 {
     this.Value    = value;
     this.DataHora = dataHora;
     this.Classe   = classe;
 }
        public static string GetGraph(string id, string DtInicio, string DtFim, string Offset)
        {
            //Populating a DataTable from database.
            DataTable dt = new DataTable();

            dt.Columns.Add("D", typeof(double));
            //dt.Columns.Add("C", typeof(int));
            dt.Columns.Add("T", typeof(string));

            int maxOfRecords = 1000;

            if (string.IsNullOrWhiteSpace(Offset) || !Diversos.IsNumeric(Offset))
            {
                Offset = "0";
            }

            try
            {
                Maquina maquina = VARS.Maquinas.First(x => x.Id == Convert.ToInt32(id));

                //   int lastSec = -1;

                if (maquina == null)
                {
                    throw new Exception("máquina não encontrada!");
                }
                else
                if (maquina.GraficoPontos.GetPoints(DateTime.Parse(DtInicio), DateTime.Parse(DtFim).AddMinutes(1).AddSeconds(-1), Convert.ToDouble(Offset.Replace(".", ","))))
                {
                    //get stats
                    LAST_SEARCH_STATS.Clear();
                    //get class
                    LAST_CLASS_TABLE.Clear();

                    LAST_CLASS = Classificacoes.Classificacao.Undefined;

                    long numPointsClasse2 = 0;
                    long numPointsClasse3 = 0;
                    long numPointsNC      = 0;

                    Classificacoes.Classificacao lastClass = Classificacoes.Classificacao.Undefined;

                    int increment = (int)Math.Ceiling((double)maquina.GraficoPontos.Pontos.Count / maxOfRecords);

                    for (int i = 0; i < maquina.GraficoPontos.Pontos.Count; i++)
                    {
                        if (i % increment == 0 || (maquina.GraficoPontos.Pontos[i].Classe != Classificacoes.Classificacao.Conforme && maquina.GraficoPontos.Pontos[i].Classe != lastClass))
                        {
                            // dt.Rows.Add(Math.Round(maquina.GraficoPontos.Pontos[i].Value, 3), (int)maquina.GraficoPontos.Pontos[i].Classe, maquina.GraficoPontos.Pontos[i].DataHora.ToString("dd/MM/yyyy HH:mm:ss"));
                            dt.Rows.Add(Math.Round(maquina.GraficoPontos.Pontos[i].Value, 3), maquina.GraficoPontos.Pontos[i].DataHora.ToString("dd/MM/yyyy HH:mm:ss"));
                        }

                        if (LAST_CLASS_TABLE.Count < 1000)
                        {
                            if (maquina.GraficoPontos.Pontos[i].Classe != Classificacoes.Classificacao.Conforme)
                            {
                                if (maquina.GraficoPontos.Pontos[i].Classe != lastClass)
                                {
                                    LAST_CLASS_TABLE.Add(maquina.GraficoPontos.Pontos[i]);
                                }
                            }
                        }
                        lastClass = maquina.GraficoPontos.Pontos[i].Classe;


                        if (maquina.GraficoPontos.Pontos[i].Classe == Classificacoes.Classificacao.Classe2)
                        {
                            numPointsClasse2++;
                        }
                        else if (maquina.GraficoPontos.Pontos[i].Classe == Classificacoes.Classificacao.Classe3)
                        {
                            numPointsClasse3++;
                        }
                        else if (maquina.GraficoPontos.Pontos[i].Classe == Classificacoes.Classificacao.NaoConforme)
                        {
                            numPointsNC++;
                        }
                    }

                    //analise a conformidade da bobine
                    if (numPointsNC > 0 || numPointsClasse3 > maquina.Classe.MaxPontosClasse3 || numPointsClasse2 > maquina.Classe.MaxPontosClasse2)
                    {
                        LAST_CLASS = Classificacoes.Classificacao.NaoConforme;
                    }
                    else if (numPointsClasse3 > 0)
                    {
                        LAST_CLASS = Classificacoes.Classificacao.Classe3;
                    }
                    else if (numPointsClasse2 > 0)
                    {
                        LAST_CLASS = Classificacoes.Classificacao.Classe2;
                    }
                    else
                    {
                        LAST_CLASS = Classificacoes.Classificacao.Conforme;
                    }

                    //get stats
                    double aux = Math.Round(maquina.GraficoPontos.Pontos.Select(x => x.Value).Average(), 3);
                    LAST_SEARCH_STATS.Add(new Maquina.PontosGraph.DataPoint(aux, DateTime.Now, maquina.Classe.GetClassificacao(aux)));
                    LAST_SEARCH_STATS.Add(maquina.GraficoPontos.Minimum);
                    LAST_SEARCH_STATS.Add(maquina.GraficoPontos.Maximum);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("GetGraph(): " + ex.Message);

                return(string.Empty);
            }

            return(VARS.ConvertDataTabletoString(dt));
        }
Exemplo n.º 5
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                if (this.ReadStatus && ledPLC.Image != Resources.ledGreen)
                {
                    ledPLC.Image = Resources.ledGreen;
                }
                else if (!this.ReadStatus && ledPLC.Image != Resources.ledRed)
                {
                    ledPLC.Image = Resources.ledRed;
                }

                if (this.DbStatus && ledDB.Image != Resources.ledGreen)
                {
                    ledDB.Image = Resources.ledGreen;
                }
                else if (!this.DbStatus && ledDB.Image != Resources.ledRed)
                {
                    ledDB.Image = Resources.ledRed;
                }


                txtDiametro.Text = this.ReadStatus ? this.Diametro.ToString("0.000") : "####";

                #region Classificação
                if (this.ReadStatus)
                {
                    Classificacoes.Classificacao classificacao = this.Classe.GetClassificacao(this.Diametro);

                    switch (classificacao)
                    {
                    case Classificacoes.Classificacao.Conforme:
                        txtClassificacao.Text      = "Conforme";
                        txtClassificacao.ForeColor = Color.LimeGreen;
                        break;

                    case Classificacoes.Classificacao.Classe2:
                        txtClassificacao.Text      = "Classe 2";
                        txtClassificacao.ForeColor = Color.Yellow;
                        break;

                    case Classificacoes.Classificacao.Classe3:
                        txtClassificacao.Text      = "Classe 3";
                        txtClassificacao.ForeColor = Color.OrangeRed;
                        break;

                    case Classificacoes.Classificacao.NaoConforme:
                        txtClassificacao.Text      = "Não Conforme";
                        txtClassificacao.ForeColor = Color.Red;
                        break;

                    default:
                        txtClassificacao.Text      = "----";
                        txtClassificacao.ForeColor = Color.White;
                        break;
                    }

                    if (classificacao != Classificacoes.Classificacao.Conforme)
                    {
                        if (classificacao != this.lastClass)
                        {
                            if (dgvPoints.RowCount == this.DgvSpRows)
                            {
                                dgvPoints.Rows.RemoveAt(this.DgvSpRows - 1);
                            }

                            dgvPoints.Rows.Insert(0, this.Diametro.ToString("0.000"),
                                                  DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"),
                                                  txtClassificacao.Text);

                            dgvPoints.Rows[0].DefaultCellStyle.BackColor = txtClassificacao.ForeColor;

                            //     dgvPoints.Rows[dgvPoints.RowCount - 1].DefaultCellStyle.BackColor = txtClassificacao.ForeColor;

                            dgvPoints.ClearSelection();
                        }

                        this.lastClass = classificacao;
                    }
                }
                else
                {
                    txtClassificacao.ForeColor = txtDiametro.ForeColor = Color.White;
                    txtClassificacao.Text      = "####";
                }
                #endregion


                if (tabControl1.SelectedIndex == 1 && this.points.Count > 0)
                {
                    lock (this.lockPoints)
                    {
                        this.UpdateValueTextbox(lblMedia, this.points.Select(x => x.Value).Average());
                        this.UpdateValueTextbox(lblMin, this.points.Select(x => x.Value).Min());
                        this.UpdateValueTextbox(lblMax, this.points.Select(x => x.Value).Max());

                        lblTempoComm.Text      = this.TotalTime.ToString() + " ms";
                        lblTempoComm.ForeColor = this.TotalReadTime < 250 ? Color.LimeGreen : Color.Red;

                        int pointsNC = this.points.Count(x => x.Classe != Classificacoes.Classificacao.Conforme);

                        lblNumPontosNC.Text = pointsNC.ToString();

                        if (pointsNC > 0 && pointsNC < this.Classe.MaxPontosNC)
                        {
                            lblNumPontosNC.ForeColor = Color.Orange;
                        }
                        else if (pointsNC >= this.Classe.MaxPontosNC)
                        {
                            lblNumPontosNC.ForeColor = Color.Red;
                        }
                        else
                        {
                            lblNumPontosNC.ForeColor = Color.White;
                        }

                        dgvHistLastPoints.Rows.Clear();


                        foreach (DataPoint point in this.points)
                        {
                            dgvHistLastPoints.Rows.Add(point.Value.ToString("0.000"),
                                                       point.DataHora.ToString("dd/MM/yyyy HH:mm:ss"));

                            dgvHistLastPoints.Rows[dgvHistLastPoints.RowCount - 1].DefaultCellStyle.BackColor = this.GetClassColor(point.Classe);

                            if (dgvHistLastPoints.RowCount == this.DgvSpRows)
                            {
                                break;
                            }
                        }
                    }
                }
                else
                {
                    dgvHistLastPoints.Rows.Clear();

                    lblMedia.Text      = lblMin.Text = lblMax.Text = lblTempoComm.Text = lblNumPontosNC.Text = "---";
                    lblMedia.ForeColor = lblMin.ForeColor = lblMax.ForeColor = lblTempoComm.ForeColor = lblNumPontosNC.ForeColor = Color.White;
                }

                this.timerFpError = false;
            }
            catch (Exception ex)
            {
                Debug.WriteLine("timer1_Tick(): " + ex.Message);

                if (!this.timerFpError)
                {
                    this.AdicionaLog("timer1_Tick(): " + ex.Message);
                }

                this.timerFpError = true;
            }
        }