From 553ebd04c133299422769f7b3b723a5df53db2b2 Mon Sep 17 00:00:00 2001 From: mmi Date: Fri, 17 Nov 2017 13:59:48 +0000 Subject: [PATCH] Fixed number of stages bug. git-svn-id: https://svn.vbchaos.nl/svn/hsb/trunk@282 05563f52-14a8-4384-a975-3d1654cca0fa --- .../3 - Implementation/0 - Code/buglist.txt | 4 +- .../0 - Code/hsb-mrts/src/RepairPreset.c | 37 ++++++++++------ .../hsb-mrts/src/SignalProfileGenerator.c | 44 +++++++++++-------- 3 files changed, 51 insertions(+), 34 deletions(-) diff --git a/S - Software/0 - HSB MRTS Kathode-MCP/3 - Implementation/0 - Code/buglist.txt b/S - Software/0 - HSB MRTS Kathode-MCP/3 - Implementation/0 - Code/buglist.txt index 3171298..675ca96 100644 --- a/S - Software/0 - HSB MRTS Kathode-MCP/3 - Implementation/0 - Code/buglist.txt +++ b/S - Software/0 - HSB MRTS Kathode-MCP/3 - Implementation/0 - Code/buglist.txt @@ -1,11 +1,11 @@ - Display backlight unstable - Display cursor unstable - HW validation menu outdated/unfunctional -- NumberOfStages Macro for presets not implemented well. It will be ignored when generating DEFAULT presets - repairMenu has bad reference to getmainrepairmenu FIXED - PIN change verification not functional -- Multi-Language support added to menu. All strings/messages outsourced to dedicated file. MakeFile adapted \ No newline at end of file +- Multi-Language support added to menu. All strings/messages outsourced to dedicated file. MakeFile adapted +- NumberOfStages Macro for presets not implemented well. It will be ignored when generating DEFAULT presets \ No newline at end of file diff --git a/S - Software/0 - HSB MRTS Kathode-MCP/3 - Implementation/0 - Code/hsb-mrts/src/RepairPreset.c b/S - Software/0 - HSB MRTS Kathode-MCP/3 - Implementation/0 - Code/hsb-mrts/src/RepairPreset.c index 6f3c838..eb486b1 100644 --- a/S - Software/0 - HSB MRTS Kathode-MCP/3 - Implementation/0 - Code/hsb-mrts/src/RepairPreset.c +++ b/S - Software/0 - HSB MRTS Kathode-MCP/3 - Implementation/0 - Code/hsb-mrts/src/RepairPreset.c @@ -55,38 +55,49 @@ ErrorStatus RepairPreset_generateDefaultPreset(struct RepairPreset* self, unsign { ErrorStatus returnValue = SUCCESS; + int loopCounter; + if (presetNumber <= REPAIR_PRESET_MAX_ONE_STAGE_PRESETS) { - self->numberOfStages = 1; + self->numberOfStages = 1; } else { // TELSA PCBA does not need multiple stages if (PCBA_getInstance()->pcba == PCBA_Tesla) { - self->numberOfStages = 1; + self->numberOfStages = 1; } else { - self->numberOfStages = 2; + self->numberOfStages = REPAIR_PRESET_MAX_STAGES; } } - self->presetNumber = presetNumber; - self->preset[0].softstartDuration = 1800; - self->preset[0].duration = 28800; + + self->presetNumber = presetNumber; + self->preset[0].softstartDuration = 1800; + self->preset[0].duration = 28800; + if (PCBA_getInstance()->pcba == PCBA_CathodeMCP) { - self->preset[0].voltage = -1000; - self->preset[1].voltage = -1000; + for (loopCounter = 0; loopCounter < self->numberOfStages; loopCounter++) + { + self->preset[loopCounter].softstartDuration = 1800; + self->preset[loopCounter].duration = 28800; + self->preset[loopCounter].voltage = -1000; + } + } else { - self->preset[0].voltage = 1000; - self->preset[1].voltage = 1000; + for (loopCounter = 0; loopCounter < self->numberOfStages; loopCounter++) + { + self->preset[loopCounter].softstartDuration = 1800; + self->preset[loopCounter].duration = 28800; + self->preset[0].voltage = 1000; + } + } - // Generate dummy presets to fill the memory - self->preset[1].softstartDuration = 1800; - self->preset[1].duration = 28800; return returnValue; } diff --git a/S - Software/0 - HSB MRTS Kathode-MCP/3 - Implementation/0 - Code/hsb-mrts/src/SignalProfileGenerator.c b/S - Software/0 - HSB MRTS Kathode-MCP/3 - Implementation/0 - Code/hsb-mrts/src/SignalProfileGenerator.c index 7e18ae4..50bb50d 100644 --- a/S - Software/0 - HSB MRTS Kathode-MCP/3 - Implementation/0 - Code/hsb-mrts/src/SignalProfileGenerator.c +++ b/S - Software/0 - HSB MRTS Kathode-MCP/3 - Implementation/0 - Code/hsb-mrts/src/SignalProfileGenerator.c @@ -70,27 +70,34 @@ ErrorStatus SignalProfileGenerator_construct(struct SignalProfileGenerator* self if (!self->initialized) { - self->secondsCounter = 0; - self->currentPresetIndex = 0; - self->currentState = SPG_PREPARE; - self->initialized = true; - self->isProcessRunning = false; - self->repairPreset = preset; - self->signal = 0; - self->statePriorToPause = SPG_PREPARE; - self->totalRunTime = 0; - self->totalStartTime = 0; + if (preset != NULL) + { + self->secondsCounter = 0; + self->currentPresetIndex = 0; + self->currentState = SPG_PREPARE; + self->initialized = true; + self->isProcessRunning = false; + self->repairPreset = preset; + self->signal = 0; + self->statePriorToPause = SPG_PREPARE; + self->totalRunTime = 0; + self->totalStartTime = 0; - self->pauseSoftStartTimer = 0; - self->pauseStartTime = 0; - self->pauseStartVoltage = 0; + self->pauseSoftStartTimer = 0; + self->pauseStartTime = 0; + self->pauseStartVoltage = 0; - self->softStartTimer = 0; - self->startTime = 0; - self->startVoltage = 0; + self->softStartTimer = 0; + self->startTime = 0; + self->startVoltage = 0; - self->voltageHoldTimer = 0; - self->voltagePriorToPause = 0; + self->voltageHoldTimer = 0; + self->voltagePriorToPause = 0; + } + else + { + returnValue = ERROR; + } } else @@ -109,7 +116,6 @@ void SignalProfileGenerator_destruct(struct SignalProfileGenerator* self) void SignalProfileGenerator_calculate(struct SignalProfileGenerator* self) { - if (self->initialized) {