Sobre
Esse tópico aborda a framework do nosso software para o NAO. Os capítulos passam por diversos aspectos numa abordagem "de cima para baixo" com uma visão geral, depois detalhando cada parte do sistema. Aqui está uma lista dos capítulos:
- Estrutura de diretórios: Explica a estutura de pastas do repositorio.
- Entry Point: Inicia a abordagem top-down do sistema, explicando o ponto de entrada do programa na função
main
. - Runtime: Como a runtime faz a conexão entre os módulos do sistema?
- Cyclers: O que são os cyclers (ciclos de execução) e como eles rodam os diferentes nós?
- Nós: O que são os nós e como eles são implementados?
- Bases de dados e Tipos: Como os dados são compartilhados entre cyclers e a framework?
- Parâmetros: Como os parâmetros são passados para os nós pela framework?
- Comunicação: Do que se trata e como é feita a comunicação entre framework e nós?
- Interface com Hardware: Como o hardware é abstraído para a framework?
- Comunicação entre threads: Quais conceitos existem para permitir uma comunicação thread-safe entre os subcomponentes?
- Filtragem: Como a filtragem de dados é feita na framework e como ela se comporta num software multi-thread?
- Macros: Quais macros são usadas para facilitar o desenvolvimento e como eles funcionam?
- Tratamento de erros: Como a framework lida com erros e exceções, e como devo implementar?
A framework provê os principais aspectos necessários para o desenvolvimento de um software para o NAO. Ele tem uma arquitetura modular que permite facil desenvolvimento e substituição de nós. A framework consiste de quatro componentes fundamentais:
- Runtime: Encapsula todos os subcomponentes, instanciando e inicializando eles.
- Interface com Hardware: Abstrai o hardware do NAO, permitindo a comunicação com os sensores e atuadores.
- Cyclers: Cicla entre os nós, processa dados do hardware e gera saídas.
- Comunicação: Permite a comunicação entre o framework e outros recursos, como arquivos, nós e redes.