sacada-python 0.0.7
Python API for the SACADA data acquisition system
Requires Python: >=3.5

# sacada-python

A biblioteca em Python do SACADA permite que sejam desenvolvidas aplicações científicas de maneira amigável e abstraída. 

---

# Instalação

A biblioteca, junto com o comando `sacada` pode ser instalada globalmente com o comando
```
sudo pip3 install -U sacada-python
```

Caso deseje instalar apenas localmente, ou se não tiver acesso ao sudo, instale utilizando 
```
pip3 install --user -U sacada-python
```
Tome cuidado que, neste caso, o comando `sacada` ficará disponível apenas em `~/.local/bin`, que deverá estar no seu `PATH`.

---

# Uso

## Biblioteca

[TODO] Escrever códigos de [exemplo.](/Exemplos)

```python
from sacada import SACADA

s = SACADA("/dev/ttyACM0")

# Imprime a tensão do canal A0 na tela
print(s.readVoltage("A0"))
```

## Comando

O comando `sacada` permite a interface com a placa via terminal. Ele faz uso de uma interface serial, então é importante que você tenha as permissões corretas para acesso. Caso você esteja tendo erros de permissão, tente se colocar no grupo `dialout` utilizando o comando `sudo usermod -aG dialout [seu usuario]` e relogue no seu computador.

Para testar a comunicação, você pode utilizar o comando `sacada show`, que deve retornar a string de identificação da placa que você está utilizando. Para especificar uma porta, você pode utilizar o parâmetro `--port [sua porta]`. Por padrão, a porta utilizada é a `/dev/ttyACM0`. É importante frisar que a SACADA possui **duas** portas seriais, e que a utilizada para comunicação é **sempre a de número menor**.

**Exemplos:**
```
[tropos@cta-001 ~]$ sacada show
blazing.design/UFRGS,SACADA Mini,0,rev1
```

```
[tropos@cta-001 ~]$ sacada --port /dev/ttyACM123 show
blazing.design/UFRGS,SACADA Mini,0,rev1
```

**O parâmetro --port deve ser sempre o primeiro do comando**

Para medir um canal único, você pode utilizar o comando `read`:

**Exemplo:**
```
[tropos@cta-001 ~]$ sacada read A0
3.29312515258789
```

Caso você deseje monitorar um canal continuamente, pode utilizar o comando `monitor`. Você também pode especificar um arquivo para salvar os dados utilizando o parâmetro `--save`. O intervalo de amostragem pode ser especificado (em milisegundos) com o parâmetro `--interval`.

**Exemplos:**
```
# Monitora o canal A0 com o intervalo padrão de 1000ms

[tropos@cta-001 ~]$ sacada monitor A0
3.29312515258789
3.29187512397766
3.29175019264221
...
```

```
# Monitora o canal A0 com intervalo de 100ms

[tropos@cta-001 ~]$ sacada monitor A0 --interval 100
3.29287505149841
3.28575015068054
3.28275012969971
...
```

```
# Salva no arquivo ~/logs/out.log as amostras lidas

[tropos@cta-001 ~]$ sacada monitor A0 --save ~/logs/out.log
3.29275012016296
3.29187512397766
3.29212522506714
...
```

**Os valores lidos e monitorados sempre serão dados em Volts**

---

# 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](/LICENSE).

---

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

A copy of this license is provided in the [LICENSE](/LICENSE) file.

---

Copyright 2019 Pedro Henrique Capp Kopper.