예제 #1
0
        public async Task <(bool, string)> HabilitaForno(int Posicao)
        {
            string tagName     = string.Empty;
            string workStation = _configuration["WorkStation"];

            if (Posicao == 1)
            {
                tagName = _configuration["HabilitaForno1"];
            }
            else if (Posicao == 2)
            {
                tagName = _configuration["HabilitaForno2"];
            }
            else
            {
                return(false, "Não encontrado forno nesta posição");
            }

            var tagValue = await _interleverDb.Read(tagName);

            var tagNewValue = WriteBit(Convert.ToInt32(tagValue), 3).ToString();

            if (!await _interleverDb.Write(tagNewValue, tagName, workStation))
            {
                return(false, "Erro ao tentar escrever no banco de dados");
            }

            return(true, string.Empty);
        }
예제 #2
0
        public async Task <IActionResult> Get(string tag)
        {
            Console.WriteLine();
            Console.WriteLine("Tag = " + tag);
            Console.WriteLine();
            var value = new{
                value = await interlevelDb.Read(tag)
            };

            return(Ok(value));
        }
예제 #3
0
        public async Task <(bool, string)> ReadTags()
        {
            string   numeroRolo     = "";
            string   numeroOP       = "";
            string   numeroCodTira  = "";
            DateTime dateMonitoring = DateTime.Now;
            // faz get nas tags de input
            var tagsInput = await _otherApi.GetTagList("input");

            //Faz get dos alarm
            var thingAlarms = await _otherApi.GetAlarm();

            //Faz get da tag com o número do rolo
            var tagRolo = await _otherApi.GetTag(Convert.ToInt32(_configuration["IdTagRolo"]));

            if (tagRolo != null)
            {
                numeroRolo = await _interlevelDb.Read(tagRolo.physicalTag);
            }
            //Faz get da tag com o número da OP
            var tagOP = await _otherApi.GetTag(Convert.ToInt32(_configuration["IdTagOP"]));

            if (tagOP != null)
            {
                numeroOP = await _interlevelDb.Read(tagOP.physicalTag);
            }
            //Faz get da tag com o código da Tira
            var tagCodTira = await _otherApi.GetTag(Convert.ToInt32(_configuration["IdTagCodTira"]));

            if (tagCodTira != null)
            {
                numeroCodTira = await _interlevelDb.Read(tagCodTira.physicalTag);
            }



            foreach (var tag in tagsInput)
            {
                foreach (var thingId in tag.thingGroup.thingsIds)
                {
                    DateTime dt = DateTime.Now;
                    // Verifica se a thing existe na lista..... se não existir faz get e adiciona na lista
                    //Console.WriteLine("antes thing" + new TimeSpan((DateTime.Now - dt).Ticks).TotalMilliseconds.ToString());
                    var thing = ReturnThing(thingId);
                    if (thing == null)
                    {
                        Console.WriteLine("");
                        Console.WriteLine("");
                        Console.WriteLine("");
                        Console.WriteLine("Retornou não encontrado thing");
                        Console.WriteLine("");
                        Console.WriteLine("");
                        Console.WriteLine("");
                        return(false, "Thing não encontrada. Thing Id = " + thingId.ToString());
                    }
                    //Console.WriteLine("depois thing" + new TimeSpan((DateTime.Now - dt).Ticks).TotalMilliseconds.ToString());
                    var valueTag = await _interlevelDb.Read(tag.physicalTag);

                    //Console.WriteLine("depois select" + new TimeSpan((DateTime.Now - dt).Ticks).TotalMilliseconds.ToString());
                    var tagHistorian = new {
                        thingId = thingId,
                        tag     = tag.tagName,
                        value   = valueTag,
                        group   = tag.tagGroup,
                        date    = dateMonitoring.Ticks
                    };
                    //Console.WriteLine("antes post" + new TimeSpan((DateTime.Now - dt).Ticks).TotalMilliseconds.ToString());
                    var post = await _otherApi.PostHistorian(tagHistorian);

                    Console.WriteLine("depois post" + new TimeSpan((DateTime.Now - dt).Ticks).TotalMilliseconds.ToString());
                    var tagHistorianRolo = new {
                        thingId = thingId,
                        tag     = "rolo",
                        value   = numeroRolo,
                        group   = "Linha",
                        date    = dateMonitoring.Ticks
                    };

                    var postNumRolo = await _otherApi.PostHistorian(tagHistorianRolo);

                    var tagHistorianOP = new {
                        thingId = thingId,
                        tag     = "ordem",
                        value   = numeroOP,
                        group   = "Linha",
                        date    = dateMonitoring.Ticks
                    };

                    var postNumOp = await _otherApi.PostHistorian(tagHistorianOP);

                    var tagHistorianCodTira = new {
                        thingId = thingId,
                        tag     = "codTira",
                        value   = numeroCodTira,
                        group   = "Linha",
                        date    = dateMonitoring.Ticks
                    };

                    var postCodTira = await _otherApi.PostHistorian(tagHistorianCodTira);
                }
            }



            foreach (var thingAlarm in thingAlarms)
            {
                foreach (var alarm in thingAlarm.alarms)
                {
                    var tagHistorian = new {
                        thingId = alarm.thingId,
                        tag     = alarm.alarmName,
                        value   = alarm.alarmDescription,
                        group   = "Alarme",
                        date    = dateMonitoring.Ticks
                    };

                    var post = _otherApi.PostHistorian(tagHistorian);
                }
            }


            return(true, string.Empty);
        }