|
|
|
|
@@ -54,6 +54,7 @@
|
|
|
|
|
#include "PCBA.h"
|
|
|
|
|
#include "rtc.h"
|
|
|
|
|
#include "storm700.h"
|
|
|
|
|
#include "Version.h"
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// Constant and macro definitions
|
|
|
|
|
@@ -87,12 +88,28 @@ static void repairMenu_printAskPause(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_printPause(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_printFinish(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_printPreset(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_printChangePinScreen(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_printIOInterlockStatus(struct MenuCore* self);
|
|
|
|
|
|
|
|
|
|
static void repairMenu_configPresetFirstSoftstart(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_configConfirmPresetFirstSoftstart(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_configConfirmPresetFirstDuration(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_configConfirmPresetFirstVoltage(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_configConfirmPresetSecondSoftstart(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_configConfirmPresetSecondDuration(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_configConfirmPresetSecondVoltage(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_configConfirmPreset(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_printConfigPreset(struct MenuCore* self);
|
|
|
|
|
|
|
|
|
|
static void repairMenu_printInfo(struct MenuCore* self);
|
|
|
|
|
|
|
|
|
|
static void repairMenu_selectCathodeRepair(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_selectMCPRepair(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_selectPreset(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_solenoidLock(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_solenoidUnlock(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_teslagunRelease(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_teslagunBlock(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_startRepairProcess(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_stopRepairProcess(struct MenuCore* self);
|
|
|
|
|
static void repairMenu_abortRepairProcessAndGotoMainMenu(struct MenuCore* self);
|
|
|
|
|
@@ -303,7 +320,7 @@ static void repairMenu_printPreset(struct MenuCore* self)
|
|
|
|
|
int loopCounter;
|
|
|
|
|
char buffer[self->display->displayDevice->parameters.numberOfColumns];
|
|
|
|
|
// Print the preset information of the current preset under the cursor, NOT the preset that is currently selected
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "Preset %d info", self->cursorIndex);
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "Preset %d info", self->selectionIndex);
|
|
|
|
|
// Always print Row1 (index0), ignoring the scrolling index
|
|
|
|
|
Display_write(self->display, buffer, 1, 1);
|
|
|
|
|
|
|
|
|
|
@@ -314,21 +331,210 @@ static void repairMenu_printPreset(struct MenuCore* self)
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "Volt:");
|
|
|
|
|
Display_write(self->display, buffer, 4, 1);
|
|
|
|
|
|
|
|
|
|
for (loopCounter = 0; loopCounter < RepairPresets_getPreset(self->cursorIndex)->numberOfStages; loopCounter++)
|
|
|
|
|
for (loopCounter = 0; loopCounter < RepairPresets_getPreset(self->selectionIndex)->numberOfStages; loopCounter++)
|
|
|
|
|
{
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%5dm", (RepairPresets_getPreset(self->cursorIndex)->preset[loopCounter].softstartDuration / 60));
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%5dm", (RepairPresets_getPreset(self->selectionIndex)->preset[loopCounter].softstartDuration / 60));
|
|
|
|
|
Display_write(self->display, buffer, 2, 8 + loopCounter * 7);
|
|
|
|
|
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%5dm", (RepairPresets_getPreset(self->cursorIndex)->preset[loopCounter].duration / 60));
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%5dm", (RepairPresets_getPreset(self->selectionIndex)->preset[loopCounter].duration / 60));
|
|
|
|
|
Display_write(self->display, buffer, 3, 8 + loopCounter * 7);
|
|
|
|
|
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%5dV", RepairPresets_getPreset(self->cursorIndex)->preset[loopCounter].voltage);
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%5dV", RepairPresets_getPreset(self->selectionIndex)->preset[loopCounter].voltage);
|
|
|
|
|
Display_write(self->display, buffer, 4, 8 + loopCounter * 7);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_printChangePinScreen(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
char buffer[self->display->displayDevice->parameters.numberOfColumns];
|
|
|
|
|
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), " New PIN: ----");
|
|
|
|
|
Display_write(self->display, buffer, 3, 1);
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), " Repeat PIN: ----");
|
|
|
|
|
Display_write(self->display, buffer, 4, 1);
|
|
|
|
|
|
|
|
|
|
Display_setCursorToPosition(self->display, 3, 14);
|
|
|
|
|
|
|
|
|
|
DisplayDevice_setBlinkingCursorState(self->display->displayDevice, ON);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_printIOInterlockStatus(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
char buffer[self->display->displayDevice->parameters.numberOfColumns];
|
|
|
|
|
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "Cover Interlock is");
|
|
|
|
|
Display_write(self->display, buffer, 2, 1);
|
|
|
|
|
|
|
|
|
|
if (Interlock_isClosed(interlock))
|
|
|
|
|
{
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "closed");
|
|
|
|
|
Display_write(self->display, buffer, 3, 8);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "open");
|
|
|
|
|
Display_write(self->display, buffer, 3, 9);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_configPresetFirstSoftstart(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
self->insertValue = RepairPresets_getPreset(self->selectionIndex)->preset[0].softstartDuration / 60;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_configConfirmPresetFirstSoftstart(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
// Takeover the inserted value
|
|
|
|
|
RepairPreset_setSoftstartValue(&RepairPresets_getPreset(self->selectionIndex)->preset[0], self->insertValue * 60);
|
|
|
|
|
// Goto next insertion state
|
|
|
|
|
MenuCore_changeState(self, RM_ADMIN_PRESET_CONFIG_FIRST_DURATION);
|
|
|
|
|
// Receive next value for insertion
|
|
|
|
|
self->insertValue = RepairPresets_getPreset(self->selectionIndex)->preset[0].duration / 60;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_configConfirmPresetFirstDuration(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
// Takeover the inserted value
|
|
|
|
|
RepairPreset_setDurationValue(&RepairPresets_getPreset(self->selectionIndex)->preset[0], self->insertValue * 60);
|
|
|
|
|
// Goto next insertion state
|
|
|
|
|
MenuCore_changeState(self, RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE);
|
|
|
|
|
// Receive next value for insertion
|
|
|
|
|
self->insertValue = RepairPresets_getPreset(self->selectionIndex)->preset[0].voltage;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_configConfirmPresetFirstVoltage(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
// Takeover the inserted value
|
|
|
|
|
RepairPreset_setVoltageValue(&RepairPresets_getPreset(self->selectionIndex)->preset[0], self->insertValue);
|
|
|
|
|
|
|
|
|
|
// Check if another Stage is available inside this preset
|
|
|
|
|
if (RepairPresets_getPreset(self->selectionIndex)->numberOfStages > 1)
|
|
|
|
|
{
|
|
|
|
|
// There is another stage
|
|
|
|
|
// Receive next value for insertion
|
|
|
|
|
self->insertValue = RepairPresets_getPreset(self->selectionIndex)->preset[1].softstartDuration / 60;
|
|
|
|
|
MenuCore_changeState(self, RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// Just a single stage preset
|
|
|
|
|
repairMenu_configConfirmPreset(self);
|
|
|
|
|
Display_setBlinkingCursorState(self->display, OFF);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_configConfirmPresetSecondSoftstart(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
// Takeover the inserted value
|
|
|
|
|
RepairPreset_setSoftstartValue(&RepairPresets_getPreset(self->selectionIndex)->preset[1], self->insertValue * 60);
|
|
|
|
|
// Goto next insertion state
|
|
|
|
|
MenuCore_changeState(self, RM_ADMIN_PRESET_CONFIG_SECOND_DURATION);
|
|
|
|
|
// Receive next value for insertion
|
|
|
|
|
self->insertValue = RepairPresets_getPreset(self->selectionIndex)->preset[1].duration / 60;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_configConfirmPresetSecondDuration(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
// Takeover the inserted value
|
|
|
|
|
RepairPreset_setDurationValue(&RepairPresets_getPreset(self->selectionIndex)->preset[1], self->insertValue * 60);
|
|
|
|
|
// Goto next insertion state
|
|
|
|
|
MenuCore_changeState(self, RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE);
|
|
|
|
|
// Receive next value for insertion
|
|
|
|
|
self->insertValue = RepairPresets_getPreset(self->selectionIndex)->preset[1].voltage;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_configConfirmPresetSecondVoltage(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
// Takeover the inserted value
|
|
|
|
|
RepairPreset_setVoltageValue(&RepairPresets_getPreset(self->selectionIndex)->preset[1], self->insertValue);
|
|
|
|
|
// Goto next insertion state
|
|
|
|
|
|
|
|
|
|
// Check if another Stage is available inside this preset
|
|
|
|
|
if (RepairPresets_getPreset(self->selectionIndex)->numberOfStages > 2)
|
|
|
|
|
{
|
|
|
|
|
// There is another stage
|
|
|
|
|
|
|
|
|
|
// TODO - Currently only two-stage presets are implemented
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// No more stages available
|
|
|
|
|
repairMenu_configConfirmPreset(self);
|
|
|
|
|
Display_setBlinkingCursorState(self->display, OFF);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_configConfirmPreset(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
RepairPresets_writePreset(RepairPresets_getPreset(self->selectionIndex));
|
|
|
|
|
RepairPresets_savePresets();
|
|
|
|
|
MenuCore_changeState(self, RM_ADMIN_PRESET_CONFIG_SELECT);
|
|
|
|
|
|
|
|
|
|
Display_clearScreen(self->display);
|
|
|
|
|
char buffer[20];
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "Preset %d saved", self->selectionIndex);
|
|
|
|
|
Display_write(self->display, buffer, 3, 2);
|
|
|
|
|
vTaskDelay(2000);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_printConfigPreset(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
int loopCounter;
|
|
|
|
|
char buffer[self->display->displayDevice->parameters.numberOfColumns];
|
|
|
|
|
// Print the preset information of the current preset under the cursor, NOT the preset that is currently selected
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "Preset %d info", self->selectionIndex);
|
|
|
|
|
// Always print Row1 (index0), ignoring the scrolling index
|
|
|
|
|
Display_write(self->display, buffer, 1, 1);
|
|
|
|
|
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "Start:");
|
|
|
|
|
Display_write(self->display, buffer, 2, 1);
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "Time:");
|
|
|
|
|
Display_write(self->display, buffer, 3, 1);
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "Volt:");
|
|
|
|
|
Display_write(self->display, buffer, 4, 1);
|
|
|
|
|
|
|
|
|
|
for (loopCounter = 0; loopCounter < RepairPresets_getPreset(self->selectionIndex)->numberOfStages; loopCounter++)
|
|
|
|
|
{
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%5dm", (RepairPresets_getPreset(self->selectionIndex)->preset[loopCounter].softstartDuration / 60));
|
|
|
|
|
Display_write(self->display, buffer, 2, 8 + loopCounter * 7);
|
|
|
|
|
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%5dm", (RepairPresets_getPreset(self->selectionIndex)->preset[loopCounter].duration / 60));
|
|
|
|
|
Display_write(self->display, buffer, 3, 8 + loopCounter * 7);
|
|
|
|
|
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%5dV", RepairPresets_getPreset(self->selectionIndex)->preset[loopCounter].voltage);
|
|
|
|
|
Display_write(self->display, buffer, 4, 8 + loopCounter * 7);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_printInfo(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
Display_write(mainDisplay, PCBA_getInstance()->name, 3, 2);
|
|
|
|
|
char buffer[20];
|
|
|
|
|
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "SW V. %d.%d.%d.%d", Version_getInstance()->major,
|
|
|
|
|
Version_getInstance()->minor,
|
|
|
|
|
Version_getInstance()->branch,
|
|
|
|
|
Version_getInstance()->patch);
|
|
|
|
|
Display_write(mainDisplay, buffer, 4, 4);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_selectCathodeRepair(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
@@ -351,11 +557,11 @@ static void repairMenu_selectMCPRepair(struct MenuCore* self)
|
|
|
|
|
static void repairMenu_selectPreset(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
struct RepairMenu* tempMenu = repairMenus_getMainRepairMenu();
|
|
|
|
|
tempMenu->repairPreset = RepairPresets_getPreset(self->cursorIndex);
|
|
|
|
|
tempMenu->repairPreset = RepairPresets_getPreset(self->selectionIndex);
|
|
|
|
|
|
|
|
|
|
Display_clearScreen(self->display);
|
|
|
|
|
char buffer[20];
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "Preset %d selected", self->cursorIndex);
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "Preset %d selected", self->selectionIndex);
|
|
|
|
|
Display_write(self->display, buffer, 3, 2);
|
|
|
|
|
vTaskDelay(2000);
|
|
|
|
|
}
|
|
|
|
|
@@ -372,6 +578,17 @@ static void repairMenu_solenoidUnlock(struct MenuCore* self)
|
|
|
|
|
CoverSolenoid_unlock();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void repairMenu_teslagunRelease(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
TeslaGunSafety_release();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_teslagunBlock(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
TeslaGunSafety_block();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void repairMenu_startRepairProcess(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
@@ -527,6 +744,81 @@ void repairMenu_menuStateHandle(struct MenuCore* self)
|
|
|
|
|
{
|
|
|
|
|
repairMenu_printFinish(self);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if (self->menuState == RM_ADMIN_IO_INTERLOCK)
|
|
|
|
|
{
|
|
|
|
|
// Show the current INTERLOCK status
|
|
|
|
|
repairMenu_printIOInterlockStatus(self);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if (self->menuState == RM_ADMIN_INFO)
|
|
|
|
|
{
|
|
|
|
|
repairMenu_printInfo(self);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if (self->menuState == RM_ADMIN_CHANGEPIN)
|
|
|
|
|
{
|
|
|
|
|
repairMenu_printChangePinScreen(self);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if (self->menuState == RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART)
|
|
|
|
|
{
|
|
|
|
|
repairMenu_printConfigPreset(self);
|
|
|
|
|
char buffer[7];
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%4d", self->insertValue);
|
|
|
|
|
Display_write(self->display, buffer, 2, 9);
|
|
|
|
|
Display_setCursorToPosition(self->display, 2, 12);
|
|
|
|
|
Display_setBlinkingCursorState(self->display, ON);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if (self->menuState == RM_ADMIN_PRESET_CONFIG_FIRST_DURATION)
|
|
|
|
|
{
|
|
|
|
|
repairMenu_printConfigPreset(self);
|
|
|
|
|
char buffer[7];
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%4d", self->insertValue);
|
|
|
|
|
Display_write(self->display, buffer, 3, 9);
|
|
|
|
|
Display_setCursorToPosition(self->display, 3, 12);
|
|
|
|
|
Display_setBlinkingCursorState(self->display, ON);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if (self->menuState == RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE)
|
|
|
|
|
{
|
|
|
|
|
repairMenu_printConfigPreset(self);
|
|
|
|
|
char buffer[7];
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%5d", self->insertValue);
|
|
|
|
|
Display_write(self->display, buffer, 4, 8);
|
|
|
|
|
Display_setCursorToPosition(self->display, 4, 12);
|
|
|
|
|
Display_setBlinkingCursorState(self->display, ON);
|
|
|
|
|
}
|
|
|
|
|
else if (self->menuState == RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART)
|
|
|
|
|
{
|
|
|
|
|
repairMenu_printConfigPreset(self);
|
|
|
|
|
char buffer[7];
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%5d", self->insertValue);
|
|
|
|
|
Display_write(self->display, buffer, 2, 15);
|
|
|
|
|
Display_setCursorToPosition(self->display, 2, 19);
|
|
|
|
|
Display_setBlinkingCursorState(self->display, ON);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if (self->menuState == RM_ADMIN_PRESET_CONFIG_SECOND_DURATION)
|
|
|
|
|
{
|
|
|
|
|
repairMenu_printConfigPreset(self);
|
|
|
|
|
char buffer[7];
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%5d", self->insertValue);
|
|
|
|
|
Display_write(self->display, buffer, 3, 15);
|
|
|
|
|
Display_setCursorToPosition(self->display, 3, 19);
|
|
|
|
|
Display_setBlinkingCursorState(self->display, ON);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if (self->menuState == RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE)
|
|
|
|
|
{
|
|
|
|
|
repairMenu_printConfigPreset(self);
|
|
|
|
|
char buffer[7];
|
|
|
|
|
snprintf(buffer, sizeof(buffer) / sizeof(buffer[0]), "%5d", self->insertValue);
|
|
|
|
|
Display_write(self->display, buffer, 4, 15);
|
|
|
|
|
Display_setCursorToPosition(self->display, 4, 19);
|
|
|
|
|
Display_setBlinkingCursorState(self->display, ON);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -534,18 +826,30 @@ void repairMenu_menuStateHandle(struct MenuCore* self)
|
|
|
|
|
void repairMenu_createMenuEntries(struct MenuCore* menuCore)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* MAIN MENU SCREEN with 3 options
|
|
|
|
|
* TUBE REPAIR
|
|
|
|
|
* for Tesla and Anode, go to repair menu directly
|
|
|
|
|
* for CathodeMCP, ask for type of repair first
|
|
|
|
|
* ADMINISTRATION
|
|
|
|
|
* CALIBRATION
|
|
|
|
|
*
|
|
|
|
|
* Key '0' allows control of the Solenoids - Hold to open, release to close
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_MAINMENU], MENU_HAS_CURSOR, 4);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_MAINMENU], PCBA_getInstance()->name, RM_MAINMENU, NULL);
|
|
|
|
|
if (PCBA_getInstance()->pcba == PCBA_CathodeMCP)
|
|
|
|
|
{
|
|
|
|
|
// For Cathode/MCP PCBA, the type of repair must be selected first
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_MAINMENU], MenuText_MAINMENU[MENUTEXT_ENGLISH][1], RM_CATHODEMCP_SELECT, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_MAINMENU], MenuText_MAINMENU[MENUTEXT_ENGLISH][1], RM_REPAIR_CATHODEMCP_SELECT, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_MAINMENU], MenuText_MAINMENU[MENUTEXT_ENGLISH][2], RM_ADMIN_CATHODEMCP_SELECT, NULL);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_MAINMENU], MenuText_MAINMENU[MENUTEXT_ENGLISH][1], RM_REPAIRMENU, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_MAINMENU], MenuText_MAINMENU[MENUTEXT_ENGLISH][2], RM_ADMINMENU, NULL);
|
|
|
|
|
}
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_MAINMENU], MenuText_MAINMENU[MENUTEXT_ENGLISH][2], RM_ADMINMENU, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_MAINMENU], MenuText_MAINMENU[MENUTEXT_ENGLISH][3], RM_CALIBRATIONMENU, NULL);
|
|
|
|
|
MenuElements_addKeyAction_SCROLLUP(&menuCore->menuArray[RM_MAINMENU], 'U', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_SCROLLDOWN(&menuCore->menuArray[RM_MAINMENU], 'D', PRESSED);
|
|
|
|
|
@@ -556,19 +860,35 @@ void repairMenu_createMenuEntries(struct MenuCore* menuCore)
|
|
|
|
|
MenuElements_addKeyAction_EXECUTEFUNCTION(&menuCore->menuArray[RM_MAINMENU], '0', PRESSED, repairMenu_solenoidUnlock);
|
|
|
|
|
MenuElements_addKeyAction_EXECUTEFUNCTION(&menuCore->menuArray[RM_MAINMENU], '0', RELEASED, repairMenu_solenoidLock);
|
|
|
|
|
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_CATHODEMCP_SELECT], MENU_HAS_CURSOR, 3);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_CATHODEMCP_SELECT], MenuText_CATHODEMCP_SELECT[MENUTEXT_ENGLISH][0], RM_CATHODEMCP_SELECT, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_CATHODEMCP_SELECT], MenuText_CATHODEMCP_SELECT[MENUTEXT_ENGLISH][1], RM_REPAIRMENU, repairMenu_selectCathodeRepair);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_CATHODEMCP_SELECT], MenuText_CATHODEMCP_SELECT[MENUTEXT_ENGLISH][2], RM_REPAIRMENU, repairMenu_selectMCPRepair);
|
|
|
|
|
MenuElements_addKeyAction_SCROLLUP(&menuCore->menuArray[RM_CATHODEMCP_SELECT], 'U', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_SCROLLDOWN(&menuCore->menuArray[RM_CATHODEMCP_SELECT], 'D', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_SELECT(&menuCore->menuArray[RM_CATHODEMCP_SELECT], 'E', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_CATHODEMCP_SELECT], '1', PRESSED, 1);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_CATHODEMCP_SELECT], '2', PRESSED, 2);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_CATHODEMCP_SELECT], 'X', PRESSED, RM_MAINMENU);
|
|
|
|
|
MenuElements_addKeyAction_EXECUTEFUNCTION(&menuCore->menuArray[RM_CATHODEMCP_SELECT], '0', PRESSED, repairMenu_solenoidUnlock);
|
|
|
|
|
MenuElements_addKeyAction_EXECUTEFUNCTION(&menuCore->menuArray[RM_CATHODEMCP_SELECT], '0', RELEASED, repairMenu_solenoidLock);
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* Cathode / MCP selection
|
|
|
|
|
* This screen is only required for CATHODE/MCP PCBAs and allows selection between these two repair methods
|
|
|
|
|
*
|
|
|
|
|
* Key '0' allows control of the Solenoids - Hold to open, release to close
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_REPAIR_CATHODEMCP_SELECT], MENU_HAS_CURSOR, 3);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_REPAIR_CATHODEMCP_SELECT], MenuText_CATHODEMCP_SELECT[MENUTEXT_ENGLISH][0], RM_REPAIR_CATHODEMCP_SELECT, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_REPAIR_CATHODEMCP_SELECT], MenuText_CATHODEMCP_SELECT[MENUTEXT_ENGLISH][1], RM_REPAIRMENU, repairMenu_selectCathodeRepair);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_REPAIR_CATHODEMCP_SELECT], MenuText_CATHODEMCP_SELECT[MENUTEXT_ENGLISH][2], RM_REPAIRMENU, repairMenu_selectMCPRepair);
|
|
|
|
|
MenuElements_addKeyAction_SCROLLUP(&menuCore->menuArray[RM_REPAIR_CATHODEMCP_SELECT], 'U', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_SCROLLDOWN(&menuCore->menuArray[RM_REPAIR_CATHODEMCP_SELECT], 'D', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_SELECT(&menuCore->menuArray[RM_REPAIR_CATHODEMCP_SELECT], 'E', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_REPAIR_CATHODEMCP_SELECT], '1', PRESSED, 1);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_REPAIR_CATHODEMCP_SELECT], '2', PRESSED, 2);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_REPAIR_CATHODEMCP_SELECT], 'X', PRESSED, RM_MAINMENU);
|
|
|
|
|
MenuElements_addKeyAction_EXECUTEFUNCTION(&menuCore->menuArray[RM_REPAIR_CATHODEMCP_SELECT], '0', PRESSED, repairMenu_solenoidUnlock);
|
|
|
|
|
MenuElements_addKeyAction_EXECUTEFUNCTION(&menuCore->menuArray[RM_REPAIR_CATHODEMCP_SELECT], '0', RELEASED, repairMenu_solenoidLock);
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* REPAIR MENU
|
|
|
|
|
* This screen is the main repair screen
|
|
|
|
|
* SELECT PRESET
|
|
|
|
|
* START REPAIR
|
|
|
|
|
*
|
|
|
|
|
* Key '0' allows control of the Solenoids - Hold to open, release to close
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_REPAIRMENU], MENU_HAS_CURSOR, 4);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_REPAIRMENU], MenuText_REPAIRMENU[MENUTEXT_ENGLISH][0], RM_REPAIRMENU, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_REPAIRMENU], MenuText_REPAIRMENU[MENUTEXT_ENGLISH][1], RM_PRESETMENU, NULL);
|
|
|
|
|
@@ -581,7 +901,7 @@ void repairMenu_createMenuEntries(struct MenuCore* menuCore)
|
|
|
|
|
if (PCBA_getInstance()->pcba == PCBA_CathodeMCP)
|
|
|
|
|
{
|
|
|
|
|
// For Cathode/MCP PCBA, the type of repair must can be selected
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_REPAIRMENU], 'X', PRESSED, RM_CATHODEMCP_SELECT);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_REPAIRMENU], 'X', PRESSED, RM_REPAIR_CATHODEMCP_SELECT);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
@@ -591,20 +911,14 @@ void repairMenu_createMenuEntries(struct MenuCore* menuCore)
|
|
|
|
|
MenuElements_addKeyAction_EXECUTEFUNCTION(&menuCore->menuArray[RM_REPAIRMENU], '0', PRESSED, repairMenu_solenoidUnlock);
|
|
|
|
|
MenuElements_addKeyAction_EXECUTEFUNCTION(&menuCore->menuArray[RM_REPAIRMENU], '0', RELEASED, repairMenu_solenoidLock);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMINMENU], MENU_HAS_NO_CURSOR, 2);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMINMENU], MenuText_ADMINMENU[MENUTEXT_ENGLISH][0], RM_ADMINMENU, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMINMENU], MenuText_ADMINMENU[MENUTEXT_ENGLISH][1], RM_ADMINMENU, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMINMENU], MenuText_ADMINMENU[MENUTEXT_ENGLISH][2], RM_ADMINMENU, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMINMENU], MenuText_ADMINMENU[MENUTEXT_ENGLISH][3], RM_ADMINMENU, NULL);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMINMENU], 'X', PRESSED, RM_MAINMENU);
|
|
|
|
|
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_CALIBRATIONMENU], MENU_HAS_NO_CURSOR, 2);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_CALIBRATIONMENU], MenuText_CALIBRATIONMENU[MENUTEXT_ENGLISH][0], RM_CALIBRATIONMENU, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_CALIBRATIONMENU], MenuText_CALIBRATIONMENU[MENUTEXT_ENGLISH][1], RM_CALIBRATIONMENU, NULL);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_CALIBRATIONMENU], 'X', PRESSED, RM_MAINMENU);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* PRESET SELECTION
|
|
|
|
|
* Select the repair preset
|
|
|
|
|
* Key 'R' shows preset information
|
|
|
|
|
*
|
|
|
|
|
* Key '0' allows control of the Solenoids - Hold to open, release to close
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_PRESETMENU], MENU_HAS_CURSOR, 10);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_PRESETMENU], MenuText_PRESETMENU[MENUTEXT_ENGLISH][0], RM_PRESETMENU, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_PRESETMENU], MenuText_PRESETMENU[MENUTEXT_ENGLISH][1], RM_REPAIRMENU, repairMenu_selectPreset);
|
|
|
|
|
@@ -633,10 +947,341 @@ void repairMenu_createMenuEntries(struct MenuCore* menuCore)
|
|
|
|
|
MenuElements_addKeyAction_EXECUTEFUNCTION(&menuCore->menuArray[RM_PRESETMENU], '0', RELEASED, repairMenu_solenoidLock);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_PRESETMENU], 'R', PRESSED, RM_PRESET_PRINT);
|
|
|
|
|
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_PRESET_PRINT], MENU_HAS_NO_CURSOR, 10);
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* PRESET INFORMATION
|
|
|
|
|
* Shows the preset information. Screen is generated via function, not as a menu
|
|
|
|
|
* Key 'L' and 'X' both leads back to preset selection.
|
|
|
|
|
* Showing information does not select the preset
|
|
|
|
|
*
|
|
|
|
|
* Key '0' allows control of the Solenoids - Hold to open, release to close
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_PRESET_PRINT], MENU_HAS_NO_CURSOR, 4);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_PRESET_PRINT], 'X', PRESSED, RM_PRESETMENU);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_PRESET_PRINT], 'L', PRESSED, RM_PRESETMENU);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* ADMIN Cathode / MCP selection
|
|
|
|
|
* This screen is only required for CATHODE/MCP PCBAs and allows selection between these two repair methods
|
|
|
|
|
*
|
|
|
|
|
* Key '0' allows control of the Solenoids - Hold to open, release to close
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_CATHODEMCP_SELECT], MENU_HAS_CURSOR, 3);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_CATHODEMCP_SELECT], MenuText_ADMIN_CATHODEMCP_SELECT[MENUTEXT_ENGLISH][0], RM_ADMIN_CATHODEMCP_SELECT, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_CATHODEMCP_SELECT], MenuText_ADMIN_CATHODEMCP_SELECT[MENUTEXT_ENGLISH][1], RM_ADMINMENU, repairMenu_selectCathodeRepair);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_CATHODEMCP_SELECT], MenuText_ADMIN_CATHODEMCP_SELECT[MENUTEXT_ENGLISH][2], RM_ADMINMENU, repairMenu_selectMCPRepair);
|
|
|
|
|
MenuElements_addKeyAction_SCROLLUP(&menuCore->menuArray[RM_ADMIN_CATHODEMCP_SELECT], 'U', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_SCROLLDOWN(&menuCore->menuArray[RM_ADMIN_CATHODEMCP_SELECT], 'D', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_SELECT(&menuCore->menuArray[RM_ADMIN_CATHODEMCP_SELECT], 'E', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_CATHODEMCP_SELECT], '1', PRESSED, 1);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_CATHODEMCP_SELECT], '2', PRESSED, 2);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMIN_CATHODEMCP_SELECT], 'X', PRESSED, RM_MAINMENU);
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* ADMINISTRATION MAIN MENU
|
|
|
|
|
* All administrational functionality is concentrated in this menu. Allows access to:
|
|
|
|
|
* Change pin
|
|
|
|
|
* I/O control
|
|
|
|
|
* PRESET configuration
|
|
|
|
|
* Info & Version
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMINMENU], MENU_HAS_CURSOR, 5);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMINMENU], MenuText_ADMINMENU[MENUTEXT_ENGLISH][0], RM_ADMINMENU, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMINMENU], MenuText_ADMINMENU[MENUTEXT_ENGLISH][1], RM_ADMIN_CHANGEPIN, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMINMENU], MenuText_ADMINMENU[MENUTEXT_ENGLISH][2], RM_ADMIN_IOCONTROL, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMINMENU], MenuText_ADMINMENU[MENUTEXT_ENGLISH][3], RM_ADMIN_PRESET_CONFIG_SELECT, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMINMENU], MenuText_ADMINMENU[MENUTEXT_ENGLISH][4], RM_ADMIN_INFO, NULL);
|
|
|
|
|
if (PCBA_getInstance()->pcba == PCBA_CathodeMCP)
|
|
|
|
|
{
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMINMENU], 'X', PRESSED, RM_ADMIN_CATHODEMCP_SELECT);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMINMENU], 'X', PRESSED, RM_MAINMENU);
|
|
|
|
|
}
|
|
|
|
|
MenuElements_addKeyAction_SCROLLUP(&menuCore->menuArray[RM_ADMINMENU], 'U', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_SCROLLDOWN(&menuCore->menuArray[RM_ADMINMENU], 'D', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_SELECT(&menuCore->menuArray[RM_ADMINMENU], 'E', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMINMENU], '1', PRESSED, 1);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMINMENU], '2', PRESSED, 2);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMINMENU], '3', PRESSED, 3);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMINMENU], '4', PRESSED, 4);
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* ADMIN change pin
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_CHANGEPIN], MENU_HAS_NO_CURSOR, 5);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_CHANGEPIN], MenuText_ADMINCHANGEPINMENU[MENUTEXT_ENGLISH][0], RM_ADMIN_CHANGEPIN, NULL);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMIN_CHANGEPIN], 'X', PRESSED, RM_ADMINMENU);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_CHANGEPIN], '0', PRESSED, 4);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_CHANGEPIN], '1', PRESSED, 4);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_CHANGEPIN], '2', PRESSED, 4);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_CHANGEPIN], '3', PRESSED, 4);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_CHANGEPIN], '4', PRESSED, 4);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_CHANGEPIN], '5', PRESSED, 4);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_CHANGEPIN], '6', PRESSED, 4);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_CHANGEPIN], '7', PRESSED, 4);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_CHANGEPIN], '8', PRESSED, 4);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_CHANGEPIN], '9', PRESSED, 4);
|
|
|
|
|
MenuElements_addKeyAction_DIGITREMOVE(&menuCore->menuArray[RM_ADMIN_CHANGEPIN], 'L', PRESSED);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* ADMIN I/O control
|
|
|
|
|
* Read interlock
|
|
|
|
|
* Solenoid
|
|
|
|
|
* Get Voltage In
|
|
|
|
|
* Set Voltage Out
|
|
|
|
|
* Teslagun Relais
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
// TESLA PCBA has one additional menu item
|
|
|
|
|
if (PCBA_getInstance()->pcba == PCBA_Tesla)
|
|
|
|
|
{
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_IOCONTROL], MENU_HAS_CURSOR, 6);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_IOCONTROL], MENU_HAS_CURSOR, 5);
|
|
|
|
|
}
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_IOCONTROL], MenuText_ADMINIOMAINMENU[MENUTEXT_ENGLISH][0], RM_ADMIN_IOCONTROL, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_IOCONTROL], MenuText_ADMINIOMAINMENU[MENUTEXT_ENGLISH][1], RM_ADMIN_IO_INTERLOCK, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_IOCONTROL], MenuText_ADMINIOMAINMENU[MENUTEXT_ENGLISH][2], RM_ADMIN_IO_SOLENOID, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_IOCONTROL], MenuText_ADMINIOMAINMENU[MENUTEXT_ENGLISH][3], RM_ADMIN_IO_VOLTAGE_IN, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_IOCONTROL], MenuText_ADMINIOMAINMENU[MENUTEXT_ENGLISH][4], RM_ADMIN_IO_VOLTAGE_OUT, NULL);
|
|
|
|
|
if (PCBA_getInstance()->pcba == PCBA_Tesla)
|
|
|
|
|
{
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_IOCONTROL], MenuText_ADMINIOMAINMENU[MENUTEXT_ENGLISH][5], RM_ADMIN_IO_TESLAGUN, NULL);
|
|
|
|
|
}
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMIN_IOCONTROL], 'X', PRESSED, RM_ADMINMENU);
|
|
|
|
|
MenuElements_addKeyAction_SCROLLUP(&menuCore->menuArray[RM_ADMIN_IOCONTROL], 'U', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_SCROLLDOWN(&menuCore->menuArray[RM_ADMIN_IOCONTROL], 'D', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_SELECT(&menuCore->menuArray[RM_ADMIN_IOCONTROL], 'E', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_IOCONTROL], '1', PRESSED, 1);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_IOCONTROL], '2', PRESSED, 2);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_IOCONTROL], '3', PRESSED, 3);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_IOCONTROL], '4', PRESSED, 4);
|
|
|
|
|
if (PCBA_getInstance()->pcba == PCBA_Tesla)
|
|
|
|
|
{
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_IOCONTROL], '5', PRESSED, 5);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* ADMIN interlock control
|
|
|
|
|
* Shows the interlock state. Screen is generated via function, not as a menu
|
|
|
|
|
* Key 'X' returns to I/O menu
|
|
|
|
|
*
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_IO_INTERLOCK], MENU_HAS_NO_CURSOR, 4);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_IOCONTROL], MenuText_ADMINIOINTERLOCKMENU[MENUTEXT_ENGLISH][0], RM_ADMIN_IO_INTERLOCK, NULL);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMIN_IO_INTERLOCK], 'X', PRESSED, RM_ADMIN_IOCONTROL);
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* ADMIN Solenoid control
|
|
|
|
|
* Allows control over the Solenoids
|
|
|
|
|
* Key '0' controls the solenoid. Holding opens, releasing closes
|
|
|
|
|
* Key 'X' returns to I/O menu
|
|
|
|
|
*
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_IO_SOLENOID], MENU_HAS_NO_CURSOR, 4);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_IO_SOLENOID], MenuText_ADMINSOLENOIDMENU[MENUTEXT_ENGLISH][0], RM_ADMIN_IO_SOLENOID, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_IO_SOLENOID], MenuText_ADMINSOLENOIDMENU[MENUTEXT_ENGLISH][1], RM_ADMIN_IO_SOLENOID, NULL);
|
|
|
|
|
MenuElements_addKeyAction_EXECUTEFUNCTION(&menuCore->menuArray[RM_ADMIN_IO_SOLENOID], '0', PRESSED, repairMenu_solenoidUnlock);
|
|
|
|
|
MenuElements_addKeyAction_EXECUTEFUNCTION(&menuCore->menuArray[RM_ADMIN_IO_SOLENOID], '0', RELEASED, repairMenu_solenoidLock);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMIN_IO_SOLENOID], 'X', PRESSED, RM_ADMIN_IOCONTROL);
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* ADMIN Teslagun relais control
|
|
|
|
|
*
|
|
|
|
|
* THIS MENU IS AVAILABLE ONLY ON TESLA REPAIR PCBAs
|
|
|
|
|
*
|
|
|
|
|
* Allows control over the TeslaGun relais
|
|
|
|
|
* Key '0' controls the relais. Holding opens, releasing closes
|
|
|
|
|
* Key 'X' returns to I/O menu
|
|
|
|
|
*
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
if (PCBA_getInstance()->pcba == PCBA_Tesla)
|
|
|
|
|
{
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_IO_TESLAGUN], MENU_HAS_NO_CURSOR, 4);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_IO_TESLAGUN], MenuText_ADMINTESLAGUNMENU[MENUTEXT_ENGLISH][0], RM_ADMIN_IO_TESLAGUN, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_IO_TESLAGUN], MenuText_ADMINTESLAGUNMENU[MENUTEXT_ENGLISH][1], RM_ADMIN_IO_TESLAGUN, NULL);
|
|
|
|
|
MenuElements_addKeyAction_EXECUTEFUNCTION(&menuCore->menuArray[RM_ADMIN_IO_TESLAGUN], '0', PRESSED, repairMenu_teslagunRelease);
|
|
|
|
|
MenuElements_addKeyAction_EXECUTEFUNCTION(&menuCore->menuArray[RM_ADMIN_IO_TESLAGUN], '0', RELEASED, repairMenu_teslagunBlock);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMIN_IO_TESLAGUN], 'X', PRESSED, RM_ADMIN_IOCONTROL);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* ADMIN preset config
|
|
|
|
|
* Select the repair preset to configure/modify
|
|
|
|
|
*
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], MENU_HAS_CURSOR, 10);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], MenuText_ADMINPRESETCONFIGSELECTMENU[MENUTEXT_ENGLISH][0], RM_ADMIN_PRESET_CONFIG_SELECT, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], MenuText_ADMINPRESETCONFIGSELECTMENU[MENUTEXT_ENGLISH][1], RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART, repairMenu_configPresetFirstSoftstart);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], MenuText_ADMINPRESETCONFIGSELECTMENU[MENUTEXT_ENGLISH][2], RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART, repairMenu_configPresetFirstSoftstart);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], MenuText_ADMINPRESETCONFIGSELECTMENU[MENUTEXT_ENGLISH][3], RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART, repairMenu_configPresetFirstSoftstart);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], MenuText_ADMINPRESETCONFIGSELECTMENU[MENUTEXT_ENGLISH][4], RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART, repairMenu_configPresetFirstSoftstart);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], MenuText_ADMINPRESETCONFIGSELECTMENU[MENUTEXT_ENGLISH][5], RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART, repairMenu_configPresetFirstSoftstart);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], MenuText_ADMINPRESETCONFIGSELECTMENU[MENUTEXT_ENGLISH][6], RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART, repairMenu_configPresetFirstSoftstart);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], MenuText_ADMINPRESETCONFIGSELECTMENU[MENUTEXT_ENGLISH][7], RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART, repairMenu_configPresetFirstSoftstart);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], MenuText_ADMINPRESETCONFIGSELECTMENU[MENUTEXT_ENGLISH][8], RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART, repairMenu_configPresetFirstSoftstart);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], MenuText_ADMINPRESETCONFIGSELECTMENU[MENUTEXT_ENGLISH][9], RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART, repairMenu_configPresetFirstSoftstart);
|
|
|
|
|
MenuElements_addKeyAction_SCROLLUP(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], 'U', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_SCROLLDOWN(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], 'D', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_SELECT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], 'E', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], '1', PRESSED, 1);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], '2', PRESSED, 2);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], '3', PRESSED, 3);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], '4', PRESSED, 4);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], '5', PRESSED, 5);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], '6', PRESSED, 6);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], '7', PRESSED, 7);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], '8', PRESSED, 8);
|
|
|
|
|
MenuElements_addKeyAction_HOTKEYSELECT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], '9', PRESSED, 9);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SELECT], 'X', PRESSED, RM_ADMINMENU);
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* ADMIN preset config
|
|
|
|
|
* Select the repair preset to configure/modify
|
|
|
|
|
*
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
unsigned int numberOfDigits = 0;
|
|
|
|
|
if (PCBA_getInstance()->pcba == PCBA_Anode)
|
|
|
|
|
{
|
|
|
|
|
numberOfDigits = 5;
|
|
|
|
|
}
|
|
|
|
|
else if (PCBA_getInstance()->pcba == PCBA_CathodeMCP)
|
|
|
|
|
{
|
|
|
|
|
numberOfDigits = 4;
|
|
|
|
|
}
|
|
|
|
|
else if (PCBA_getInstance()->pcba == PCBA_Tesla)
|
|
|
|
|
{
|
|
|
|
|
numberOfDigits = 4;
|
|
|
|
|
}
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART], MENU_HAS_NO_CURSOR, 10);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART], '0', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART], '1', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART], '2', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART], '3', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART], '4', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART], '5', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART], '6', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART], '7', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART], '8', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART], '9', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITREMOVE(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART], 'L', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERTCONFIRM(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART], 'E', PRESSED, repairMenu_configConfirmPresetFirstSoftstart);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_SOFTSTART], 'X', PRESSED, RM_ADMIN_PRESET_CONFIG_SELECT);
|
|
|
|
|
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_DURATION], MENU_HAS_NO_CURSOR, 10);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_DURATION], '0', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_DURATION], '1', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_DURATION], '2', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_DURATION], '3', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_DURATION], '4', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_DURATION], '5', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_DURATION], '6', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_DURATION], '7', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_DURATION], '8', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_DURATION], '9', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITREMOVE(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_DURATION], 'L', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERTCONFIRM(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_DURATION], 'E', PRESSED, repairMenu_configConfirmPresetFirstDuration);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_DURATION], 'X', PRESSED, RM_ADMIN_PRESET_CONFIG_SELECT);
|
|
|
|
|
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE], MENU_HAS_NO_CURSOR, 10);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE], '0', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE], '1', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE], '2', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE], '3', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE], '4', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE], '5', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE], '6', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE], '7', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE], '8', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE], '9', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITREMOVE(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE], 'L', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERTCONFIRM(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE], 'E', PRESSED, repairMenu_configConfirmPresetFirstVoltage);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_FIRST_VOLTAGE], 'X', PRESSED, RM_ADMIN_PRESET_CONFIG_SELECT);
|
|
|
|
|
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART], MENU_HAS_NO_CURSOR, 10);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART], '0', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART], '1', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART], '2', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART], '3', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART], '4', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART], '5', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART], '6', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART], '7', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART], '8', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART], '9', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITREMOVE(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART], 'L', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERTCONFIRM(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART], 'E', PRESSED, repairMenu_configConfirmPresetSecondSoftstart);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_SOFTSTART], 'X', PRESSED, RM_ADMIN_PRESET_CONFIG_SELECT);
|
|
|
|
|
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_DURATION], MENU_HAS_NO_CURSOR, 10);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_DURATION], '0', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_DURATION], '1', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_DURATION], '2', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_DURATION], '3', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_DURATION], '4', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_DURATION], '5', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_DURATION], '6', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_DURATION], '7', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_DURATION], '8', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_DURATION], '9', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITREMOVE(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_DURATION], 'L', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERTCONFIRM(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_DURATION], 'E', PRESSED, repairMenu_configConfirmPresetSecondDuration);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_DURATION], 'X', PRESSED, RM_ADMIN_PRESET_CONFIG_SELECT);
|
|
|
|
|
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE], MENU_HAS_NO_CURSOR, 10);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE], '0', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE], '1', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE], '2', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE], '3', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE], '4', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE], '5', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE], '6', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE], '7', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE], '8', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERT(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE], '9', PRESSED, numberOfDigits);
|
|
|
|
|
MenuElements_addKeyAction_DIGITREMOVE(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE], 'L', PRESSED);
|
|
|
|
|
MenuElements_addKeyAction_DIGITINSERTCONFIRM(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE], 'E', PRESSED, repairMenu_configConfirmPresetSecondVoltage);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMIN_PRESET_CONFIG_SECOND_VOLTAGE], 'X', PRESSED, RM_ADMIN_PRESET_CONFIG_SELECT);
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
* ADMIN INFORMATION & VERSION SCREEN
|
|
|
|
|
* -------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_ADMIN_INFO], MENU_HAS_NO_CURSOR, 5);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_ADMIN_INFO], MenuText_ADMININFOMENU[MENUTEXT_ENGLISH][0], RM_ADMIN_INFO, NULL);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_ADMIN_INFO], 'X', PRESSED, RM_ADMINMENU);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_CALIBRATIONMENU], MENU_HAS_NO_CURSOR, 2);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_CALIBRATIONMENU], MenuText_CALIBRATIONMENU[MENUTEXT_ENGLISH][0], RM_CALIBRATIONMENU, NULL);
|
|
|
|
|
MenuElements_addMenuPageRow(&menuCore->menuArray[RM_CALIBRATIONMENU], MenuText_CALIBRATIONMENU[MENUTEXT_ENGLISH][1], RM_CALIBRATIONMENU, NULL);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_CALIBRATIONMENU], 'X', PRESSED, RM_MAINMENU);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MenuElements_createMenuPage(&menuCore->menuArray[RM_REPAIR_RUNNING], MENU_HAS_NO_CURSOR, 4);
|
|
|
|
|
MenuElements_addKeyAction_GOTOSTATE(&menuCore->menuArray[RM_REPAIR_RUNNING], 'X', PRESSED, RM_REPAIR_ASK_PAUSE);
|
|
|
|
|
|
|
|
|
|
|