15 #define STATE_HEATING 1
16 #define STATE_INITALHEATING 2
19 #define STATE_BREWMANUAL 5
20 #define STATE_CLEANING 6
23 #define AMOUNT_PREINFUSION 3 //Preinfusion amount in ml
24 #define TIME_SOAK 3000//Time between preinfusion and infusion in ms
25 #define TIME_INFUSION 25000 //Infusion time in ms
26 #define AMOUNT_DBLESPRESSO 25.0 //Size of a double espresso in ml
30 void coffeeHandler (
int signum, siginfo_t *siginfo,
void *context);
bool SigValueEmpty(void)
Definition: coffee.cpp:238
void coffeeTerminate(void)
handles program termination
Definition: coffee.cpp:275
void coffeeIncreaseHeatingTime(uint64_t heatingTime)
Definition: coffee.cpp:350
int getState(void)
Returns the current state of the FSM.
Definition: coffee.cpp:260
int getSigValue(void)
returns the Signal value from the last received Signal and clears the variable
Definition: coffee.cpp:232
void coffeeIncreaseBrewCounter(void)
Definition: coffee.cpp:340
void coffeeHandler(int signum, siginfo_t *siginfo, void *context)
Handler for the Signal send to this thread It saves the type of signal received and tracks the time b...
Definition: coffee.cpp:222
void coffeeBrew(void)
Brewing process.
Definition: coffee.cpp:285
double heatingTime
Definition: coffee.cpp:33
void brewTimeHandler(void)
Counter for the brew time refresh every 200ms.
Definition: coffee.cpp:268
void changeState(int newState)
Changes the state of the machine to newState prints the change to the logger.
Definition: coffee.cpp:250
void * coffeeThread(void *threadid)
Thread for the finite state machine It represents the current state of the machine and handles signal...
Definition: coffee.cpp:41