예제 #1
0
        public static bool DefinirIndices(string pIp, int pPort, short pIndice)
        {
            byte[] retorno = null;
            Funcao objFuncao = new Funcao();

            retorno = Conexao.Enviar(pIp, pPort, objFuncao.LerValidarIndice(pIndice));

            if (!objFuncao.VerificaCodFuncaoRetorno(retorno))
                Conexao.Enviar(pIp, pPort, objFuncao.FrameDeErro());

            //ValidaCheckSum
            if (!objFuncao.ValidarCheckSumRetorno(retorno))
                //Se um lado receber um frame com o checksum errado, ele deve enviar um frame de Erro
                Conexao.Enviar(pIp, pPort, objFuncao.FrameDeErro());

            //Verifica Frame de Erro
            if (objFuncao.VerificaFrameDeErro(retorno))
                // Se um lado receber um frame de Erro, ele deve reenviar o último frame enviado
                retorno = Conexao.Enviar(pIp, pPort, objFuncao.LerNumeroSerie());

            //Verifica Tamanho do Frame
            if (!objFuncao.ValidarTamanhoMensagemRetorno(retorno))
                // Se um lado receber um frame com dados com tamanho inesperado ou com formato inválido, ele deve enviar um frame de erro
                Conexao.Enviar(pIp, pPort, objFuncao.FrameDeErro());

            if (!objFuncao.VerificaSucesso(retorno))
                return false;

            if (!objFuncao.ValidarRetornoRegistroPorIndices(retorno))
                return false;

            return true;
        }
예제 #2
0
        public static DateTime? ObterDataHora(string pIp, int pPort)
        {
            byte[] retorno = null;
            Funcao objFuncao = new Funcao();

            retorno = Conexao.Enviar(pIp, pPort, objFuncao.LerRegistroDataHora());

            if (!objFuncao.VerificaCodFuncaoRetorno(retorno))
                Conexao.Enviar(pIp, pPort, objFuncao.FrameDeErro());

            //ValidaCheckSum
            if (!objFuncao.ValidarCheckSumRetorno(retorno))
                //Se um lado receber um frame com o checksum errado, ele deve enviar um frame de Erro
                Conexao.Enviar(pIp, pPort, objFuncao.FrameDeErro());

            //Verifica Frame de Erro
            if (objFuncao.VerificaFrameDeErro(retorno))
                // Se um lado receber um frame de Erro, ele deve reenviar o último frame enviado
                retorno = Conexao.Enviar(pIp, pPort, objFuncao.LerNumeroSerie());

            //Verifica Tamanho do Frame
            if (!objFuncao.ValidarTamanhoMensagemRetorno(retorno))
                // Se um lado receber um frame com dados com tamanho inesperado ou com formato inválido, ele deve enviar um frame de erro
                Conexao.Enviar(pIp, pPort, objFuncao.FrameDeErro());

            return objFuncao.ObterRetornoDataHora(retorno);
        }