Skip to content

ifsc-lased/libpdafusb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub license Ubuntu macOS Windows

Aviso de isenção de responsabilidade

O código presente nesse repositório está sendo disponibilizado publicamente para demonstrar uma forma de implementar, na linguagem C++, o protocolo PDAF-USB de acordo com a Especificação Técnica de Requisitos do Dispositivo Autorizador Fiscal (DAF) - revisão 3.0.0. Contudo, o código não foi amplamente testado e validado de forma a garantir um funcionamento correto, confiável e seguro. Sendo assim, o código aqui disponibilizado não deve ser considerado como uma implementação de referência para o PDAF-USB.

Não cabe à SEF ou ao IFSC prestar suporte sobre os componentes, códigos ou excertos de código disponíveis nesse repositório, sendo a presente versão considerada final, sem previsão de alterações, correção de bugs ou melhorias.

A SEF e o IFSC eximem-se de qualquer responsabilidade, direta ou indireta, por perdas ou danos, comprovadamente ou alegadamente, causados pelo código aqui disponibilizado. Caso deseje usar essa biblioteca em seu projeto ou produto, você estará fazendo isto exclusivamente por sua conta e risco.

Biblioteca PDAF-USB em C++

Biblioteca desenvolvida na linguagem C++ que implementa o protocolo PDAF-USB de acordo com a Especificação Técnica de Requisitos do Dispositivo Autorizador Fiscal (DAF) - revisão 3.0.0. A biblioteca possui dependência da biblioteca padrão do C++ e da biblioteca Asio. Assim, é possível usá-la em aplicações desenvolvidas para os sistemas operacionais Linux, macOS ou Windows (com os compiladores MinGW ou MSVC).

No diretório exemplo deste repositório tem-se uma aplicação para demonstrar o uso dessa biblioteca. A aplicação permite enviar pedidos da API DAF que dependem dos comandos de transporte do protocolo PDAF-USB enviarMensagem ou enviarBinario (veja Seção 6.2 da Especificação Técnica de Requisitos do DAF - revisão 3.0.0).

Ferramentas e bibliotecas necessárias para compilação

  • Git
  • CMake 3.14 ou superior
  • Compilador C++11 (i.e. g++, msvc, clang)

Como compilar e instalar

  1. Baixar o código presente neste repositório:
    git clone https://github.com/ifsc-lased/libpdafusb.git
    cd libpdafusb
  2. Gerar o sistema de construção (i.e. Makefile)
    • No Linux ou macOS:
    cmake -S . -B build
    cmake -S . -B build -G "MinGW Makefiles"
  3. Compilar a biblioteca e a aplicação exemplo (veja as funcionalidades da aplicação aqui)
    cmake --build build
    • Serão gerados os seguintes arquivos:
      • Biblioteca estática (archive)
        • No Linux ou macOS:
          • build/src/libpdafusb.a
        • No Windows:
          • build\src\libpdafusb.a
      • Aplicação exemplo para interagir com um DAF
        • No Linux ou macOS:
          • build/exemplo/app-exemplo
        • No Windows:
          • build\exemplo\app-exemplo.exe

Como instalar a biblioteca

Caso queira instalar a biblioteca, bem como os seus respectivos os arquivos de cabeçalho, faça:

cmake --install build --strip --config Release

Como fazer uso desta biblioteca no seu projeto

Se está escrevendo um projeto com CMake, é possível baixar e usar esta biblioteca por meio do FetchContent. Inclua as linhas abaixo dentro do arquivo CMakeLists.txt do seu projeto:

include(FetchContent)

FetchContent_Declare(pdafusb
    GIT_REPOSITORY https://github.com/ifsc-lased/libpdafusb.git
    GIT_TAG 0.1.0
)

FetchContent_MakeAvailable(pdafusb)

# considerando que appexemplo é o nome do alvo (target)
target_link_libraries(appexemplo PRIVATE pdafusb)

Caso no seu projeto você não faça uso do CMake, ainda assim é possível usar essa biblioteca, porém terá que copiar manualmente os arquivos presentes nesse repositório.

Dependências e bibliotecas de terceiros

Biblioteca Uso Licença
Asio C++ Library Para comunicação assíncrona Boost Software License 1.0