- Added WARNING handler - put voltage calculations to dedicated module fixed last errors. Updated menu repair screen without ERROR from PID This is version 0.9.0.3, which is used for the first duration test Will also be tagged git-svn-id: https://svn.vbchaos.nl/svn/hsb/trunk@272 05563f52-14a8-4384-a975-3d1654cca0fa
178 lines
5.2 KiB
C
178 lines
5.2 KiB
C
// -----------------------------------------------------------------------------
|
|
/// @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 <stdbool.h>
|
|
|
|
#include "FreeRTOS.h"
|
|
#include "task.h"
|
|
#include "semphr.h"
|
|
|
|
#include "stm32f10x.h"
|
|
|
|
#include "Error.h"
|
|
#include "MenuCore.h"
|
|
#include "RepairPreset.h"
|
|
#include "repairProcess.h"
|
|
|
|
#include "CachedStorage.h"
|
|
#include "Interlock.h"
|
|
#include "keypadMatrix.h"
|
|
#include "Observable.h"
|
|
#include "rtc.h"
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Constant and macro definitions
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Type definitions.
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
struct RepairMenu
|
|
{
|
|
bool initialized;
|
|
struct MemoryDevice* memoryDevice;
|
|
struct CachedStorage presetStorage;
|
|
SemaphoreHandle_t repairScreenUpdateSemaphore;
|
|
const struct RepairPreset* repairPreset;
|
|
struct RepairProcessParameters rpParameters;
|
|
Observer observer;
|
|
struct MenuCore* menuCore;
|
|
};
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Function declarations
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
/** ----------------------------------------------------------------------------
|
|
* repairMenu_construct
|
|
* Description of function
|
|
*
|
|
* @param self
|
|
* @param display
|
|
* @param keyboardDevice
|
|
* @param taskPriority
|
|
* @param stackSize
|
|
* @param repairScreenUpdateObserver
|
|
*
|
|
* @return ErrorStatus
|
|
*
|
|
* @todo
|
|
* -----------------------------------------------------------------------------
|
|
*/
|
|
extern ErrorStatus repairMenu_construct(struct RepairMenu* self, struct MenuCore* menuCore, struct MemoryDevice* memoryDevice, Observer repairScreenUpdateObserver);
|
|
|
|
|
|
/** ----------------------------------------------------------------------------
|
|
* 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);
|
|
|
|
|
|
extern void repairMenu_interlockWarning(struct RepairMenu* self, T_INTERLOCK_ID interlockID);
|
|
|
|
|
|
/** ----------------------------------------------------------------------------
|
|
* repairMenu_interlockFailed
|
|
* Interlock verification failed
|
|
*
|
|
* @param self The repair menu object
|
|
* @param interlockID 0 for common interlock
|
|
* !0 for the tesla interlock
|
|
*
|
|
* @return void
|
|
*
|
|
* @todo
|
|
* -----------------------------------------------------------------------------
|
|
*/
|
|
extern void repairMenu_interlockFailed(struct RepairMenu* self, T_INTERLOCK_ID interlockID);
|
|
|
|
|
|
extern void repairMenu_processFailed(struct RepairMenu* self);
|
|
|
|
|
|
extern void repairMenu_printCRCFailure(struct RepairMenu* self, T_ErrorCode errorCode);
|
|
|
|
|
|
extern void repairMenu_menuStateHandle(struct MenuCore* menuCore);
|
|
|
|
|
|
extern void repairMenu_createMenuEntries(struct MenuCore* menuCore);
|
|
|
|
#endif /* INC_REPAIRMENU_H_ */
|