Skip to content

RGNagel/lib-NBR14522

Folders and files

NameName
Last commit message
Last commit date

Latest commit

379d0bf · Jul 11, 2022

History

95 Commits
Nov 30, 2021
Jan 8, 2022
Jul 7, 2022
May 26, 2022
Jul 11, 2022
Jun 13, 2022
Jul 11, 2022
Jul 11, 2022
Dec 26, 2021
Mar 7, 2022
Nov 30, 2021
Jun 22, 2022
Nov 30, 2021
Nov 30, 2021
Jul 11, 2022
Nov 30, 2021

Repository files navigation

Biblioteca NBR14522

Este repositório implementa a comunicação convencional leitor-medidor contida na norma ABNT NBR 14522 do ponto de vista do leitor.

O propósito desta biblioteca é fornecer uma implementação portável e compatível com sistemas embarcados e microcontrolados bem como com qualquer outro sistema de propósito geral.

A classe genérica LeitorFSM implementa o leitor da comunicação convencional. Tal classe tem duas dependências (ou policies):

  1. TimerPolicy: interface que define verificação de alarmes/timeout
  2. SerialPolicy: interface que define transmissão e recepção de dados de uma porta serial (ou qualquer outra porta, desde que respeite essa interface)

Assim, para extender essa biblioteca para outros microcontroladores, ambientes e/ou sistemas, deve-se implementar as duas dependências/policies e passá-la como parâmetro à classe genérica LeitorFSM. Novas policies de timer e serial podem ser adicionadas às pastas {include,src}/{serial,timer}/ e aplicações à pasta app/. Respectivos ajustes ao arquivo CMakeLists.txt serão necessários para compilar a nova aplicação. Além disso, sugere-se adicionar um arquivo de toolchain do cmake na pasta cmake/ para compilar para outra plataforma. O arquivo cmake/TC-raspberry.cmake contém um exemplo funcional e testado de toolchain (Leia os comentários do arquivo cmake/TC-raspberry.cmake para orientações sobre arquivos toolchains do cmake).

Atualmente o repositório contém somente policies para aplicações Windows e Unix-like. Veja a aplicação app/leitor-cli para um exemplo funcional e testado em um Raspberry.

Como compilar

Como testar

Outros repositórios e/ou projetos

A estrutura e organização de arquivos e do sistema de compilação CMake foram baseados no repositório https://github.com/bsamseth/cpp-project

Os arquivos src/serial/win_unix/serialib.cpp e include/serial/serialib.h foram pegos do repositório https://github.com/imabot2/serialib para a leitura da porta serial no Windows e Unix-like.

Licença

Veja o arquivo LICENSE.

About

Biblioteca da norma ABNT NBR 14522

Resources

License

Stars

Watchers

Forks

Packages

No packages published