private void ThreadLoop()
        {
            points = new Calc_Points();
            DateTime datahora_atual = DateTime.MinValue;
            bool     started        = false;

            while (true)
            {
                DadosMemory memory = Simulation.Memory.Get();

                var Dados_A = Simulation.Input.Termostato_A();
                var Dados_D = Simulation.Input.Termostato_D();
                var Dados_E = Simulation.Input.Termostato_E();
                var Dados_G = Simulation.Input.Termostato_G();

                if (memory.dmDateTime.DataHora.Hour == 0 && memory.dmDateTime.DataHora.Minute == 0 && memory.dmDateTime.DataHora.Second > 0 && !started)
                {
                    started = true;
                }
                else if (memory.dmDateTime.DataHora.Hour == 23 && memory.dmDateTime.DataHora.Minute == 59 && memory.dmDateTime.DataHora.Second > 0 && started)
                {
                    started = false;
                    break;
                }

                if (started == true)
                {
                    if (memory.dmDateTime.DataHora >= datahora_atual.AddSeconds(86.4)) // 1000 pontos de dados colhidos 1 dia
                    {
                        datahora_atual = memory.dmDateTime.DataHora;

                        points.points.Add(new DataSensors
                        {
                            TempA = Dados_A.TemperaturaReal,
                            SetA  = Dados_A.SetPointReal,

                            TempD = Dados_D.TemperaturaReal,
                            SetD  = Dados_D.SetPointReal,

                            TempE = Dados_E.TemperaturaReal,
                            SetE  = Dados_E.SetPointReal,

                            TempG = Dados_G.TemperaturaReal,
                            SetG  = Dados_G.SetPointReal
                        });

                        points.WattsTotal = memory.dmEnergia.gastoAtual;

                        this.SetText(points.points.Count.ToString());
                    }
                }
            }
            points.Processa();
            SetText($"\n Pontos: {points.points.Count} " +
                    $"\n MEDIA: A:  {points.media_comodo_A} | D: {points.media_comodo_D} | E: {points.media_comodo_E} | G: {points.media_comodo_G} " +
                    $"\n Desvio Maior: A:  {points.maiordesvio_comodo_A} | D: {points.maiordesvio_comodo_D} | E: {points.maiordesvio_comodo_E} | G: {points.maiordesvio_comodo_G} ");
        }
コード例 #2
0
 public void Dispose()
 {
     _last_dm       = null;
     _dateTimeHouse = DateTime.MinValue;
 }
コード例 #3
0
        public DadosMemory Get(int milisegundosIntervalo = 100)
        {
            bool datacorrect = false;

            do
            {
                //update dos registros
                MemoryMap.Instance.Update();
                //verificacao de validacao de dados vindos do simulador
                if (MemoryMap.Instance.UpdateElapsedTime == 0)
                {
                    continue;
                }
                else
                {
                    datacorrect = true;
                }

                //dados memory
                MemoryDateTime datahora = MemoryMap.Instance.GetDateTime(65, MemoryType.Memory);
                _dateTimeHouse = datahora.Value;

                if (_last_dm == null || _last_dm.dmDateTime.DataHora.AddMilliseconds(milisegundosIntervalo) <= DateTimeHouse)
                {
                    MemoryFloat latitude    = MemoryMap.Instance.GetFloat(130, MemoryType.Memory);
                    MemoryFloat longitude   = MemoryMap.Instance.GetFloat(131, MemoryType.Memory);
                    MemoryFloat temperatura = MemoryMap.Instance.GetFloat(132, MemoryType.Memory);
                    MemoryFloat humidade    = MemoryMap.Instance.GetFloat(133, MemoryType.Memory);
                    MemoryFloat tempmin     = MemoryMap.Instance.GetFloat(134, MemoryType.Memory);
                    MemoryFloat tempmax     = MemoryMap.Instance.GetFloat(135, MemoryType.Memory);
                    MemoryFloat dewpoint    = MemoryMap.Instance.GetFloat(136, MemoryType.Memory);
                    MemoryFloat windms      = MemoryMap.Instance.GetFloat(137, MemoryType.Memory);
                    MemoryFloat cloudiness  = MemoryMap.Instance.GetFloat(138, MemoryType.Memory);

                    MemoryFloat energiaatual = MemoryMap.Instance.GetFloat(141, MemoryType.Memory);

                    MemoryFloat tempA = MemoryMap.Instance.GetFloat(150, MemoryType.Memory);
                    MemoryFloat tempB = MemoryMap.Instance.GetFloat(151, MemoryType.Memory);
                    MemoryFloat tempC = MemoryMap.Instance.GetFloat(152, MemoryType.Memory);
                    MemoryFloat tempD = MemoryMap.Instance.GetFloat(153, MemoryType.Memory);
                    MemoryFloat tempE = MemoryMap.Instance.GetFloat(154, MemoryType.Memory);
                    MemoryFloat tempF = MemoryMap.Instance.GetFloat(155, MemoryType.Memory);
                    MemoryFloat tempG = MemoryMap.Instance.GetFloat(156, MemoryType.Memory);
                    MemoryFloat tempH = MemoryMap.Instance.GetFloat(157, MemoryType.Memory);
                    MemoryFloat tempI = MemoryMap.Instance.GetFloat(158, MemoryType.Memory);
                    MemoryFloat tempJ = MemoryMap.Instance.GetFloat(159, MemoryType.Memory);
                    MemoryFloat tempK = MemoryMap.Instance.GetFloat(160, MemoryType.Memory);
                    MemoryFloat tempL = MemoryMap.Instance.GetFloat(161, MemoryType.Memory);
                    MemoryFloat tempM = MemoryMap.Instance.GetFloat(162, MemoryType.Memory);
                    MemoryFloat tempN = MemoryMap.Instance.GetFloat(163, MemoryType.Memory);

                    DadosMemoryDateTime    m_datetime    = FactoryDateTime.UpdateValueDateTime(datahora.Value);
                    DadosMemoryClima       m_clima       = FactoryClima.UpdateValueClima(latitude.Value, longitude.Value, temperatura.Value, humidade.Value, tempmin.Value, tempmax.Value, dewpoint.Value, windms.Value, cloudiness.Value);
                    DadosMemoryEnergia     m_energia     = FactoryEnergia.UpdateValueEnergia(energiaatual.Value);
                    DadosMemoryTemperatura m_temperatura = FactoryTemperatura.UpdateValueTemperatura(tempA.Value, tempB.Value, tempC.Value, tempD.Value, tempE.Value, tempF.Value, tempG.Value, tempH.Value, tempI.Value, tempJ.Value, tempK.Value, tempL.Value, tempM.Value, tempN.Value);

                    DadosMemory dm = new DadosMemory(m_datetime, m_clima, m_energia, m_temperatura);
                    _last_dm = dm;
                    return(dm);
                }
            }while (datacorrect == false);
            return(_last_dm);
        }