adding member

Dependencies:   TextLCD

Committer:
raynard
Date:
Fri Mar 20 11:07:29 2020 +0000
Revision:
3:be0b871f3ff9
Parent:
2:397be4b2e023
adding TextLCD.h

Who changed what in which revision?

UserRevisionLine numberNew contents of line
raynard 0:9802675a1b15 1 /* mbed Microcontroller Library
raynard 0:9802675a1b15 2 * Copyright (c) 2019 ARM Limited
raynard 0:9802675a1b15 3 * SPDX-License-Identifier: Apache-2.0
raynard 0:9802675a1b15 4 */
raynard 0:9802675a1b15 5
raynard 0:9802675a1b15 6 #include "mbed.h"
raynard 0:9802675a1b15 7 #include "platform/mbed_thread.h"
raynard 0:9802675a1b15 8
raynard 0:9802675a1b15 9 #include <iostream>
raynard 0:9802675a1b15 10 #include <sstream>
raynard 0:9802675a1b15 11 #include "vector"
raynard 0:9802675a1b15 12 #include "TextLCD.h"
raynard 1:028c44d2aa6d 13
raynard 3:be0b871f3ff9 14 TextLCD lcd(PA_9, PB_10, PB_4, PB_5, PB_3, PA_10); // rs, rw, e, d0, d1, d2, d3
raynard 1:028c44d2aa6d 15
raynard 0:9802675a1b15 16
raynard 0:9802675a1b15 17 using namespace std;
raynard 0:9802675a1b15 18 DigitalIn incrementbutton(PA_2);
raynard 0:9802675a1b15 19 DigitalIn decrementbutton(PA_3);
raynard 0:9802675a1b15 20 DigitalIn acceptbutton(PA_10);
raynard 0:9802675a1b15 21 DigitalOut myled(PA_0);
raynard 0:9802675a1b15 22
raynard 0:9802675a1b15 23
raynard 0:9802675a1b15 24 struct Attendant {
raynard 0:9802675a1b15 25 char AttendantName[16];
raynard 0:9802675a1b15 26 char systemPassword[5] = "1212"; //password
raynard 0:9802675a1b15 27
raynard 0:9802675a1b15 28 };
raynard 0:9802675a1b15 29 int debug1 = 0;
raynard 0:9802675a1b15 30 int main()
raynard 0:9802675a1b15 31 {
raynard 0:9802675a1b15 32
raynard 0:9802675a1b15 33 std::vector<int > password{};
raynard 0:9802675a1b15 34 char str1[4];
raynard 0:9802675a1b15 35
raynard 0:9802675a1b15 36 std::ostringstream oss;
raynard 0:9802675a1b15 37
raynard 0:9802675a1b15 38 Attendant Attendant1;
raynard 0:9802675a1b15 39
raynard 0:9802675a1b15 40 if (debug1 > 1) {
raynard 0:9802675a1b15 41 std::cout << "Enter Attendant Name"<< std::endl;
raynard 0:9802675a1b15 42 scanf("%s",&Attendant1.AttendantName);
raynard 0:9802675a1b15 43 std::cout << "Welcome " << Attendant1.AttendantName << "\nSelect password\n" << std::endl; //question 1
raynard 0:9802675a1b15 44
raynard 0:9802675a1b15 45 }
raynard 0:9802675a1b15 46
raynard 2:397be4b2e023 47
raynard 2:397be4b2e023 48 int check = 1;
raynard 2:397be4b2e023 49 while(check) {
raynard 2:397be4b2e023 50 lcd.printf("Welcome, Select password");
raynard 2:397be4b2e023 51 wait(1);
raynard 2:397be4b2e023 52 lcd.cls();
raynard 0:9802675a1b15 53
raynard 0:9802675a1b15 54
raynard 0:9802675a1b15 55
raynard 0:9802675a1b15 56
raynard 0:9802675a1b15 57
raynard 2:397be4b2e023 58 int count;
raynard 2:397be4b2e023 59 for (count = 0; count < 10; count++) {
raynard 2:397be4b2e023 60 if(password.size() < 4) {
raynard 0:9802675a1b15 61
raynard 0:9802675a1b15 62
raynard 0:9802675a1b15 63
raynard 2:397be4b2e023 64 lcd.printf("Select Number : %i",count);
raynard 0:9802675a1b15 65 wait(1);
raynard 0:9802675a1b15 66 lcd.cls();
raynard 0:9802675a1b15 67
raynard 2:397be4b2e023 68
raynard 0:9802675a1b15 69 if (debug1 > 1) {
raynard 2:397be4b2e023 70 std::cout << "Select Number : " << count << " ?\n" << std::endl;
raynard 2:397be4b2e023 71 scanf("%s", &str1);
raynard 0:9802675a1b15 72 }
raynard 0:9802675a1b15 73
raynard 2:397be4b2e023 74 if (acceptbutton == 0) { //RD2 (the button configurations for RD0 will be here)
raynard 2:397be4b2e023 75 password.push_back(count);
raynard 2:397be4b2e023 76 //std::cout << password[(password.size() - 1)] << std::endl;
raynard 2:397be4b2e023 77 count = -1;
raynard 2:397be4b2e023 78 } else if (incrementbutton == 0) { //incrementing //RD0 (the button configurations for RD1 will be here)
raynard 2:397be4b2e023 79 continue;
raynard 2:397be4b2e023 80 } else if (decrementbutton == 0) { //RD1 (the button configurations for RD2 will be here)
raynard 2:397be4b2e023 81 count--;
raynard 2:397be4b2e023 82 count--;
raynard 2:397be4b2e023 83 } else {
raynard 2:397be4b2e023 84 lcd.printf("INValid Selection");
raynard 2:397be4b2e023 85 wait(1);
raynard 2:397be4b2e023 86 lcd.cls();
raynard 0:9802675a1b15 87
raynard 2:397be4b2e023 88 if (debug1 > 1) {
raynard 2:397be4b2e023 89 std::cout << "Enter A Valid Selection\n" << std::endl;
raynard 2:397be4b2e023 90 }
raynard 2:397be4b2e023 91 }
raynard 0:9802675a1b15 92
raynard 2:397be4b2e023 93 }
raynard 2:397be4b2e023 94 }
raynard 2:397be4b2e023 95
raynard 2:397be4b2e023 96 std::copy(password.begin(),password.end(),std::ostream_iterator<int>(oss));
raynard 2:397be4b2e023 97
raynard 2:397be4b2e023 98 std::string result = oss.str();
raynard 2:397be4b2e023 99 const char *c_result = result.c_str();
raynard 1:028c44d2aa6d 100
raynard 2:397be4b2e023 101 if(!strcmp(c_result,Attendant1.systemPassword)) {
raynard 2:397be4b2e023 102 lcd.printf("%s", c_result);
raynard 2:397be4b2e023 103 lcd.printf("\n");
raynard 2:397be4b2e023 104 wait(1);
raynard 2:397be4b2e023 105 lcd.cls();
raynard 2:397be4b2e023 106 check = 0;
raynard 2:397be4b2e023 107 } else {
raynard 2:397be4b2e023 108 // std::cout << "password incorrect\n" << "Try Again" << std::endl;
raynard 2:397be4b2e023 109
raynard 3:be0b871f3ff9 110 lcd.printf("incorrect Try Again");
raynard 2:397be4b2e023 111 wait(1);
raynard 2:397be4b2e023 112 lcd.cls();
raynard 2:397be4b2e023 113 password.clear();
raynard 2:397be4b2e023 114 }
raynard 2:397be4b2e023 115
raynard 2:397be4b2e023 116
raynard 0:9802675a1b15 117 }
raynard 0:9802675a1b15 118 return 0;
raynard 0:9802675a1b15 119 };
raynard 0:9802675a1b15 120
raynard 0:9802675a1b15 121
raynard 0:9802675a1b15 122
raynard 0:9802675a1b15 123
raynard 0:9802675a1b15 124
raynard 0:9802675a1b15 125