/// <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); }
/// <summary> /// When no menu is selected /// </summary> private void InitialState() { switch (_scanCardState) { case SCAN_CARD_STATE.waitRFID: if (RFIDReader.GetInstance().IsBadgeScan) { _scanCardState = SCAN_CARD_STATE.RFIDDetected; } break; case SCAN_CARD_STATE.RFIDDetected: if (_servoState == SERVO_STATE.close) // If the servo is lock { bool isValid = ListOfCards.GetInstance().FindCardInlist(RFIDReader.GetInstance().CurrentUid); if (isValid) { _scanCardState = SCAN_CARD_STATE.RFIDValid; } else { _scanCardState = SCAN_CARD_STATE.RFIDInvalid; } } else { _scanCardState = SCAN_CARD_STATE.RFIDInvalid; } break; case SCAN_CARD_STATE.RFIDValid: _servoState = SERVO_STATE.open; _scanCardState = SCAN_CARD_STATE.waitRFID; DeleteCurrentBadgescan(); break; case SCAN_CARD_STATE.RFIDInvalid: _servoState = SERVO_STATE.close; _scanCardState = SCAN_CARD_STATE.waitRFID; DeleteCurrentBadgescan(); break; default: _scanCardState = SCAN_CARD_STATE.waitRFID; break; } switch (_servoState) { case SERVO_STATE.open: ServoMotor.GetInstance().Unlock(); _secuTimer.Start(); break; case SERVO_STATE.close: ServoMotor.GetInstance().Lock(); _secuTimer.Stop(); break; default: _servoState = SERVO_STATE.close; break; } if (_joystickX.Read() > JOYSTICK_DOWN_LEFT) // If the joystick is down { _menu++; if (_menu > 4) { _menu = 0; } DisplayMainMenu(_menu); // It is not removed from the test to prevent the lcd flashing Thread.Sleep(100); // Wait 0.1 second to prevent the menu from scrolling too fast } else if (_joystickX.Read() < JOYSTICK_UP_RIGHT) // The joystick is up { _menu--; if (_menu < 0) { _menu = 4; } DisplayMainMenu(_menu); // It is not removed from the test to prevent the lcd flashing Thread.Sleep(100); // Wait 0.1 second to prevent the menu from scrolling too fast } }