Release 1.01

Dependents:   mbed_escm2000

Committer:
foxbrianr
Date:
Tue Sep 17 13:48:22 2019 +0000
Revision:
5:9f4d4f8ffc00
Parent:
4:7226c43320b5
Beta 2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
foxbrianr 5:9f4d4f8ffc00 1 /**************************************************************************
foxbrianr 5:9f4d4f8ffc00 2 * @file FactorResetMenu.cpp
foxbrianr 5:9f4d4f8ffc00 3 * @brief Base class for implementing the Factor Reset Menu display
foxbrianr 5:9f4d4f8ffc00 4 * @version: V1.0
foxbrianr 5:9f4d4f8ffc00 5 * @date: 9/17/2019
foxbrianr 5:9f4d4f8ffc00 6
foxbrianr 5:9f4d4f8ffc00 7 *
foxbrianr 5:9f4d4f8ffc00 8 * @note
foxbrianr 5:9f4d4f8ffc00 9 * Copyright (C) 2019 E3 Design. All rights reserved.
foxbrianr 5:9f4d4f8ffc00 10 *
foxbrianr 5:9f4d4f8ffc00 11 * @par
foxbrianr 5:9f4d4f8ffc00 12 * E3 Designers LLC is supplying this software for use with Cortex-M3 LPC1768
foxbrianr 5:9f4d4f8ffc00 13 * processor based microcontroller for the ESCM 2000 Monitor and Display.
foxbrianr 5:9f4d4f8ffc00 14 * *
foxbrianr 5:9f4d4f8ffc00 15 * @par
foxbrianr 5:9f4d4f8ffc00 16 * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
foxbrianr 5:9f4d4f8ffc00 17 * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
foxbrianr 5:9f4d4f8ffc00 18 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
foxbrianr 5:9f4d4f8ffc00 19 * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
foxbrianr 5:9f4d4f8ffc00 20 * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
foxbrianr 5:9f4d4f8ffc00 21 *
foxbrianr 5:9f4d4f8ffc00 22 ******************************************************************************/
foxbrianr 4:7226c43320b5 23 #include "mbed.h"
foxbrianr 4:7226c43320b5 24 #include "FactoryResetMenu.h"
foxbrianr 4:7226c43320b5 25 #include "TimeUtilities.h"
foxbrianr 4:7226c43320b5 26 #include "ESCMControlApp.h"
foxbrianr 4:7226c43320b5 27
foxbrianr 4:7226c43320b5 28 #define DEFAULT_DISPLAY 0
foxbrianr 4:7226c43320b5 29
foxbrianr 5:9f4d4f8ffc00 30 /******************************************************************************/
foxbrianr 4:7226c43320b5 31 FactoryResetMenu::FactoryResetMenu(char* id): Menu(id)
foxbrianr 4:7226c43320b5 32 {
foxbrianr 4:7226c43320b5 33 active_selection=0;
foxbrianr 4:7226c43320b5 34 }
foxbrianr 4:7226c43320b5 35
foxbrianr 4:7226c43320b5 36
foxbrianr 4:7226c43320b5 37
foxbrianr 5:9f4d4f8ffc00 38 /******************************************************************************/
foxbrianr 4:7226c43320b5 39 void FactoryResetMenu::init()
foxbrianr 4:7226c43320b5 40 {
foxbrianr 4:7226c43320b5 41 update_needed = 1;
foxbrianr 4:7226c43320b5 42 active_selection=0;
foxbrianr 4:7226c43320b5 43 }
foxbrianr 4:7226c43320b5 44
foxbrianr 5:9f4d4f8ffc00 45 /******************************************************************************/
foxbrianr 4:7226c43320b5 46 void FactoryResetMenu::display(LCD * lcd)
foxbrianr 4:7226c43320b5 47 {
foxbrianr 4:7226c43320b5 48 static int counter = 5;
foxbrianr 4:7226c43320b5 49
foxbrianr 4:7226c43320b5 50 if (update_needed) {
foxbrianr 4:7226c43320b5 51 switch(active_selection) {
foxbrianr 4:7226c43320b5 52
foxbrianr 4:7226c43320b5 53 case 1:
foxbrianr 4:7226c43320b5 54 lcd->cls();
foxbrianr 4:7226c43320b5 55 lcd->locate(1,0);
foxbrianr 4:7226c43320b5 56 lcd->printf("Resetting to Factory Default");
foxbrianr 4:7226c43320b5 57 lcd->locate(1,0);
foxbrianr 4:7226c43320b5 58 counter = 5;
foxbrianr 4:7226c43320b5 59 active_selection=2;
foxbrianr 4:7226c43320b5 60 update_needed=1;
foxbrianr 4:7226c43320b5 61 break;
foxbrianr 4:7226c43320b5 62
foxbrianr 4:7226c43320b5 63 case 2:
foxbrianr 4:7226c43320b5 64 lcd->locate(2,0);
foxbrianr 4:7226c43320b5 65 lcd->printf("Please wait %d...", counter--);
foxbrianr 4:7226c43320b5 66 if (counter == 0) active_selection=0;
foxbrianr 4:7226c43320b5 67 update_needed=1;
foxbrianr 4:7226c43320b5 68 break;
foxbrianr 4:7226c43320b5 69
foxbrianr 4:7226c43320b5 70 default:
foxbrianr 4:7226c43320b5 71 lcd->cls();
foxbrianr 4:7226c43320b5 72 lcd->locate(0,0);
foxbrianr 4:7226c43320b5 73 lcd->printf("Press <Set> to Reset");
foxbrianr 4:7226c43320b5 74 update_needed=0;
foxbrianr 4:7226c43320b5 75 break;
foxbrianr 4:7226c43320b5 76 };
foxbrianr 4:7226c43320b5 77 }
foxbrianr 4:7226c43320b5 78
foxbrianr 4:7226c43320b5 79 displayCurrentTime(lcd);
foxbrianr 4:7226c43320b5 80 displayVersion(lcd);
foxbrianr 4:7226c43320b5 81 }
foxbrianr 4:7226c43320b5 82
foxbrianr 5:9f4d4f8ffc00 83 /******************************************************************************/
foxbrianr 4:7226c43320b5 84 void FactoryResetMenu::pressMode()
foxbrianr 4:7226c43320b5 85 {
foxbrianr 4:7226c43320b5 86 // toggle active menu
foxbrianr 4:7226c43320b5 87 switch(active_selection) {
foxbrianr 4:7226c43320b5 88
foxbrianr 4:7226c43320b5 89 case 0:
foxbrianr 4:7226c43320b5 90 back();
foxbrianr 4:7226c43320b5 91 break;
foxbrianr 4:7226c43320b5 92 case 1:
foxbrianr 4:7226c43320b5 93 back();
foxbrianr 4:7226c43320b5 94 break;
foxbrianr 4:7226c43320b5 95
foxbrianr 4:7226c43320b5 96 default:
foxbrianr 4:7226c43320b5 97 active_selection = 0;
foxbrianr 4:7226c43320b5 98 break;
foxbrianr 4:7226c43320b5 99 };
foxbrianr 4:7226c43320b5 100
foxbrianr 4:7226c43320b5 101 update_needed = 1;
foxbrianr 4:7226c43320b5 102 }
foxbrianr 4:7226c43320b5 103
foxbrianr 5:9f4d4f8ffc00 104 /******************************************************************************/
foxbrianr 4:7226c43320b5 105 void FactoryResetMenu::pressSet()
foxbrianr 4:7226c43320b5 106 {
foxbrianr 4:7226c43320b5 107 // set button advances to next character position OR
foxbrianr 4:7226c43320b5 108 // goes back to normal
foxbrianr 4:7226c43320b5 109 switch(active_selection) {
foxbrianr 4:7226c43320b5 110
foxbrianr 4:7226c43320b5 111 case 0:
foxbrianr 4:7226c43320b5 112 active_selection = 1;
foxbrianr 4:7226c43320b5 113 addressMap.reset();
foxbrianr 4:7226c43320b5 114 escmEventLog.reset();
foxbrianr 4:7226c43320b5 115 break;
foxbrianr 4:7226c43320b5 116
foxbrianr 4:7226c43320b5 117 case 1: // press yes
foxbrianr 4:7226c43320b5 118 active_selection = 2;
foxbrianr 4:7226c43320b5 119 break;
foxbrianr 4:7226c43320b5 120
foxbrianr 4:7226c43320b5 121 case 2: // complete
foxbrianr 4:7226c43320b5 122 //back();
foxbrianr 4:7226c43320b5 123 active_selection = 0;
foxbrianr 4:7226c43320b5 124 break;
foxbrianr 4:7226c43320b5 125
foxbrianr 4:7226c43320b5 126 default:
foxbrianr 4:7226c43320b5 127 active_selection = 0;
foxbrianr 4:7226c43320b5 128 break;
foxbrianr 4:7226c43320b5 129
foxbrianr 4:7226c43320b5 130 };
foxbrianr 4:7226c43320b5 131 update_needed = 1;
foxbrianr 4:7226c43320b5 132 }
foxbrianr 4:7226c43320b5 133
foxbrianr 5:9f4d4f8ffc00 134 /******************************************************************************/
foxbrianr 4:7226c43320b5 135
foxbrianr 4:7226c43320b5 136