diff --git a/gebouw.pro b/gebouw.pro index 321c2d5..4ad8db5 100644 --- a/gebouw.pro +++ b/gebouw.pro @@ -31,6 +31,8 @@ SOURCES += main.cpp\ drukbox.cpp \ hallsensor.cpp \ herkenningsslot.cpp \ + idkaart.cpp \ + kaartslot.cpp \ mainwindow.cpp \ schuifdeur.cpp \ sensor.cpp \ @@ -45,6 +47,8 @@ HEADERS += mainwindow.h \ drukbox.h \ hallsensor.h \ herkenningsslot.h \ + idkaart.h \ + kaartslot.h \ schuifdeur.h \ sensor.h \ sleutelslot.h \ diff --git a/herkenningsslot.cpp b/herkenningsslot.cpp index 345783d..fa01c49 100644 --- a/herkenningsslot.cpp +++ b/herkenningsslot.cpp @@ -29,7 +29,6 @@ void HerkenningsSlot::vergrendel(){ void HerkenningsSlot::toonKaartenBak(){ afdrukker->clearMedium(); for (auto &j:kaartenbak){ - afdrukker->toonText(j.first); - afdrukker->toonText(std::to_string(j.second)); + afdrukker->toonText(j.first + " " + std::to_string(j.second)); } } diff --git a/idkaart.cpp b/idkaart.cpp new file mode 100644 index 0000000..6caab6a --- /dev/null +++ b/idkaart.cpp @@ -0,0 +1,21 @@ +#include "idkaart.h" + +IdKaart::IdKaart(std::string naam, std::string adres):id(naam+" "+adres),naamEigenaar(naam), adresEigenaar(adres){ + +} + +std::string IdKaart::userId(){ + return id; +} + +void IdKaart::geefToegang(KaartSlot*){ + +} + +void IdKaart::verwijderToegang(KaartSlot*){ + +} + +bool IdKaart::heeftToegangTot(KaartSlot*){ + +} diff --git a/idkaart.h b/idkaart.h new file mode 100644 index 0000000..735f74c --- /dev/null +++ b/idkaart.h @@ -0,0 +1,23 @@ +#ifndef IDKAART_H +#define IDKAART_H + +#include +#include + +class KaartSlot; + +class IdKaart{ +private: + std::string id; + std::vector toegang; + std::string naamEigenaar; + std::string adresEigenaar; +public: + IdKaart(std::string, std::string); + std::string userId(); + void geefToegang(KaartSlot*); + void verwijderToegang(KaartSlot*); + bool heeftToegangTot(KaartSlot*); +}; + +#endif // IDKAART_H diff --git a/kaartslot.cpp b/kaartslot.cpp new file mode 100644 index 0000000..f42929b --- /dev/null +++ b/kaartslot.cpp @@ -0,0 +1,29 @@ +#include "kaartslot.h" + +KaartSlot::KaartSlot(): vergrendeld(true){ + +} + +void KaartSlot::vergrendel(){ + vergrendeld = true; +} + +bool KaartSlot::isVergrendeld(){ + return vergrendeld; +} + +void KaartSlot::ontgrendel(std::string id){ + +} + +void KaartSlot::voegIdKaartToe(IdKaart* a){ + if(!idKaarten.count(a->userId())){ + idKaarten[a->userId()] = a; + } +} + +void KaartSlot::verwijderIdKaart(std::string key){ + if(idKaarten[key]){ + idKaarten.erase(key); + } +} diff --git a/kaartslot.h b/kaartslot.h new file mode 100644 index 0000000..897e1fa --- /dev/null +++ b/kaartslot.h @@ -0,0 +1,23 @@ +#ifndef KAARTSLOT_H +#define KAARTSLOT_H + +#include "slot.h" +#include "idkaart.h" +#include +#include + +class KaartSlot : public Slot{ +private: + std::string plaats; + bool vergrendeld; + static inline std::map idKaarten{}; +public: + KaartSlot(); + void vergrendel(); + bool isVergrendeld(); + void ontgrendel(std::string); + static void voegIdKaartToe(IdKaart*); + static void verwijderIdKaart(std::string); +}; + +#endif // KAARTSLOT_H diff --git a/mainwindow.cpp b/mainwindow.cpp index f14d694..5927038 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -14,6 +14,8 @@ #include "herkenningsslot.h" #include "afdrukker.h" #include "drukbox.h" +#include "kaartslot.h" +#include "idkaart.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), @@ -24,10 +26,12 @@ MainWindow::MainWindow(QWidget *parent) : //sleutelSlot1 = new SleutelSlot("cisco"); deuren.emplace_back(std::shared_ptr (new Schuifdeur(503,250,80,s1))); //deuren[0]->addSlot(new HerkenningsSlot(new Drukbox(ui->textBrowser))); - deuren[0]->addSlot(new SleutelSlot("cisco2")); + //deuren[0]->addSlot(new SleutelSlot("cisco2")); + deuren[0]->addSlot(new KaartSlot); deuren.emplace_back(std::shared_ptr (new draaideur(248,140,40,false))); - deuren[1]->addSlot(new CodeSlot(1234)); - deuren[1]->addSlot(new CodeSlot(5678)); + //deuren[1]->addSlot(new CodeSlot(1234)); + //deuren[1]->addSlot(new CodeSlot(5678)); + deuren[1]->addSlot(new KaartSlot); deuren.emplace_back(std::shared_ptr (new draaideur(295,290,30,true))); deuren[2]->addSlot(new CodeSlot(0000)); deuren[2]->addSlot(new HerkenningsSlot(new Drukbox(ui->textBrowser))); @@ -134,3 +138,17 @@ void MainWindow::on_HerkenningAdd_2_returnPressed(){ b->ontgrendel(ui->HerkenningAdd_2->text().toStdString()); } + +void MainWindow::on_addIdCard_clicked(){ + KaartSlot* kaart = new KaartSlot; + kaart->voegIdKaartToe(new IdKaart(ui->Naam->text().toStdString(),ui->Adres->text().toStdString())); + delete kaart; +} + + +void MainWindow::on_deleteIdCard_clicked(){ + KaartSlot* kaart = new KaartSlot; + kaart->verwijderIdKaart(ui->Naam->text().toStdString()+" "+ui->Adres->text().toStdString()); + delete kaart; +} + diff --git a/mainwindow.h b/mainwindow.h index 91c0227..ee03e6b 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -35,6 +35,10 @@ private slots: void on_HerkenningAdd_2_returnPressed(); + void on_addIdCard_clicked(); + + void on_deleteIdCard_clicked(); + private: Ui::MainWindow *ui; Hallsensor *s1; diff --git a/mainwindow.ui b/mainwindow.ui index 8280148..8b56752 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -6,8 +6,8 @@ 0 0 - 1171 - 431 + 1041 + 669 @@ -144,13 +144,59 @@ + + + + 20 + 420 + 114 + 30 + + + + + + + 20 + 460 + 114 + 30 + + + + + + + 150 + 420 + 91 + 26 + + + + Add id Card + + + + + + 150 + 460 + 91 + 26 + + + + Delete id Card + + 0 0 - 1171 + 1041 23