/* * coffee.h * * Created on: Sep 25, 2017 * Author: Sebastian */ #ifndef COFFEE_H_ #define COFFEE_H_ #include //define status typedef enum { STATE_OFF, STATE_HEATING, STATE_INITALHEATING, STATE_IDLE, STATE_BREW, STATE_BREWMANUAL, STATE_CLEANING, STATE_ERROR } coffee_status_t; #define AMOUNT_PREINFUSION 3 //Preinfusion amount in ml #define TIME_SOAK 3000 //Time between preinfusion and infusion in ms #define TIME_INFUSION 25000 //Infusion time in ms #define AMOUNT_DBLESPRESSO 25.0 //Size of a double espresso in ml void *coffeeThread(void *threadid); void coffeeHandler(int signum, siginfo_t *siginfo, void *context); int getSigValue(void); bool SigValueEmpty(void); void changeState(coffee_status_t newState); coffee_status_t getState(void); void brewTimeHandler(void); void coffeeTerminate(void); void coffeeBrew(void); void coffeeIncreaseBrewCounter(void); void coffeeIncreaseHeatingTime(uint64_t heatingTime); #endif /* COFFEE_H_ */