// ----------------------------------------------------------------------------- /// @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" #include "repairPreset.h" #include "repairProcess.h" #include "keypadMatrix.h" #include "Observable.h" #include "rtc.h" // ----------------------------------------------------------------------------- // Constant and macro definitions // ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // Type definitions. // ----------------------------------------------------------------------------- typedef enum { MAINMENU = 0, REPAIRMENU, ADMINMENU, CALIBRATIONMENU, PRESETMENU, START_REPAIR, NO_MENU, NUMBER_OF_MENUS } T_MenuState; struct RepairMenu { TaskHandle_t taskHandle; int TaskPriority; uint16_t stackSize; bool runTask; SemaphoreHandle_t secondsSyncronisation; bool initialized; struct Display* display; struct KeyboardDevice* keyboardDevice; T_MenuState menuState; Keypad_KeyState keyStateTrigger; int cursorIndex; int scrollOffset; struct RepairProcess repairProcess; const struct RepairPreset* repairPreset; struct RepairProcessParameters rpParameters; static struct MenuPage menuArray[NUMBER_OF_MENUS]; }; // ----------------------------------------------------------------------------- // Function declarations // ----------------------------------------------------------------------------- /** ---------------------------------------------------------------------------- * repairMenu_construct * Description of function * * @param self * @param display * @param keyboardDevice * @param taskPriority * @param stackSize * @param keyStateTrigger * * @return ErrorStatus * * @todo * ----------------------------------------------------------------------------- */ extern ErrorStatus repairMenu_construct(struct RepairMenu* self, struct Display* display, struct KeyboardDevice* keyboardDevice, int taskPriority, uint16_t stackSize, Keypad_KeyState keyStateTrigger); /** ---------------------------------------------------------------------------- * 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_ */