Commit 36b873d9 authored by Pedro Henrique Kopper's avatar Pedro Henrique Kopper

Adicionar README e LICENSE

parent ef6b97c6
{
"python.pythonPath": "/home/phckopper/.local/share/virtualenvs/Interface-fW4BKCH0/bin/python"
}
\ No newline at end of file
This diff is collapsed.
......@@ -4,6 +4,7 @@ url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
pylint = "*"
[packages]
pyqtgraph = "*"
......
# Interface do SADAPMAP
## Sistema de Aquisição de Dados para Análise de Materiais em Altas Pressões
Esse software é responsável por realizar os procedimentos de calibrações das prensas hidráulicas do LAPMA (Laboratório de Altas Pressões e Materiais Avançados) da UFGRS.
Ele vem sendo desenvolvido há alguns anos, tendo sido originalmente desenvolido por Alisson Claudino (2017-2018) e depois por Pedro Kopper (2019). O código sofreu diversas alterações radicais durante esse tempo, gerando um código um tanto confuso. Um código similar, mas escrito do zero, pode ser encontrado no repositório de (https://git.cta.if.ufrgs.br/SADAPMAP/processamento)[Processamento].
Atualmente, ele é utilizado com uma placa (http://cta.if.ufrgs.br/projects/sacada)[SACADA] para aquisição de dados. Porém, o software em si suporta virtualmente qualquer dispositivo implementado na pasta `interfaces`.
### Instalação
Para instalar o software, é necessário ter os pacotes `git` e `pipenv` instalados. A partir daí, você pode
clonar o repositório para uma pasta local
```bash
git clone https://git.cta.if.ufrgs.br/SADAPMAP/Interface.git
```
e instalar as dependências
```bash
cd Interface
pipenv install
```
para rodar, use
```bash
pipenv run python3 SADAMAP.py [configuração]
```
onde '[configuração]' é o nome do arquivo de configuração que você quer rodar (.yaml).
### Estrutura do projeto
`interfaces`: Guarda os arquivos que definem as interfaces de hardware que o programa pode usar. O programa determina qual interface carregar pelo arquivo de configuração .yaml.
`nanopb_pb2`: Biblioteca nanopb, utilizada por algumas interfaces mais avançadas que se baseiam em Protocol Buffers. Não são mais implementadas pelo SACADA nem pelo Arduino.
`Protocol`: git submodule que linka o repositório (https://git.cta.if.ufrgs.br/SADAPMAP/Protocol)[Protocol], que guardava a implementação de Protocol Buffers do SACADA.
`resources`: Recursos auxiliares ao desenvolvimento do programa. Imagens, textos, arquivos de configuração de UI etc
`threads`: Antigamente, guardava as threads do programa, porém hoje o programa é single-threaded. Atualmente guarda as classes utilizadas nos processamentos.
`ui`: Guarda o código relativo à interface de usuário. Alguns deles são gerados por computador e não devem ser editados.
`util`: Guarda funções/classes miscelâneas que são úteis mas não se encaixam em mais nenhuma categoria.
### Fluxo de desenvolvimento
#### Aquisição offline (sem hardware)
Essa é uma funcionalidade do software que permite que se use uma interface "falsa" para fins de desenvolvimento chamada mock. Ao utilizar essa interface, ela irá alimentar o sistema com dados falsos, mas utilizando o mesmo software que uma interface real, permitindo testar o sistema mesmo sem nenhum hardware acoplado.
#### Criação da interface gráfica
A interface gráfica é escrita em PyQt5 e, para gerar os arquivos de interface gráfica, utilizamos a ferramenta Qt Designer 4. Ela gera arquivos .ui, que são salvos na pasta `resources/UI` e devem ser compilados para Python utilizando o `pyuic5` (instalável via pip) utilizando o comando `pyuic5 resources/UI/[arquivo].ui -o ui/[arquivo].py` sempre que alterados.
### Suporte
O suporte desse software é realizado exclusivamente via issues nesse repositório, com o fim de criar uma documentação pública e que possa ser útil a todos.
### Licença
Este programa é um software livre; você pode redistribuí-lo e/ou
modificá-lo sob os termos da Licença Pública Geral GNU como publicada
pela Free Software Foundation; na versão 3 da Licença, ou
(a seu critério) qualquer versão posterior.
Este programa é distribuído na esperança de que possa ser útil,
mas SEM NENHUMA GARANTIA; sem uma garantia implícita de ADEQUAÇÃO
a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
Licença Pública Geral GNU para mais detalhes.
Uma cópia da licença (em inglês) está disponível no arquivo LICENSE.
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment