Podstawowe składniki
, czyliziarna kawy
,mleko
,woda
. Żeby przygotować napój, użytkownik najpierw musi nimi uzupełnić odpowiednie pojemniki. O braku podstawowych składników użytkownik jest informowany za pomocą wyświetlacza.Składniki
, czyliespresso
,woda
,mleko
,spienione mleko
. Baza do przygotowania napojów - są to podstawowe składniki po poddaniu ich opowiedniej obróbce, tzn. podgrzaniu do określonej temperatury oraz wykonaniu różnych innych czynności, w zależności od potrzeb (zmienielenie kawy, zaparzenie kawy, spienienie mleka).Instrukcja przygotowania napoju
- składniki ułożone w ciąg w kolejności, w której powinny znaleźć się w szklance. Bazowe porcje składników są stałe, ale w danym ciągu mogą występować wielokrotnie (np. podwójne espresso).Napój
- efekt końcowy wykonania przez ekspres odpowiedniej instrukcji. Przykłady:
Espresso: espresso
Double espresso: espresso, espresso
Americano: espresso, woda
Cortado: espresso, mleko
Flat white: espresso, spienione mleko
Caffè latte: espresso, mleko, spienione mleko
Latte macchiato: mleko, espresso, spienione mleko
Cappuccino: espresso, spienione mleko, spienione mleko
- Użytkownik naciskając odpowiedni guzik wybiera program przygotowujący pożądany napój.
- Ekspres analizuje dane z czujników w pojemnikach w celu sprawdzenia, czy znajduje się tam wystarczająco dużo podstawowych składników. Jeżeli nie, informuje o tym użytkownika i zawiesza dalsze działanie do czasu ich uzupełnienia.
- Ekspres przygotowuje wybrany napój na podstawie zaprogramowanej sekwencji. Podsystem odpowiedzialny za przygotowanie kawy na bieżąco przygotowuje składniki napoju i wlewa je do szklanki.
- Ekspres informuje użytkownika o zakończeniu przygotowywania napoju.
- Uzytkownik zabiera przygotowany napój.
CoffeeMachineSystem
: główny komponent reprezentujący ekspres do kawy, który łączy pomniejsze komponenty w spójną całośćmain_controller
: procesor główny odpowiedzialny za zarządzanie procesami obsługującymi interakcję systemu z użytkownikiem, a więc wybór napoju (drink_selection_process
) oraz kontrolę ilości składników potrzebnych do przygotowania wybranego napoju (supplies_process
)gpio_bus
: połączenia umożliwiające komunikację urządzeń z procesorem
butttons
: urządzenie przyjmujące od użytkownika wybór napojusignalizer
: urządzenie sygnalizujące użytkownikowi konieczność uzupełnienia składników podstawowych lub zakończenie procesu przygotowywania napoju
water_container_sensor
: monitoruje ilość wody w pojemnikucoffee_bean_container_sensor
: monitoruje ilość ziaren kawy w pojemnikumilk_container_sensor
: monitoruje ilość mleka w pojemniku
drink_selection_process
: proces przetwarzający wybór użytkownika na instrukcję przygotowania napoju dla podsystemuCoffeeMaker
- kolejność, w której powinny zostać uruchamiane poszczególne urządzenia tego podsystemusupplies_process
: proces sprawdzający, czy w pojemnikach znajduje się wystarczająco dużo składników, aby przygotować wybrany napój. Jeżeli nie, informacja o tym jest przekazywana dosignalizera
odpowiedzialnego za poinformowanie o tym użytkownika, a dalsze działanie systemu zostaje zawieszone.
CoffeeMakerSystem
: podsystem odpowiedzialny za przygotowanie napoju oraz dostarczenie go użytkownikowicoffee_controller
: procesor zarządzający pracą urządzeń podsystemu
analyzer
: urządzenie przetwarzające sygnały przychodzące z zewnątrz na rozkazy przekazywane do określonego urządzenia. Właściwie fukcjonalność ta równie dobrze mogłaby być realizowana przez procesor i zawierać się w procesiecoffe_making_process
, jednak przypisanie jej osobnego komponentu rozjaśnia schemat przepływu danych na narysowanym modelu.heater
: urządzenie odpowiedzialne za podgrzewanie wody / mlekagrinder
: młynek do ziaren kawy. Mielenie kawy odbywa się zawsze bezpośrednio przed jej zaparzeniem i przygotowywana jest dokładnie jedna porcja.press
: urządzenie odpowiedzialne za przelewowe zaparzenie zmielonej kawy. Jednorazowo przygotowuje jedną porcję espresso.foamer
: speniacz do mlekapourer
: urządzenie odpowiedzialne za dostarczenie składników do szklanki
temp_sensor
: monitoruje temperaturę wody i mleka
coffee_making_process
: proces odpowiedzialny za przygotowanie kawy. Odczytuje instrukcje przygotowania napoju i na ich podstawie zarządza poszczególnymi wątkami przypisanymi do urządzeń.