Create Schritte authored by Nico Päller's avatar Nico Päller
<details><summary>Inhalt</summary>
[[_TOC_]]
</details>
Schritte sind einzeln heruntergebrochene Mess- und Überwachkriterien. Mittels den Schritten kann ein individuelles transportables und reproduzierbares Lade- oder Entladeprofil erstellt werden.
# Aufbau
Die Schrittkonfiguration ist eine Datei im `.json` Format. Sie unterteilt sich grob in die Liste der Schritte und einigen globalen Einstellungen.
## global
Hier werden Metaeinstellungen zum Schrittprofil eingestellt, wie etwa das Messinterval
### serial_cells
`serial_cells` ist eine ganze Zahl, welche angibt, weiviele Zellen in Reihe gemessen werden.
### measure_interval
`measure_interval` ist das Messinterval in dem das Programm die Werte des verwendeten Geräts ausliest. Das Messinterval wird als ganze Zahl in Millisekunden angegeben
### device
`device` ist die Anfgabe, welche [Gerätekonfiguration](Geräte) verwendet werden soll. Dabei ist es wichtig, dass die Referenzen in den Schritten mit den Referenzen in der Gerätekonfiguration übereinstimmt. `voltage` und `current` müssen allerdings immer vorhanden sein.
### start_step
`start_step` ist die `id` des Schrittes, welcher als erstes ausgeführt werden soll
## steps
`steps` ist eine Liste von Schritten die abgearbeitet werden. Ein Schrittobjekt ist dabei wie folgt aufgebaut:
### id
`id` ist eine ganze Zahl welche vergeben werden muss, um einen Schritt zu referenzieren. Diese ID muss eindeutig sein.
### reference
`reference` ist die Größe, welche eingestellt werden soll um die Zellen zu testen. Eine Reference hat immer zwei Attribute:
1. `name`: der Name der Referenz, muss in je der `set` (Referenz im Schritt) oder `measure` (Referenz in einer Abbruchbedingung) Teil der [Gerätekonfiguration](Geräte) vorhanden sein
1. `value`: der Wert welcher eingestellt werden soll. Kann eine Dezimalzahl sein
### break_points
`break_points` ist eine Liste von einer oder mehreren Abbruchbedingungen.
Eine Abbruchbedingung besteht aus 3 Parametern.
1. `minmax`: die Angabe, ob beim Über- oder Unterschreiten des angegebenen Wertes die Abbruchbedingung erfüllt ist.
1. `reference`: [siehe oben](https://gitlab.bht-berlin.de/lilpaeller/battlab2/-/wikis/Schritte#reference)
1. `next_step`: die `id` des als nächstes auszuführenden Schrittes, falls die Abbruchbedingung eintrifft
# Beispielkonfiguration
```json
{
"global": {
"serial_cells": 4,
"measure_interval": 100,
"device": null,
"start_step": 0
},
"steps": [
{
"id": 0,
"reference": {
"name": "voltage",
"value": 10.3
},
"break_points": [
{
"minmax": "max",
"reference": {
"name": "time",
"value": 120.0
},
"next_step": 1
},
{
"minmax": "min",
"reference": {
"name": "current",
"value": 1.2
},
"next_step": 1
}
]
},
{
"id": 1,
"reference": {
"name": "current",
"value": 2.5
},
"break_points": [
{
"minmax": "max",
"reference": {
"name": "time",
"value": 120.0
},
"next_step": 0
},
{
"minmax": "min",
"reference": {
"name": "voltage",
"value": 7.0
},
"next_step": 0
}
]
},
{
"id": 2,
"reference": {
"name": "current",
"value": 2.5
},
"break_points": [
{
"minmax": "max",
"reference": {
"name": "time",
"value": 120.0
},
"next_step": 0
},
{
"minmax": "min",
"reference": {
"name": "voltage",
"value": 7.0
},
"next_step": 0
}
]
},
{
"id": 3,
"reference": {
"name": "current",
"value": 2.5
},
"break_points": [
{
"minmax": "max",
"reference": {
"name": "time",
"value": 120.0
},
"next_step": 0
},
{
"minmax": "min",
"reference": {
"name": "voltage",
"value": 7.0
},
"next_step": 0
}
]
}
]
}
```
\ No newline at end of file