示例#1
0
        public override bool sendDataHora(int Terminal)
        {
            base.sendDataHora(Terminal);

            if (Connect(Terminal))
            {
                LogManager logManager = LogManager.getInstance();
                logManager.ocultarBytesCriptografados    = false;
                logManager.ocultarBytesDescriptografados = false;
                EnviaDataHora   enviaDataHora = new EnviaDataHora();
                FlagErroComando resultado     = enviaDataHora.execute(TerminalDados.IP, TerminalDados.Porta.ToString(), TerminalDados.AutenticacaoCpf, TerminalDados.Pin, ref logManager);//TerminalDados.Pin);
                logManager.resultados.Add(resultado.getMensagem() + "(Código: " + resultado.getErroStrHex() + ")");
                foreach (string r in logManager.resultados)
                {
                    log.AddLog(r);
                }
                return(true);
            }
            else
            {
                Disconnect(Terminal);
                log.AddLog("SERVIDOR OFFLINE");
                log.AddLineBreak();
                return(false);
            }
        }
        public FlagErroComando execute(String ip, String porta, String cpf, String hash, ref LogManager logManager)
        {
            FlagErroComando flagErroComando = new FlagErroComando();
            Tcp             tcp             = null;

            try
            {
                tcp = new Tcp(ip, Convert.ToInt32(porta));
            }
            catch {
                flagErroComando.setErro(FlagErroComando.COMUNICACAO_NAO_ESTABELECIDA);
                return(flagErroComando);
            }

            byte[] buffer = criarPacoteCabecalho(CodigosComandos.START_PC, CodigosComandos.ENVIAR_DATA_HORA,
                                                 ProtocoloUtils.data(), ProtocoloUtils.horario(), Conversor.cpfToByte(cpf), (byte)0x00, CodigosComandos.END);

            //0A 00 00 00 00 91 00 18 B7 E1 00 36 04 0F 00 02 96 46 19 C7 00 E4 40

            try
            {
                enviaBuffer(buffer, true, tcp, hash, ref logManager);
                try
                {
                    // Lê resposta do REP
                    byte[] respostaREP       = lerResposta(tcp, Protocolo.QTD_BYTES_CABECALHO_CRIPTOGRAFADO, hash, ref logManager);
                    int    qtdBytesRecebidos = -1;
                    if (respostaREP != null)
                    {
                        qtdBytesRecebidos = respostaREP.Length;
                    }
                    // Trata a resposta do REP
                    flagErroComando = tratarResposta(CodigosComandos.ENVIAR_DATA_HORA, respostaREP, qtdBytesRecebidos, Protocolo.QTD_BYTES_CABECALHO_CRIPTOGRAFADO);
                }
                catch (Exception e)
                {
                    throw e;
                }
                tcp.finalizaConexao();
            }
            catch (Exception e)
            {
                flagErroComando.setErro(FlagErroComando.OCORREU_EXCECAO);
                throw e;
            }
            return(flagErroComando);
        }