Пример #1
0
        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
                }
            }
        }
Пример #2
0
        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
                }
            }
        }
Пример #3
0
        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();
                }
            }
        }