Release 1.01

Dependents:   mbed_escm2000

Committer:
foxbrianr
Date:
Tue Mar 17 17:23:15 2020 +0000
Revision:
8:9d4e684d8eb8
Parent:
6:af3769d17a35
fix up code for barry

Who changed what in which revision?

UserRevisionLine numberNew contents of line
foxbrianr 5:9f4d4f8ffc00 1 /**************************************************************************
foxbrianr 5:9f4d4f8ffc00 2 * @file DisplayCodeMenu.cpp
foxbrianr 5:9f4d4f8ffc00 3 * @brief Base class for implementing the Display Code 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 3:8395f7ab6d3e 23 #include "mbed.h"
foxbrianr 3:8395f7ab6d3e 24 #include "DisplayCodesMenu.h"
foxbrianr 3:8395f7ab6d3e 25 #include "TimeUtilities.h"
foxbrianr 4:7226c43320b5 26 #include "ESCMControlApp.h"
foxbrianr 3:8395f7ab6d3e 27
foxbrianr 3:8395f7ab6d3e 28
foxbrianr 5:9f4d4f8ffc00 29 /******************************************************************************/
foxbrianr 4:7226c43320b5 30 DisplayCodesMenu::DisplayCodesMenu(char* id): Menu(id)
foxbrianr 3:8395f7ab6d3e 31 {
foxbrianr 4:7226c43320b5 32
foxbrianr 4:7226c43320b5 33 active_selection = 0;
foxbrianr 4:7226c43320b5 34 row=0;
foxbrianr 4:7226c43320b5 35 column=0;
foxbrianr 4:7226c43320b5 36 update_needed=1;
foxbrianr 4:7226c43320b5 37 current_index=0;
foxbrianr 4:7226c43320b5 38 current_line = 1;
foxbrianr 4:7226c43320b5 39 top = 0;
foxbrianr 4:7226c43320b5 40
foxbrianr 4:7226c43320b5 41 }
foxbrianr 4:7226c43320b5 42
foxbrianr 4:7226c43320b5 43
foxbrianr 4:7226c43320b5 44
foxbrianr 5:9f4d4f8ffc00 45 /******************************************************************************/
foxbrianr 4:7226c43320b5 46 void DisplayCodesMenu::init()
foxbrianr 4:7226c43320b5 47 {
foxbrianr 3:8395f7ab6d3e 48 active_selection = 0;
foxbrianr 3:8395f7ab6d3e 49 row=0;
foxbrianr 3:8395f7ab6d3e 50 column=0;
foxbrianr 3:8395f7ab6d3e 51 update_needed=1;
foxbrianr 4:7226c43320b5 52 current_index= 0;
foxbrianr 4:7226c43320b5 53 current_line = 1;
foxbrianr 4:7226c43320b5 54 top = 0;
foxbrianr 3:8395f7ab6d3e 55 }
foxbrianr 4:7226c43320b5 56
foxbrianr 4:7226c43320b5 57
foxbrianr 5:9f4d4f8ffc00 58 /******************************************************************************/
foxbrianr 3:8395f7ab6d3e 59 void DisplayCodesMenu::display(LCD * lcd)
foxbrianr 3:8395f7ab6d3e 60 {
foxbrianr 4:7226c43320b5 61 static int lastPos = 0;
foxbrianr 4:7226c43320b5 62 static int lastSize = 0;
foxbrianr 4:7226c43320b5 63
foxbrianr 8:9d4e684d8eb8 64 int hr = 0;
foxbrianr 4:7226c43320b5 65 int update_page = 0;
foxbrianr 3:8395f7ab6d3e 66 char buf[40];
foxbrianr 4:7226c43320b5 67
foxbrianr 4:7226c43320b5 68 //displayCurrentTime(lcd);
foxbrianr 3:8395f7ab6d3e 69
foxbrianr 4:7226c43320b5 70 if(escmEventLog.head_ != lastPos ) {
foxbrianr 4:7226c43320b5 71
foxbrianr 4:7226c43320b5 72 current_index = 0;
foxbrianr 4:7226c43320b5 73 top = current_index;
foxbrianr 4:7226c43320b5 74 bottom = top + 2;
foxbrianr 4:7226c43320b5 75
foxbrianr 4:7226c43320b5 76 lastPos = escmEventLog.head_;
foxbrianr 4:7226c43320b5 77 lastSize = escmEventLog.size();
foxbrianr 4:7226c43320b5 78 update_needed=1;
foxbrianr 4:7226c43320b5 79 }
foxbrianr 4:7226c43320b5 80
foxbrianr 4:7226c43320b5 81
foxbrianr 4:7226c43320b5 82 // paging
foxbrianr 4:7226c43320b5 83 if (current_index < top )
foxbrianr 4:7226c43320b5 84 {
foxbrianr 4:7226c43320b5 85 top = current_index ;
foxbrianr 4:7226c43320b5 86 bottom = current_index + 2;
foxbrianr 4:7226c43320b5 87 update_page = 1;
foxbrianr 4:7226c43320b5 88 update_needed=1;
foxbrianr 4:7226c43320b5 89 }
foxbrianr 4:7226c43320b5 90 else if (current_index > bottom)
foxbrianr 4:7226c43320b5 91 {
foxbrianr 4:7226c43320b5 92 top = current_index - 2;
foxbrianr 4:7226c43320b5 93 bottom = current_index;
foxbrianr 4:7226c43320b5 94 update_page = 1;
foxbrianr 4:7226c43320b5 95 update_needed=1;
foxbrianr 4:7226c43320b5 96 }
foxbrianr 4:7226c43320b5 97 else
foxbrianr 3:8395f7ab6d3e 98 {
foxbrianr 3:8395f7ab6d3e 99
foxbrianr 3:8395f7ab6d3e 100 }
foxbrianr 3:8395f7ab6d3e 101
foxbrianr 4:7226c43320b5 102
foxbrianr 4:7226c43320b5 103 if (update_needed) {
foxbrianr 4:7226c43320b5 104
foxbrianr 4:7226c43320b5 105 lock();
foxbrianr 4:7226c43320b5 106
foxbrianr 4:7226c43320b5 107 switch (active_selection ) {
foxbrianr 5:9f4d4f8ffc00 108 case 2:
foxbrianr 4:7226c43320b5 109 lcd->cls();
foxbrianr 4:7226c43320b5 110 lcd->locate(1,0);
foxbrianr 4:7226c43320b5 111 lcd->printf("Are you sure you want to erase");
foxbrianr 4:7226c43320b5 112 lcd->locate(2,0);
foxbrianr 5:9f4d4f8ffc00 113 lcd->printf("all events (Press Set)?");
foxbrianr 4:7226c43320b5 114 update_needed = 0;
foxbrianr 4:7226c43320b5 115 break;
foxbrianr 5:9f4d4f8ffc00 116 case 3:
foxbrianr 4:7226c43320b5 117 lcd->cls();
foxbrianr 4:7226c43320b5 118 lcd->locate(1,0);
foxbrianr 4:7226c43320b5 119 lcd->printf("Deleting Events...");
foxbrianr 4:7226c43320b5 120 erase_log = 0;
foxbrianr 4:7226c43320b5 121 escmEventLog.reset();
foxbrianr 4:7226c43320b5 122 escmEventLog.save();
foxbrianr 4:7226c43320b5 123 update_needed = 1;
foxbrianr 4:7226c43320b5 124 active_selection = 0;
foxbrianr 4:7226c43320b5 125 current_index = 0;
foxbrianr 4:7226c43320b5 126 break;
foxbrianr 4:7226c43320b5 127
foxbrianr 5:9f4d4f8ffc00 128 case 1:
foxbrianr 5:9f4d4f8ffc00 129 // DISPLAY EXPANDED INFO
foxbrianr 4:7226c43320b5 130 lcd->cls();
foxbrianr 4:7226c43320b5 131 lcd->locate(0,0);
foxbrianr 4:7226c43320b5 132 lcd->printf(" ID | Port | Unit | Time");
foxbrianr 5:9f4d4f8ffc00 133 lcd->locate(0,33);
foxbrianr 5:9f4d4f8ffc00 134 lcd->printf("Addr=%02d",escmController.cur_address);
foxbrianr 4:7226c43320b5 135
foxbrianr 4:7226c43320b5 136 // update display
foxbrianr 4:7226c43320b5 137 for(int i=0; i<3; i++) {
foxbrianr 4:7226c43320b5 138
foxbrianr 4:7226c43320b5 139 int index = top + i;
foxbrianr 4:7226c43320b5 140 int line = (1+i);
foxbrianr 4:7226c43320b5 141
foxbrianr 4:7226c43320b5 142 int selected = current_index == index;
foxbrianr 4:7226c43320b5 143
foxbrianr 4:7226c43320b5 144 ESCM_Event *event = escmEventLog.index (index) ;
foxbrianr 4:7226c43320b5 145
foxbrianr 4:7226c43320b5 146 if (event != NULL && index < escmEventLog.size() ) {
foxbrianr 5:9f4d4f8ffc00 147
foxbrianr 8:9d4e684d8eb8 148 if ( event->hours < 12 ) {
foxbrianr 8:9d4e684d8eb8 149
foxbrianr 8:9d4e684d8eb8 150 hr = event[i].hours;
foxbrianr 8:9d4e684d8eb8 151 hr = (hr == 0) ? 12 : hr;
foxbrianr 8:9d4e684d8eb8 152 sprintf(buf,"%02d | %02d | %02d | %02d:%02d:%02dam %02d/%02d/%04d",
foxbrianr 4:7226c43320b5 153 index + 1,
foxbrianr 4:7226c43320b5 154 event->port,
foxbrianr 4:7226c43320b5 155 event->address,
foxbrianr 8:9d4e684d8eb8 156 hr,
foxbrianr 4:7226c43320b5 157 event->mins,
foxbrianr 4:7226c43320b5 158 event->secs,
foxbrianr 4:7226c43320b5 159 event->month,
foxbrianr 4:7226c43320b5 160 event->day,
foxbrianr 4:7226c43320b5 161 event->year
foxbrianr 4:7226c43320b5 162 );
foxbrianr 8:9d4e684d8eb8 163
foxbrianr 8:9d4e684d8eb8 164 }
foxbrianr 8:9d4e684d8eb8 165 else {
foxbrianr 8:9d4e684d8eb8 166 hr = (event->hours - 12);
foxbrianr 8:9d4e684d8eb8 167 hr = (hr == 0) ? 12 : hr;
foxbrianr 8:9d4e684d8eb8 168 ;
foxbrianr 8:9d4e684d8eb8 169 sprintf(buf,"%02d | %02d | %02d | %02d:%02d:%02dpm %02d/%02d/%04d",
foxbrianr 8:9d4e684d8eb8 170 index + 1,
foxbrianr 8:9d4e684d8eb8 171 event->port,
foxbrianr 8:9d4e684d8eb8 172 event->address,
foxbrianr 8:9d4e684d8eb8 173 hr,
foxbrianr 8:9d4e684d8eb8 174 event->mins,
foxbrianr 8:9d4e684d8eb8 175 event->secs,
foxbrianr 8:9d4e684d8eb8 176 event->month,
foxbrianr 8:9d4e684d8eb8 177 event->day,
foxbrianr 8:9d4e684d8eb8 178 event->year
foxbrianr 8:9d4e684d8eb8 179 );
foxbrianr 8:9d4e684d8eb8 180
foxbrianr 8:9d4e684d8eb8 181 }
foxbrianr 8:9d4e684d8eb8 182
foxbrianr 4:7226c43320b5 183 } else {
foxbrianr 8:9d4e684d8eb8 184 sprintf(buf,"%-s | %-s | %-s | %-s",
foxbrianr 4:7226c43320b5 185 "--",
foxbrianr 4:7226c43320b5 186 "--",
foxbrianr 4:7226c43320b5 187 "--",
foxbrianr 4:7226c43320b5 188 "- N/A -");
foxbrianr 4:7226c43320b5 189 }
foxbrianr 4:7226c43320b5 190
foxbrianr 4:7226c43320b5 191 if(selected) {
foxbrianr 4:7226c43320b5 192 lcd->locate(line,0);
foxbrianr 4:7226c43320b5 193 lcd->printf(">%-39s",buf);
foxbrianr 4:7226c43320b5 194 } else {
foxbrianr 4:7226c43320b5 195 lcd->locate(line,0);
foxbrianr 4:7226c43320b5 196 lcd->printf(" %-39s",buf);
foxbrianr 4:7226c43320b5 197 }
foxbrianr 4:7226c43320b5 198
foxbrianr 4:7226c43320b5 199 //lcd->locate(line,2);
foxbrianr 4:7226c43320b5 200 //lcd->printf(buf);
foxbrianr 4:7226c43320b5 201
foxbrianr 4:7226c43320b5 202 }
foxbrianr 4:7226c43320b5 203 update_page = 0;
foxbrianr 4:7226c43320b5 204 update_needed=0;
foxbrianr 4:7226c43320b5 205 break;
foxbrianr 5:9f4d4f8ffc00 206 break;
foxbrianr 5:9f4d4f8ffc00 207 default:
foxbrianr 5:9f4d4f8ffc00 208
foxbrianr 5:9f4d4f8ffc00 209 lcd->cls();
foxbrianr 5:9f4d4f8ffc00 210 lcd->locate(0,0);
foxbrianr 5:9f4d4f8ffc00 211 #if 0
foxbrianr 5:9f4d4f8ffc00 212 lcd->printf(" ID | Port | Unit | Time");
foxbrianr 5:9f4d4f8ffc00 213 #else
foxbrianr 5:9f4d4f8ffc00 214 lcd->printf(" ID | Description | Time");
foxbrianr 5:9f4d4f8ffc00 215 #endif
foxbrianr 5:9f4d4f8ffc00 216
foxbrianr 5:9f4d4f8ffc00 217 lcd->locate(0,33);
foxbrianr 5:9f4d4f8ffc00 218 lcd->printf("Addr=%02d",escmController.cur_address);
foxbrianr 6:af3769d17a35 219
foxbrianr 5:9f4d4f8ffc00 220 // update display
foxbrianr 5:9f4d4f8ffc00 221 for(int i=0; i<3; i++) {
foxbrianr 5:9f4d4f8ffc00 222
foxbrianr 5:9f4d4f8ffc00 223 int index = top + i;
foxbrianr 5:9f4d4f8ffc00 224 int line = (1+i);
foxbrianr 5:9f4d4f8ffc00 225
foxbrianr 5:9f4d4f8ffc00 226 int selected = current_index == index;
foxbrianr 5:9f4d4f8ffc00 227
foxbrianr 5:9f4d4f8ffc00 228
foxbrianr 5:9f4d4f8ffc00 229 ESCM_Event *event = escmEventLog.index (index) ;
foxbrianr 5:9f4d4f8ffc00 230
foxbrianr 5:9f4d4f8ffc00 231 if (event != NULL && index < escmEventLog.size() ) {
foxbrianr 5:9f4d4f8ffc00 232 #if 0
foxbrianr 5:9f4d4f8ffc00 233 sprintf(buf,"%02d | %02d | %02d | %02d:%02d:%02d %02d/%02d/%04d",
foxbrianr 5:9f4d4f8ffc00 234 index + 1,
foxbrianr 5:9f4d4f8ffc00 235 event->port,
foxbrianr 5:9f4d4f8ffc00 236 event->address,
foxbrianr 5:9f4d4f8ffc00 237 event->hours,
foxbrianr 5:9f4d4f8ffc00 238 event->mins,
foxbrianr 5:9f4d4f8ffc00 239 event->secs,
foxbrianr 5:9f4d4f8ffc00 240 event->month,
foxbrianr 5:9f4d4f8ffc00 241 event->day,
foxbrianr 5:9f4d4f8ffc00 242 event->year
foxbrianr 5:9f4d4f8ffc00 243 );
foxbrianr 5:9f4d4f8ffc00 244 #else
foxbrianr 8:9d4e684d8eb8 245 char * ev_desc = addressMap.getDescription(event->address);
foxbrianr 8:9d4e684d8eb8 246
foxbrianr 8:9d4e684d8eb8 247 if ( event->hours < 12 ) {
foxbrianr 8:9d4e684d8eb8 248 hr = (event[i].hours == 0) ? 12 : event[i].hours;
foxbrianr 8:9d4e684d8eb8 249 hr = (hr == 0) ? 12 : hr;
foxbrianr 8:9d4e684d8eb8 250 sprintf(buf,"%02d | %-12s | %02d:%02d:%02dam %02d/%02d/%02d",
foxbrianr 5:9f4d4f8ffc00 251
foxbrianr 5:9f4d4f8ffc00 252 event->address,
foxbrianr 5:9f4d4f8ffc00 253 ev_desc,
foxbrianr 8:9d4e684d8eb8 254 hr,
foxbrianr 5:9f4d4f8ffc00 255 event->mins,
foxbrianr 5:9f4d4f8ffc00 256 event->secs,
foxbrianr 5:9f4d4f8ffc00 257 event->month,
foxbrianr 5:9f4d4f8ffc00 258 event->day,
foxbrianr 8:9d4e684d8eb8 259 (event->year % 100)
foxbrianr 5:9f4d4f8ffc00 260 );
foxbrianr 8:9d4e684d8eb8 261 } else {
foxbrianr 8:9d4e684d8eb8 262
foxbrianr 8:9d4e684d8eb8 263 hr = (event->hours - 12);
foxbrianr 8:9d4e684d8eb8 264 hr = (hr == 0) ? 12 : hr;
foxbrianr 8:9d4e684d8eb8 265
foxbrianr 8:9d4e684d8eb8 266 sprintf(buf,"%02d | %-12s | %02d:%02d:%02dpm %02d/%02d/%02d",
foxbrianr 8:9d4e684d8eb8 267
foxbrianr 8:9d4e684d8eb8 268 event->address,
foxbrianr 8:9d4e684d8eb8 269 ev_desc,
foxbrianr 8:9d4e684d8eb8 270 hr,
foxbrianr 8:9d4e684d8eb8 271 event->mins,
foxbrianr 8:9d4e684d8eb8 272 event->secs,
foxbrianr 8:9d4e684d8eb8 273 event->month,
foxbrianr 8:9d4e684d8eb8 274 event->day,
foxbrianr 8:9d4e684d8eb8 275 (event->year % 100)
foxbrianr 8:9d4e684d8eb8 276 );
foxbrianr 8:9d4e684d8eb8 277 }
foxbrianr 8:9d4e684d8eb8 278
foxbrianr 5:9f4d4f8ffc00 279 #endif
foxbrianr 5:9f4d4f8ffc00 280
foxbrianr 5:9f4d4f8ffc00 281 } else {
foxbrianr 5:9f4d4f8ffc00 282 #if 0
foxbrianr 5:9f4d4f8ffc00 283 sprintf(buf,"%-s | %-s | %-s | %-s",
foxbrianr 5:9f4d4f8ffc00 284 "--",
foxbrianr 5:9f4d4f8ffc00 285 "--",
foxbrianr 5:9f4d4f8ffc00 286 "--",
foxbrianr 5:9f4d4f8ffc00 287 "- N/A -");
foxbrianr 5:9f4d4f8ffc00 288 #else
foxbrianr 6:af3769d17a35 289 sprintf(buf,"%-s | %-s | %-s",
foxbrianr 5:9f4d4f8ffc00 290 "--",
foxbrianr 5:9f4d4f8ffc00 291 "Empty",
foxbrianr 5:9f4d4f8ffc00 292 "- N/A -");
foxbrianr 5:9f4d4f8ffc00 293 #endif
foxbrianr 5:9f4d4f8ffc00 294 }
foxbrianr 5:9f4d4f8ffc00 295
foxbrianr 5:9f4d4f8ffc00 296 if(selected) {
foxbrianr 5:9f4d4f8ffc00 297 lcd->locate(line,0);
foxbrianr 5:9f4d4f8ffc00 298 lcd->printf(">%-39s",buf);
foxbrianr 5:9f4d4f8ffc00 299 } else {
foxbrianr 5:9f4d4f8ffc00 300 lcd->locate(line,0);
foxbrianr 5:9f4d4f8ffc00 301 lcd->printf(" %-39s",buf);
foxbrianr 5:9f4d4f8ffc00 302 }
foxbrianr 5:9f4d4f8ffc00 303
foxbrianr 5:9f4d4f8ffc00 304 //lcd->locate(line,2);
foxbrianr 5:9f4d4f8ffc00 305 //lcd->printf(buf);
foxbrianr 5:9f4d4f8ffc00 306
foxbrianr 5:9f4d4f8ffc00 307 }
foxbrianr 5:9f4d4f8ffc00 308 update_page = 0;
foxbrianr 5:9f4d4f8ffc00 309 update_needed=0;
foxbrianr 5:9f4d4f8ffc00 310 break;
foxbrianr 4:7226c43320b5 311 }
foxbrianr 4:7226c43320b5 312
foxbrianr 4:7226c43320b5 313 unlock();
foxbrianr 4:7226c43320b5 314 }
foxbrianr 4:7226c43320b5 315 }
foxbrianr 4:7226c43320b5 316
foxbrianr 4:7226c43320b5 317
foxbrianr 5:9f4d4f8ffc00 318 /******************************************************************************/
foxbrianr 4:7226c43320b5 319 void DisplayCodesMenu::pressSet()
foxbrianr 4:7226c43320b5 320 {
foxbrianr 4:7226c43320b5 321 switch(active_selection) {
foxbrianr 4:7226c43320b5 322
foxbrianr 5:9f4d4f8ffc00 323 case 0:
foxbrianr 5:9f4d4f8ffc00 324 case 1:
foxbrianr 5:9f4d4f8ffc00 325 { // normal
foxbrianr 5:9f4d4f8ffc00 326
foxbrianr 4:7226c43320b5 327 ESCM_Event *event = escmEventLog.index(current_index);
foxbrianr 4:7226c43320b5 328 if (event!=NULL)
foxbrianr 4:7226c43320b5 329 {
foxbrianr 5:9f4d4f8ffc00 330 escmController.say(event->address );
foxbrianr 5:9f4d4f8ffc00 331 escmController.relayMessage(event->address );
foxbrianr 4:7226c43320b5 332 }
foxbrianr 4:7226c43320b5 333 update_needed = 0;
foxbrianr 4:7226c43320b5 334 break;
foxbrianr 4:7226c43320b5 335 }
foxbrianr 5:9f4d4f8ffc00 336 case 2: // press yes
foxbrianr 5:9f4d4f8ffc00 337 active_selection = 3;
foxbrianr 4:7226c43320b5 338 update_needed = 1;
foxbrianr 4:7226c43320b5 339 break;
foxbrianr 5:9f4d4f8ffc00 340 case 3: // press yes
foxbrianr 4:7226c43320b5 341 default:
foxbrianr 4:7226c43320b5 342 active_selection = 0;
foxbrianr 4:7226c43320b5 343 break;
foxbrianr 4:7226c43320b5 344 }
foxbrianr 3:8395f7ab6d3e 345 }
foxbrianr 3:8395f7ab6d3e 346
foxbrianr 5:9f4d4f8ffc00 347 /******************************************************************************/
foxbrianr 3:8395f7ab6d3e 348 void DisplayCodesMenu::pressMode()
foxbrianr 4:7226c43320b5 349 {
foxbrianr 3:8395f7ab6d3e 350
foxbrianr 4:7226c43320b5 351 switch(active_selection) {
foxbrianr 4:7226c43320b5 352 case 0: // normal
foxbrianr 4:7226c43320b5 353 active_selection = 1;
foxbrianr 4:7226c43320b5 354 update_needed = 1;
foxbrianr 4:7226c43320b5 355 break;
foxbrianr 5:9f4d4f8ffc00 356 case 1: // normal
foxbrianr 5:9f4d4f8ffc00 357 active_selection = 2;
foxbrianr 5:9f4d4f8ffc00 358 update_needed = 1;
foxbrianr 5:9f4d4f8ffc00 359 break;
foxbrianr 5:9f4d4f8ffc00 360 case 2: // normal
foxbrianr 5:9f4d4f8ffc00 361 case 3: // normal
foxbrianr 4:7226c43320b5 362 default:
foxbrianr 4:7226c43320b5 363 active_selection = 0;
foxbrianr 4:7226c43320b5 364 update_needed = 1;
foxbrianr 4:7226c43320b5 365 break;
foxbrianr 4:7226c43320b5 366 }
foxbrianr 3:8395f7ab6d3e 367 }
foxbrianr 3:8395f7ab6d3e 368
foxbrianr 5:9f4d4f8ffc00 369 /******************************************************************************/
foxbrianr 3:8395f7ab6d3e 370 void DisplayCodesMenu::pressDown()
foxbrianr 4:7226c43320b5 371 {
foxbrianr 4:7226c43320b5 372
foxbrianr 4:7226c43320b5 373 current_line++;
foxbrianr 4:7226c43320b5 374 current_index++;
foxbrianr 4:7226c43320b5 375
foxbrianr 4:7226c43320b5 376 if (current_index >= escmEventLog.size() )
foxbrianr 4:7226c43320b5 377 current_index = 0;
foxbrianr 3:8395f7ab6d3e 378
foxbrianr 4:7226c43320b5 379
foxbrianr 4:7226c43320b5 380 if (current_line > 3 )
foxbrianr 4:7226c43320b5 381 current_line = 3;
foxbrianr 4:7226c43320b5 382
foxbrianr 3:8395f7ab6d3e 383 update_needed=1;
foxbrianr 3:8395f7ab6d3e 384 }
foxbrianr 4:7226c43320b5 385
foxbrianr 5:9f4d4f8ffc00 386 /******************************************************************************/
foxbrianr 3:8395f7ab6d3e 387 void DisplayCodesMenu::pressUp()
foxbrianr 3:8395f7ab6d3e 388 {
foxbrianr 4:7226c43320b5 389 current_line--;
foxbrianr 4:7226c43320b5 390 current_index--;
foxbrianr 4:7226c43320b5 391 if (current_index < 0)
foxbrianr 4:7226c43320b5 392 current_index = escmEventLog.size()-1;
foxbrianr 4:7226c43320b5 393
foxbrianr 4:7226c43320b5 394 if (current_line < 1 )
foxbrianr 4:7226c43320b5 395 current_line = 1;
foxbrianr 4:7226c43320b5 396
foxbrianr 4:7226c43320b5 397 update_needed =1;
foxbrianr 3:8395f7ab6d3e 398 }
foxbrianr 5:9f4d4f8ffc00 399 /******************************************************************************/