Update Geräte authored by Nico Päller's avatar Nico Päller
......@@ -6,20 +6,72 @@
# Kommandos
Um eine hohe Flexibilität zu erhalten, können in den `.json` Dateien bei den Kommandos [f-Strings](https://www.python.org/dev/peps/pep-0498/) verwendet werden. Somit kann man die zu sendenen Nachrichten sehr flexibel anpassen, formatieren oder sogar weitere Berechnungen anstellen.
### Beispiele
<details><summary>:memo: Eingehenden Wert in ohne Dezimalstellen senden</summary>
```python
"VOLT: {int(value)}"
```
</details>
<details><summary>:memo: Einen Wert als Hexadezimalzahl mit 2*4 Bit senden</summary>
```python
"VOLT: {value:02x}"
```
</details>
<details><summary>:memo: Einen Wert nur senden, wenn er unter einem Grenzwert liegt (Bsp.: unter 100)</summary>
```python
"VOLT: {value if value < 100 else 0}"
```
</details>
<details><summary>:memo: Nur 2 Dezimalstellen eines Wertes senden</summary>
```python
"VOLT: {value:.2f}"
```
</details>
[:memo: Beispielkonfiguration](https://gitlab.bht-berlin.de/lilpaeller/battlab2/-/wikis/Ger%C3%A4te#beispielkonfigurationsdatei)
:warning: Falls Strings innerhalb der Kommandos verwendet werden, müssen diese mit einzelnen Anführungszeichen angegeben werden (`SHIFT` + `#` = `'`)
# Aufbau
Eine Gerätekonfigurationsdatei ist wie folgt aufgebaut:
* **name**: der Name des Geräts (nicht essenziell zur ausführung)
* **desc**: eine Beschreibung des Geräts
* **port_config**: die Konfiguration der seriellen Schnittstelle. Werte sind analog zu den von der [pySerial Bibliothek](https://pyserial.readthedocs.io/en/latest/pyserial_api.html#serial.Serial)
* **baudrate**: die Baudrate als Zahl
* **bytesize**: die Anzahl der Bytes pro Nachrichtenblock (`FIVEBITS`, `SIXBITS`, `SEVENBITS`, `EIGHTBITS`)
## name
der Name des Geräts (nicht essenziell zur Ausführung)
## desc
eine Beschreibung des Geräts
## port_config
die Konfiguration der seriellen Schnittstelle. Werte sind analog zu den von der [pySerial Bibliothek](https://pyserial.readthedocs.io/en/latest/pyserial_api.html#serial.Serial)
### baudrate
die Baudrate als Zahl
### bytesize
die Anzahl der Bytes pro Nachrichtenblock (`FIVEBITS`, `SIXBITS`, `SEVENBITS`, `EIGHTBITS`)
* **parity**: die Parität (`PARITY_NONE`, `PARITY_EVEN`, `PARITY_ODD`, `PARITY_MARK`, `PARITY_SPACE`)
* **stopbits**: die Anzahl der Stopbits por Nachrichtenblock (`STOPBITS_ONE`, `STOPBITS_ONE_POINT_FIVE`, `STOPBITS_TWO`)
* **timeout**: der Lesetimeout in Sekunden (kann Dezimalzahl sein)
### stopbits
die Anzahl der Stopbits por Nachrichtenblock (`STOPBITS_ONE`, `STOPBITS_ONE_POINT_FIVE`, `STOPBITS_TWO`)
### timeout
der Lesetimeout in Sekunden (kann Dezimalzahl sein)
* **commands**:
* **general**: generelle Kommandos, wie z.B.: An- und Ausschalten
* **enable**: Kommando um das Messen zu aktivieren oder deaktivieren
* :ballot_box_with_check: hier kann ein f-String verwendet werden. Der übergebene Wert `value` kann `True` oder `False` sein
* **set_mode**: Kommando um den Modus des Geräts zu verstellen
* :ballot_box_with_check: hier kann ein f-String verwendet werden. Der übergebene Wert `value` kann je nach Schrittkonfiguration `voltage`, `current`, `resistance` oder `power` sein.
......
......