/// <summary> /// When the menu to display all cards is selected /// </summary> private void DisplayCards() { switch (_displayCardsState) { case DISPLAY_CARDS_STATE.listIsEmpty: LCD.GetInstance().Clear(); if (ListOfCards.GetInstance().IsEmpty()) { _displayCardsState = DISPLAY_CARDS_STATE.errorMSG; } else { _displayCardsState = DISPLAY_CARDS_STATE.displayAllCards; } break; case DISPLAY_CARDS_STATE.errorMSG: LCD.GetInstance().DisplayText(GT.Color.Red, "/!\\ Aucun badge n'est enregistre /!\\", 10, LCD.GetInstance().LcdHeight / 2); Thread.Sleep(2000); RestoreInitialState(); break; case DISPLAY_CARDS_STATE.displayAllCards: int positionY = 10; // The Y position on the LCD LCD.GetInstance().DisplayText(GT.Color.Gray, "Pour quitter, appuyer sur le joystick", 10, LCD.GetInstance().LcdHeight - 20); foreach (Card card in ListOfCards.GetInstance().CardsList) { LCD.GetInstance().DisplayText(GT.Color.Black, card.Name, 10, positionY); positionY += 15; // Increment the Y position } if (!_joystickButton.Read()) // If joystick button is press { RestoreInitialState(); } break; default: _displayCardsState = DISPLAY_CARDS_STATE.listIsEmpty; break; } }
/// <summary> /// This method restore to initial state (main menu) /// </summary> private void RestoreInitialState() { _menu = 0; _menuState = MENU_STATE.initial; _servoState = SERVO_STATE.close; _secretState = SECRET_CODE.up1; _scanCardState = SCAN_CARD_STATE.waitRFID; _addCardState = ADD_CARD_STATE.waitRFID; _displayCardsState = DISPLAY_CARDS_STATE.listIsEmpty; _deleteCardState = DELETE_CARD_STATE.listIsEmpty; // Refresh the LCD text fields LCDTextFields.Content = Card.DEFAULT_NAME; LCDTextFields.CursorPosition = 0; LCDTextFields.ShouldBeRefresh = true; DeleteCurrentBadgescan(); LCD.GetInstance().Clear(); DisplayMainMenu(_menu); }