Files
hsb/S - Software/0 - HSB MRTS Kathode-MCP/3 - Implementation/0 - Code/hsb-mrts/inc/SignalProfileGenerator.h
mmi e3ca058c96 Updates:
- Re-located repairprocessrow information in dedicated object
- added error conditions to repair row and added condition handling to repair process

git-svn-id: https://svn.vbchaos.nl/svn/hsb/trunk@260 05563f52-14a8-4384-a975-3d1654cca0fa
2017-10-23 09:02:13 +00:00

108 lines
3.0 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
// -----------------------------------------------------------------------------
/// @defgroup {group_name} {group_description}
/// Description
/// @file SignalProfileGenerator.h
/// @ingroup {group_name}
#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;
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 void SignalProfileGenerator_continue(struct SignalProfileGenerator* self);
extern uint32_t SignalProfileGenerator_getRemainingTime(const struct SignalProfileGenerator* self);
#endif /* INC_SIGNALPROFILEGENERATOR_H_ */