Update Geräte authored by Nico Päller's avatar Nico Päller
......@@ -4,38 +4,41 @@
</details>
# Kommandos
Kommandos sind Nachrichten die an das verwendete Gerät geschickt werden, um Daten einzustellen oder auszulesen. Die jeweiligen Kommandos müssen aus dem Datenblatt des jeweiligen Gerätes entnommen werden.
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>
<details><summary>:memo: Ein Wert ohne Dezimalstellen senden</summary>
```python
"VOLT: {int(value)}"
```
</details>
<details><summary>:memo: Einen Wert als Hexadezimalzahl mit 2*4 Bit senden</summary>
<details><summary>:memo: Nur 2 Dezimalstellen eines Wertes senden</summary>
```python
"VOLT: {value:02x}"
"VOLT: {value:.2f}"
```
</details>
<details><summary>:memo: Einen Wert nur senden, wenn er unter einem Grenzwert liegt (Bsp.: unter 100)</summary>
<details><summary>:memo: Einen Wert als Hexadezimalzahl mit 2*4 Bit senden</summary>
```python
"VOLT: {value if value < 100 else 0}"
"VOLT: {value:02x}"
```
</details>
<details><summary>:memo: Nur 2 Dezimalstellen eines Wertes senden</summary>
<details><summary>:memo: Einen Wert nur senden, wenn er unter einem Grenzwert liegt (Bsp.: unter 100)</summary>
```python
"VOLT: {value:.2f}"
"VOLT: {value if value < 100 else 0}"
```
</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` + `#` = `'`)
......@@ -58,27 +61,40 @@ 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`)
### 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)
* **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.
## commands
Hier werden alle Kommandos aufgeführt unterteilt in mehrere Kategorien
### 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.
### measure
Kommandos die benutzt werden um Daten zu messen. Hier müssen mindestens die Kommandos für Spannung und Strom angegeben werden.
:information_source: weitere Kommandos können problemlos mit aufgelistet werden. Diese können unter dem vergebenem Namen in der [Schrittkonfiguration](Schritte) verwendet werden.
### set
Kommandos die benutzt werden um Werte das verwendete Gerät einzustellen und zu konfigurieren. Hier müssen mindestens die Kommandos für Spannung und Strom angegeben werden.
* :ballot_box_with_check: hier kann ein f-String verwendet werden. Der übergebene Wert `value` ist die Dezimalzahl, welche im aktuell ausgeführtem Schritt angegeben ist
:information_source: weitere Kommandos können problemlos mit aufgelistet werden. Diese können unter dem vergebenem Namen in der [Schrittkonfiguration](Schritte) unter dem Parameter `reference` verwendet werden.
# Beispielkonfigurationsdatei
```json
......@@ -107,7 +123,6 @@ der Lesetimeout in Sekunden (kann Dezimalzahl sein)
"current": ":CURR {value}",
"power": ":POW {value}",
"resistance": ":RES {value}",
"cell_voltage": "???"
}
}
}
......
......