/// <summary> /// Adiciona uma função para ser chamada quando algum evento do tipo <see cref="TipoEvento"/> acorrer /// </summary> /// <param name="tratador">função a ser chamada</param> /// <returns>verdadeiro caso o evento seja adicionado</returns> public static bool AdicionarEvento(TratadorEvento tratador) { if (Acura.Conectada()) { MifareReader.OnReaderEventEventHandler handler = delegate(MifareReader.iReaderEventConstants iReaderEvent) { TipoEvento tipo; switch (iReaderEvent) { case MifareReader.iReaderEventConstants.READER_CARD_PRESENT: tipo = TipoEvento.CartaoPosicionado; break; case MifareReader.iReaderEventConstants.READER_CARD_REMOVE: tipo = TipoEvento.CartaoRetirado; break; case MifareReader.iReaderEventConstants.READER_KEY_PRESS: tipo = TipoEvento.BotaoPressionado; break; default: tipo = TipoEvento.Desconhecido; break; } tratador(tipo); }; mf.OnReaderEvent += handler; EventosCadastrados.Add(handler); return(true); } return(false); }
/// <summary> /// Prepara um cartão mifare em branco (de fábrica) para ser utilizado pelo sistema /// </summary> /// <returns>verdadeiro em caso de sucesso</returns> public static bool PrepararCartaoVirgem() { if (Acura.Conectada()) { if (Acura.Autenticar_Virgem()) { bool sucesso = mf.mfAccessCondition(ChaveLeitura, ChaveEscrita, 7, 1, 7, 4); // , 125 mf.mfAutoMode(true); return(sucesso); } } mf.mfAutoMode(true); return(false); }
private static bool Conectar(ushort porta) { // se a Acura já estiver conectada a essa porta, retorna if (mf.CommPort == porta && Acura.Conectada()) { return(true); } else { // por precaução se a porta estiver aberta, fechamos Acura.Desconectar(); } // configura a biblioteca para funcionar com a Acura mf.Settings = "19200,N,8,1"; mf.CommPort = (short)porta; mf.mfAutoMode(true); // tenta a conexão mf.PortOpen = true; // verifica se conseguiu return(Acura.Conectada()); }