// Funcao responsavel por adicionar a TAG no dicionario da sala para qual a TAG fez a transicao public static void transicaoADD(string EPC, int sala_atual, Tags_TG tag) { switch (sala_atual) { case 0: GlobalData.DictAmbienteExterno.Add(EPC, tag); tag.Ambiente = 0; break; case 1: GlobalData.DictSalaPrincipal.Add(EPC, tag); tag.Ambiente = 1; break; case 2: GlobalData.DictSalaReunioes.Add(EPC, tag); tag.Ambiente = 2; break; case 3: GlobalData.DictCorredorBaias.Add(EPC, tag); tag.Ambiente = 3; break; } }
// Funcao responsavel por adicionar a TAG no dicionario da sala para qual a TAG fez a transicao public static void transicaoADD(string EPC, int sala_atual, Tags_TG tag) { switch (sala_atual) { case 0: GlobalData.DictAmbienteExterno.Add(EPC, tag); tag.Ambiente = 0; break; case 1: GlobalData.DictSalaPrincipal.Add(EPC, tag); tag.Ambiente = 1; if (GlobalData.DictSalaPrincipal.Count > 2 && GlobalData.AcionamtSalaPrincipal == 0) { Console.WriteLine("\n*Acionamento do ventilador na Sala Principal*\n"); GlobalData.AcionamtSalaPrincipal = 1; SerialCom.Controle_Ar("Sala Principal"); } break; case 2: GlobalData.DictSalaReunioes.Add(EPC, tag); tag.Ambiente = 2; if (GlobalData.DictSalaReunioes.Count > 2 && GlobalData.AcionamtSalaReunioes == 0) { Console.WriteLine("\n*Acionamento do ventilador na Sala de Reunioes*\n"); GlobalData.AcionamtSalaReunioes = 1; SerialCom.Controle_Ar("Sala Reuniões"); } break; case 3: GlobalData.DictCorredorBaias.Add(EPC, tag); tag.Ambiente = 3; if (GlobalData.DictCorredorBaias.Count > 2 && GlobalData.AcionamtCorredorBaias == 0) { Console.WriteLine("\n*Acionamento do ventilador no Corredor de Baias*\n"); GlobalData.AcionamtCorredorBaias = 1; SerialCom.Controle_Ar("Corredor de Baias"); } break; default: Console.Write("Caso não identificado"); break; } }
// Faz a transicao dos ambientes de uma tag, dependendo da variavel "passagem" e da leitora que leu public static void transicao_sala(string leitora, string tag_epc, bool passagem, string nome, Tags_TG tag) { switch (leitora) { case "SpeedwayR-10-9F-C8.local": if (passagem == true) { GlobalData.tag_sala[tag_epc] = ConstantesAmbiente.SalaPrincipal; TransicaoTags.transicaoRemove(tag_epc, tag.Ambiente); TransicaoTags.transicaoADD(tag_epc, 1, tag); Console.WriteLine("{0} realizou uma transicao para a Sala Principal", nome); TransicaoTags.DisplayAmbientes(); } else { GlobalData.tag_sala[tag_epc] = ConstantesAmbiente.AmbienteExterno; TransicaoTags.transicaoRemove(tag_epc, tag.Ambiente); TransicaoTags.transicaoADD(tag_epc, 0, tag); Console.WriteLine("{0} realizou uma transicao para o Ambiente Externo", nome); TransicaoTags.DisplayAmbientes(); } break; case "SpeedwayR-10-9F-3F.local": if (passagem == true) { GlobalData.tag_sala[tag_epc] = ConstantesAmbiente.SalaDeReunioes; TransicaoTags.transicaoRemove(tag_epc, tag.Ambiente); TransicaoTags.transicaoADD(tag_epc, 2, tag); Console.WriteLine("{0} realizou uma transicao para a Sala De Reuniões", nome); TransicaoTags.DisplayAmbientes(); } else { GlobalData.tag_sala[tag_epc] = ConstantesAmbiente.SalaPrincipal; TransicaoTags.transicaoRemove(tag_epc, tag.Ambiente); TransicaoTags.transicaoADD(tag_epc, 1, tag); Console.WriteLine("{0} realizou uma transicao para a Sala Principal", nome); TransicaoTags.DisplayAmbientes(); } break; case "SpeedwayR-10-9F-BB.local": if (passagem == true) { GlobalData.tag_sala[tag_epc] = ConstantesAmbiente.CorredorDeBaias; TransicaoTags.transicaoRemove(tag_epc, tag.Ambiente); TransicaoTags.transicaoADD(tag_epc, 3, tag); Console.WriteLine("{0} realizou uma transicao para o Corredor De Baias", nome); TransicaoTags.DisplayAmbientes(); } else { GlobalData.tag_sala[tag_epc] = ConstantesAmbiente.SalaPrincipal; TransicaoTags.transicaoRemove(tag_epc, tag.Ambiente); TransicaoTags.transicaoADD(tag_epc, 1, tag); Console.WriteLine("{0} realizou uma transicao para a Sala Principal", nome); TransicaoTags.DisplayAmbientes(); } break; default: Console.Write("Caso não identificado"); break; } }
// Funcao que faz o descarte dos reports durante 2 segundos. // Seta TAGsReportsON para zero e faz com que AnalisaDadosTAGs // descarte os reports durante 2 segundos, depois seta para 1 de novo. public static void DescartaReport(Tags_TG tag) { tag.ReportON = false; Thread.Sleep(2000); tag.ReportON = true; }