git-svn-id: https://svn.vbchaos.nl/svn/hsb/trunk@426 05563f52-14a8-4384-a975-3d1654cca0fa
122 lines
3.4 KiB
C
122 lines
3.4 KiB
C
// -----------------------------------------------------------------------------
|
|
/// @file SignalProfileGenerator.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
|
|
// -----------------------------------------------------------------------------
|
|
|
|
/**
|
|
* SignalProfileGenerator implementation
|
|
* \defgroup SignalProfileGenerator Package SignalProfileGenerator
|
|
* \ingroup hsb-mrts
|
|
* @{
|
|
*/
|
|
|
|
#ifndef INC_SIGNALPROFILEGENERATOR_H_
|
|
#define INC_SIGNALPROFILEGENERATOR_H_
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Include files
|
|
// -----------------------------------------------------------------------------
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include "stm32f10x.h"
|
|
|
|
#include "RepairPreset.h"
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Constant and macro definitions
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Type definitions.
|
|
// -----------------------------------------------------------------------------
|
|
|
|
typedef enum
|
|
{
|
|
SPG_PREPARE = 0,
|
|
SPG_SOFTSTART,
|
|
SPG_VOLTAGE_HOLD,
|
|
SPG_PAUSE,
|
|
SPG_PAUSE_RESTORE,
|
|
SPG_PAUSE_RESTORE_SOFTSTART,
|
|
SPG_FINISH_VERIFY,
|
|
SPG_FINISHED
|
|
} RepairState;
|
|
|
|
struct SignalProfileGenerator
|
|
{
|
|
bool initialized;
|
|
int signal;
|
|
uint32_t secondsCounter;
|
|
RepairState currentState;
|
|
|
|
int startVoltage;
|
|
uint32_t startTime;
|
|
uint32_t softStartTimer;
|
|
uint32_t voltageHoldTimer;
|
|
uint32_t totalStartTime;
|
|
uint32_t totalRunTime;
|
|
|
|
int pauseStartVoltage;
|
|
uint32_t pauseStartTime;
|
|
uint32_t pauseSoftStartTimer;
|
|
RepairState statePriorToPause;
|
|
int voltagePriorToPause;
|
|
//
|
|
bool isProcessRunning;
|
|
|
|
int currentPresetIndex;
|
|
const struct RepairPreset* repairPreset;
|
|
};
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Function declarations
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
extern ErrorStatus SignalProfileGenerator_construct(struct SignalProfileGenerator* self, const struct RepairPreset* preset);
|
|
|
|
|
|
extern void SignalProfileGenerator_destruct(struct SignalProfileGenerator* self);
|
|
|
|
|
|
extern void SignalProfileGenerator_calculate(struct SignalProfileGenerator* self);
|
|
|
|
|
|
extern void SignalProfileGenerator_pause(struct SignalProfileGenerator* self);
|
|
|
|
|
|
extern bool SignalProfileGenerator_isPaused(struct SignalProfileGenerator* self);
|
|
|
|
|
|
extern bool SignalProfileGenerator_isFinished(struct SignalProfileGenerator* self);
|
|
|
|
|
|
extern void SignalProfileGenerator_continue(struct SignalProfileGenerator* self);
|
|
|
|
|
|
extern uint32_t SignalProfileGenerator_getRemainingTime(const struct SignalProfileGenerator* self);
|
|
|
|
|
|
extern uint32_t SignalProfileGenerator_getTotalRepairTime(const struct SignalProfileGenerator* self);
|
|
#endif /* INC_SIGNALPROFILEGENERATOR_H_ */
|
|
|
|
/** @} */
|