2020-12-11 23:19:27 +01:00
|
|
|
\documentclass[]{scrartcl}
|
|
|
|
\usepackage{geometry}
|
|
|
|
\geometry{
|
|
|
|
a4paper,
|
|
|
|
top=18mm,
|
|
|
|
bottom=19mm,
|
|
|
|
}
|
|
|
|
\usepackage[utf8]{inputenc}
|
|
|
|
\usepackage[T1]{fontenc}
|
|
|
|
\usepackage[fleqn]{amsmath}
|
|
|
|
\usepackage{amssymb}
|
|
|
|
\usepackage{amsfonts}
|
|
|
|
\usepackage{mathpazo}
|
|
|
|
\usepackage{booktabs}
|
|
|
|
\usepackage[pdftex,pdfa,hidelinks,breaklinks]{hyperref}
|
|
|
|
\usepackage{url}
|
|
|
|
\usepackage[affil-it]{authblk}
|
|
|
|
|
|
|
|
|
|
|
|
\date{\today}
|
|
|
|
|
|
|
|
\title{Discrete i/o - coffee machine model}
|
|
|
|
\author{A. Mirre}
|
|
|
|
|
|
|
|
\begin{document}
|
|
|
|
\affil{FAI UTB ve Zlíně, Softwarové inženýrství (SWI)}
|
|
|
|
|
|
|
|
\maketitle
|
|
|
|
\renewcommand{\contentsname}{Obsah}
|
|
|
|
\tableofcontents
|
|
|
|
|
|
|
|
\newpage
|
|
|
|
|
|
|
|
\section*{Zadanie}
|
|
|
|
\addcontentsline{toc}{section}{Zadání}
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
\item Vytvorte program s využitím modelu práčky alebo miesiacej jednotky
|
|
|
|
\begin{enumerate}
|
|
|
|
\item využite všetky vstupy a výstupy modelu
|
|
|
|
\item program bude mat sekvenčné správanie
|
|
|
|
\item program by mal využívať displej
|
|
|
|
\item kód by mal byť zrozumiteľný
|
|
|
|
\end{enumerate}
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
\subsection{Zdrojové kódy}
|
|
|
|
Kód programu je dostupný v git repozitári na adrese:\\
|
|
|
|
\url{https://git.dotya.ml/wanderer/proj_pls}\\
|
|
|
|
Kód dokumentácie je dostupný v git repozitári na adrese:\\
|
|
|
|
\url{https://git.dotya.ml/wanderer/proj_pls-docs}
|
|
|
|
|
|
|
|
\subsection{Disclaimer}
|
|
|
|
Nakoľko nemám k dispozícii vývojovú dosku, mojím jediným overením je v podstate
|
|
|
|
len základná syntaktická kontrola kódu pri preklade (po vzore KDS som si
|
|
|
|
vytvoril Makefile na zjednodušenie života).
|
|
|
|
|
|
|
|
\newpage
|
|
|
|
|
|
|
|
\section{Stavy programu}
|
|
|
|
Keďže je program riadený na základe aktuálneho stavu, musel som si ich
|
|
|
|
definovať.\\
|
|
|
|
Logicky som si rozčlenil beh na tieto hlavné stavy:
|
|
|
|
\begin{itemize}
|
|
|
|
\item WAITING
|
|
|
|
\item PREPARATION
|
|
|
|
\item TANKFILLING
|
|
|
|
\item MIXING
|
|
|
|
\item SERVING
|
|
|
|
\end{itemize}
|
|
|
|
|
2020-12-11 23:44:33 +01:00
|
|
|
\subsection{WAITING}
|
|
|
|
Program v stave WAITING čaká na vstupy - stlačenia tlačidiel.\\
|
|
|
|
V tomto stave sa spracováva stlačenie tlačidla cukru, ktoré prepínaním stavu\\
|
|
|
|
HOWMUCHSUGAR nastavuje hodnoty hladiny cukru od málo po veľa cukru (4 úrovne)
|
|
|
|
(nestlačenie tohto tlačidla znamená, že nápoj bude bez cukru).\\
|
|
|
|
Toto je ďalej spracovávané vo funkcii \texttt{handlepreparation()} pomocou
|
|
|
|
\texttt{switch}. Rovnakým spôsobom sa tiež rieši veľkosť nápoja (L/S ako large
|
|
|
|
alebo small) - podľa požiadavky sa doleje voda.\\
|
|
|
|
Sila kávy je tiež trojúrovňová, najslabšiu som nazval \texttt{fakecofee()}.
|
|
|
|
|
|
|
|
|
2020-12-11 23:19:27 +01:00
|
|
|
\newpage
|
|
|
|
\section{Záver}
|
|
|
|
|
|
|
|
\end{document}
|