public static void MonitoraRede(Parametros objParametros, string wrkPath, Saidas wrkSaidas, FEZ_Components.LED ledPrincipal) { while (true) { //Defini o tempo de intervalo entre cada execução var timeout = DateTime.Now.AddSeconds(5); //5 segundos entre cada ping try { //Efetua ping e verifica retorno //if () //Desliga primeira tomada //... //Aguarda 10 segundos e religa a tomada //... //Aguarda 1 minuto para ativar conexão //... } catch (Exception ex) { ledPrincipal.StartBlinking(500, 500); //Grava log: Funcoes.EscreverLog(wrkPath, "Erro de exceção ocorrido: " + ex, 1, false); } //Espera o tempo de leitura entre cada mensagem while (DateTime.Now < timeout) { System.Threading.Thread.Sleep(500); //0,5 segundo } } }
public static void MonitoraTwitter(Parametros objParametros, string wrkPath, Saidas wrkSaidas, FEZ_Components.LED ledPrincipal) { while (true) { //Defini o tempo de intervalo entre cada execução var timeout = DateTime.Now.AddSeconds(objParametros.Intervalo); try { //Busca lista de mensagens var mensagens = Mensagem.BuscaMensagensDiretas(objParametros.UltimaMsgId, objParametros.Token, objParametros.TokenSecret); //Instancia comando var wrkComando = new Comando(wrkPath); if (wrkComando.PercorreMensagens(mensagens, wrkSaidas, objParametros.Token, objParametros.TokenSecret, objParametros.ClasseIp) == "close") { //Finalizar aplicação objParametros.UltimaMsgId = Parametros.ObtemUltimaMsgId(wrkPath); break; } objParametros.UltimaMsgId = Parametros.ObtemUltimaMsgId(wrkPath); } catch (Exception ex) { ledPrincipal.StartBlinking(500, 500); //Grava log: Funcoes.EscreverLog(wrkPath, "Erro de exceção ocorrido: " + ex, 1, false); } //Espera o tempo de leitura entre cada mensagem while (DateTime.Now < timeout) { System.Threading.Thread.Sleep(500); //0,5 segundo } } }
public static void Main() { //Acende Led principal var ledPrincipal = new FEZ_Components.LED(FEZ_Pin.Digital.LED); ledPrincipal.TurnOn(); PersistentStorage wrkSd = null; try { //Inicia relés / saidas digitais var wrkSaidas = new Saidas(); //Monta diretórios do Cartão SD wrkSd = new PersistentStorage("SD"); wrkSd.MountFileSystem(); var wrkPath = GetRootFolder(); //---------------------------- Funcoes.EscreverLog(wrkPath, "Sistema Inicializado.", 0, true); //Busca os parametros do sistema var objParametros = Parametros.BuscaParametros(wrkPath); var executa = 1; if (executa > 1) { //string ip = "10.1.1.9"; //string subnet = "255.0.0.0"; //string gateway = "10.1.1.1"; //string mac = "00:19:5B:04:36:20"; //string dns = "10.1.1.1"; // Connect using Static IP address EthernetW5100.Initialize(objParametros.ClasseIp.EnderecoIp, objParametros.ClasseIp.MascaraIp, objParametros.ClasseIp.GatewayIp, objParametros.ClasseIp.EnderecoMacGateway, objParametros.ClasseIp.Dns); // Connect using new dhcp option //EthernetW5100.Initialize(mac); //Inicia monitoramento da rede interna //IniciaThreads(); //Iniciar monitoramento pelo Twitter //MonitoraTwitter(objParametros, wrkPath, wrkSaidas, ledPrincipal) //while (true) //{ // executa = 0; // if (executa > 0) // EscutaRequisicao(); //} } //Desliga o led principal ledPrincipal.ShutOff(); } catch (Exception ex) { ledPrincipal.StartBlinking(500, 500); } finally { //Libera controle SD if (wrkSd != null) { wrkSd.UnmountFileSystem(); } } }