// ----------------------------------------------------------------------------- /// @file repairMenu.h /// @brief File description // ----------------------------------------------------------------------------- // Micro-Key bv // Industrieweg 28, 9804 TG Noordhorn // Postbus 92, 9800 AB Zuidhorn // The Netherlands // Tel: +31 594 503020 // Fax: +31 594 505825 // Email: support@microkey.nl // Web: www.microkey.nl // ----------------------------------------------------------------------------- /// $Revision$ /// $Author$ /// $Date$ // (c) 2015 Micro-Key bv // ----------------------------------------------------------------------------- /// @defgroup {group_name} {group_description} /// Description /// @file repairMenu.h /// @ingroup {group_name} #ifndef INC_REPAIRMENU_H_ #define INC_REPAIRMENU_H_ // ----------------------------------------------------------------------------- // Include files // ----------------------------------------------------------------------------- #include #include "FreeRTOS.h" #include "task.h" #include "semphr.h" #include "stm32f10x.h" // ----------------------------------------------------------------------------- // Constant and macro definitions // ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // Type definitions. // ----------------------------------------------------------------------------- typedef enum { MAINMENU, REPAIRMENU } T_MenuState; struct RepairMenu { TaskHandle_t taskHandle; int TaskPriority; uint16_t stackSize; bool runTask; SemaphoreHandle_t secondsSyncronisation; bool initialized; struct Display* display; T_MenuState menuState; }; // ----------------------------------------------------------------------------- // Function declarations // ----------------------------------------------------------------------------- /** ---------------------------------------------------------------------------- * repairMenu_construct * Description of function * * @param self * @param display * @param taskPriority * @param stackSize * * @return ErrorStatus * * @todo * ----------------------------------------------------------------------------- */ extern ErrorStatus repairMenu_construct(struct RepairMenu* self, struct Display* display, int taskPriority, uint16_t stackSize); /** ---------------------------------------------------------------------------- * repairMenu_destruct * Destructor for self * * @param self * * @return void * * @todo * ----------------------------------------------------------------------------- */ extern void repairMenu_destruct(struct RepairMenu* self); /** ---------------------------------------------------------------------------- * repairMenu_feedSecondsCounter * Feeds the seconds counter of the repair process. * The process is designed to be run every second, so this feed function should * be called every second. * * @param self The repair menu object * * @return void * * @todo * ----------------------------------------------------------------------------- */ extern void repairMenu_feedSecondsCounter(struct RepairMenu* self); /** ---------------------------------------------------------------------------- * repairMenu_feedSecondsCounterFromISR * Feeds the seconds counter of the repair process. * This function should be called in an ISR context * The process is designed to be run every second, so this feed function should * be called every second. * * @param self The repair menu object * * @return void * * @todo * ----------------------------------------------------------------------------- */ extern void repairMenu_feedSecondsCounterFromISR(struct RepairMenu* self); #endif /* INC_REPAIRMENU_H_ */