Skip to main content

Podporované funkcie

Zoznam podporovaných funkcií systémom:

NameInput typeUnitsCategoryCode nameTypeChoicesCode choices
Temperaturefield°CTEMPERATURESET_TEMPERATUREfloatChamber 1, Chamber 2TEMP_1, TEMP_2
MotorfieldRMPMOTORSET_MOTOR_SPEEDfloatMotor 1, Motor 2MOTOR_1, MOTOR_2
Transfer liquidsexecutable-PUMPTRANSFER_LIQUIDS-Pump 1PUMP_1
Unloadexecutable-UNLOADERUNLOAD-Fermentables, Yeast, Hops, OtherFERMENTABLE, YEAST, HOPS, OTHER
WaitfieldmsSYSTEMWAITfloat--
Manual stepfield-SYSTEMMANUALstring--
  • Name - pekný názov na Frontende
  • Code name - ako sa bude v skutočnosti volať daná funkcia
  • Category - je kategória, do ktorej patrí daná funkcia (využívané v Podporované údaje)
  • Input type - či bude mať možnosť meniť paramaetre alebo sa daná funkcie iba vykonáva
  • Type - validácia na Frontende, v skutočnosti všade posielam string
  • Choices - aké možnosti budú ponúkané - ktorý konkrétny prvok sa má spustiť
  • Code choices - predstavujú jednotlivé zariadenia a ich "skutočné" meno - toto meno sa bude zhodovať naprieč systémom s menom ktoré bude ukazovať stav jednotlivých senzorov

V skutočnosti Frontend ukladá a prijíma iba: Code name, Code choices, Category a hodnoty parametra. Ostatné veci si už sám vyhľadá a doplní podľa špecifikácie.

Štruktúra posielaných údajov Backend --> Modul

Inštrukcia

{
"type": "instruction",
"moduleId": <id modulu>,
"instruction": <code name pre inštrukciu>,
"params": <hodnota parametru>,
"category": <kategória inštrukcie/zariadenia>,
"device": <zariadenie>,
}
Ukážka
{
"moduleId": 1,
"instruction": "SET_MOTOR_SPEED",
"params": 30,
"category": "MOTOR",
"device": "MOTOR_1"
}

Abort

{
"type": "abort"
}

Štruktúra posielaných údajov Backend --> Frontend

Inštrukcia

{
"id": <id inštrukcie>,
"recipeId": <id receptu>,
"templateId": <id template pre inštrukciu>,
"codeName": <code name pre inštrukciu>, // aj toto sa bude mapovať na krajší názov
"params": <hodnota parametru>,
"category": <kategória inštrukcie/zariadenia>,
"optionCodeName": <zariadenie>, // na FE sa bude mapovať na krajší názov - napr. "TEMP_1" -> "Nádoba 1",
"blockId": <id bloku>, // ak by boli dva názvy rovnaké, ale chceme to mať ako dva rôzne bloky
"blockName": <názov bloku>,
"ordering": <poradové číslo>,
}
Ukážka
{
"id": 234,
"recipeId": 123,
"templateId": 1,
"codeName": "SET_MOTOR_SPEED",
"params": 30,
"category": "MOTOR",
"optionCodeName": "MOTOR_1",
"blockId": 1,
"blockName": "Fermentation",
"ordering": 2
}

Template pre inštrukciu

FE si vie získať ako vyzerajú všetky inštrukcie, ktoré sú podporované systémom.

{
"id": <id template>,
"codeName": <code name pre inštrukciu>,
"name": <pekny nazov instrukcie>,
"category": <kategoria>,
"units": <jednotka>,
"inputType": <typ inputu>,
"description": <popis>,
"options": [
{
"id": <id zariadenia>,
"name": <pekny nazov zariadenia>,
"codeName": <zariadenie>
},
...
...
]
}
Ukážka
{
"id": 1,
"codeName": "SET_TEMPERATURE",
"name": "Set temperature",
"category": "TEMPERATURE",
"units": "°C",
"inputType": "float",
"description": "Sets temerature for selected chamber",
"options": [
{
"id": 1,
"name": "Chamber 1",
"codeName": "TEMP_1"
},
{
"id": 2,
"name": "Chamber 2",
"codeName": "TEMP_2"
}
]
}

Štruktúra posielanej inštrukcie Frontend --> Backend

{
"templateId": <id vzoru pre danú inštrukciu>,
"blockName": <nazov bloku>,
"params": <hodnota parametru>,
"optionCodeName": <zariadenie>,
"ordering": <poradové číslo>,
}
Ukážka
{
"templateId": 123,
"blockName": "Fermentation",
"params": 85,
"optionCodeName": "TEMP_1",
"ordering": 1
}