3 ‐ Biblioteca do Dispositivo - carolsbraz/Hands-On-Final GitHub Wiki
A comunicação entre a biblioteca e o módulo será feita usando os arquivos "trigg" e "pass", dentro do diretório /sys/kernel/nfcunlock. A seguir detalha-se a função dos dois arquivos criados pelo módulo do kernel e que serão acessados pela biblioteca:
- "trigg": Aqui será setado um valor que será enviado para o firmware. Caso valor seja 1, ele deve iniciar e esperar a leitura do cartão.
- "pass": É onde será gravado o valor da senha lida no cartão.
A biblioteca consistirá de uma única classe em C++ chamada nfcunlock. Esta classe pertencerá ao namespace devtitans::nfcunlock. A seguir, é detalhada a API pública da biblioteca (i.e., a interface dos métodos da classe):
int connect()
Verifica se o diretório /sys/kernel/nfcunlock existe. Se existir, o dispositivo está conectado via USB. Caso contrário, verifica a propriedade devtitans.smartlamp.allow_simulated para ver se valores simulados podem ser usados. Caso a propriedade seja true (padrão) e o dispositivo não esteja conectado, valores simulados serão usados, permitindo usar a biblioteca mesmo sem acesso a um dispositivo físico. Esse método retorna: 0: dispositivo não encontrado 1: sucesso
int getPass()
Seta o trigger para 1 avisando que deve iniciar a leitura, então espera por 30 segundos e lê o valor no arquivo /pass. Retorna o valor de 4 dígitos lido pelo hardware.
bool setTrigg(int trigg)
Esse é o trigger para inciar leitura, o executar esse método, o trigger é disparado no arquivo /trigg para avisar o driver se que está se esperando a leitura do cartão. Valor retornado/setado:
- 1: inicia a leitura
Responsável: Caroline Soares Braz