Fixed some major issues with RAM shortage. Also moved the cached storage to a MALLOC design instead of fixed memory usage. Using freertos porteds malloc and free required to move to HEAP4 to make sure memory does not get fragmented.
Resized nearly all task stacks Also: - Menu fixes for insertion. Almost done, just need to fix the negative voltage insertion for mcp and cathode - Added Device parameters, must be filled in git-svn-id: https://svn.vbchaos.nl/svn/hsb/trunk@271 05563f52-14a8-4384-a975-3d1654cca0fa
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user