diff --git a/afdrukker.cpp b/afdrukker.cpp new file mode 100644 index 0000000..ff1aeaa --- /dev/null +++ b/afdrukker.cpp @@ -0,0 +1,5 @@ +#include "afdrukker.h" + +Afdrukker::Afdrukker(){ + +} diff --git a/afdrukker.h b/afdrukker.h new file mode 100644 index 0000000..0612afa --- /dev/null +++ b/afdrukker.h @@ -0,0 +1,16 @@ +#ifndef AFDRUKKER_H +#define AFDRUKKER_H + +#include + +class QTextBrowser; + +class Afdrukker{ +public: + Afdrukker(); + QTextBrowser* brow; + virtual void toonText(std::string)=0; + virtual void clearMedium()=0; +}; + +#endif // AFDRUKKER_H diff --git a/deur.cpp b/deur.cpp index 9c7158e..79e9104 100644 --- a/deur.cpp +++ b/deur.cpp @@ -54,3 +54,7 @@ Slot* Deur::geefSleutel(int i){ advance(it, i); return *it; } + +std::list Deur::geefSlot(){ + return sloten; +} diff --git a/deur.h b/deur.h index 9b6d112..9ce3f6f 100644 --- a/deur.h +++ b/deur.h @@ -28,6 +28,7 @@ public: void addSlot(Slot*); //std::list geefSleutel(); Slot* geefSleutel(int); + std::list geefSlot(); //Deur(int, int, int, Slot*); }; diff --git a/drukbox.cpp b/drukbox.cpp new file mode 100644 index 0000000..14b64e8 --- /dev/null +++ b/drukbox.cpp @@ -0,0 +1,13 @@ +#include "drukbox.h" + +Drukbox::Drukbox(){ + +} + +void Drukbox::toonText(std::string){ + //brow-> +} + +void Drukbox::clearMedium(){ + +} diff --git a/drukbox.h b/drukbox.h new file mode 100644 index 0000000..af949b8 --- /dev/null +++ b/drukbox.h @@ -0,0 +1,16 @@ +#ifndef DRUKBOX_H +#define DRUKBOX_H + +#include "afdrukker.h" +//#include + +class QTextBrowser; + +class Drukbox : public Afdrukker{ +public: + Drukbox(); + virtual void toonText(std::string); + virtual void clearMedium(); +}; + +#endif // DRUKBOX_H diff --git a/gebouw.pro b/gebouw.pro index 5e6128c..321c2d5 100644 --- a/gebouw.pro +++ b/gebouw.pro @@ -24,9 +24,11 @@ DEFINES += QT_DEPRECATED_WARNINGS SOURCES += main.cpp\ + afdrukker.cpp \ codeslot.cpp \ deur.cpp \ draaideur.cpp \ + drukbox.cpp \ hallsensor.cpp \ herkenningsslot.cpp \ mainwindow.cpp \ @@ -36,9 +38,11 @@ SOURCES += main.cpp\ slot.cpp HEADERS += mainwindow.h \ + afdrukker.h \ codeslot.h \ deur.h \ draaideur.h \ + drukbox.h \ hallsensor.h \ herkenningsslot.h \ schuifdeur.h \ diff --git a/gebouw.pro.user b/gebouw.pro.user index 7f46cfa..f67802f 100644 --- a/gebouw.pro.user +++ b/gebouw.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/herkenningsslot.cpp b/herkenningsslot.cpp index 4356e73..30a099b 100644 --- a/herkenningsslot.cpp +++ b/herkenningsslot.cpp @@ -1,11 +1,13 @@ #include "herkenningsslot.h" -HerkenningsSlot::HerkenningsSlot(){ +HerkenningsSlot::HerkenningsSlot(Afdrukker* a): afdrukker(a){ } void HerkenningsSlot::voegAutorisatieToe(string naam, bool access){ - kaartenbak[naam] = access; + if (!kaartenbak.count(naam)){ + kaartenbak[naam] = access; + } } void HerkenningsSlot::ontgrendel(string naam){ @@ -23,6 +25,6 @@ void HerkenningsSlot::vergrendel(){ vergrendeld = true; } -void HerkenningsSlot::toonKaartenBack(){ +void HerkenningsSlot::toonKaartenBak(){ } diff --git a/herkenningsslot.h b/herkenningsslot.h index 5252dd9..54e88dc 100644 --- a/herkenningsslot.h +++ b/herkenningsslot.h @@ -13,11 +13,11 @@ private: bool vergrendeld; Afdrukker* afdrukker; public: - HerkenningsSlot(); + HerkenningsSlot(Afdrukker*); void vergrendel(); bool isVergrendeld(); void ontgrendel(string); - void toonKaartenBack(); + void toonKaartenBak(); void voegAutorisatieToe(string,bool); }; diff --git a/mainwindow.cpp b/mainwindow.cpp index 7c8eee5..a5ca4e5 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -10,6 +10,10 @@ #include #include #include +#include "slot.h" +#include "herkenningsslot.h" +#include "afdrukker.h" +#include "drukbox.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), @@ -19,8 +23,8 @@ MainWindow::MainWindow(QWidget *parent) : //sleutelSlot0 = new SleutelSlot("cisco"); //sleutelSlot1 = new SleutelSlot("cisco"); deuren.emplace_back(std::shared_ptr (new Schuifdeur(503,250,80,s1))); - deuren[0]->addSlot(new SleutelSlot("cisco")); - deuren[0]->addSlot(new SleutelSlot("cisco2")); + deuren[0]->addSlot(new HerkenningsSlot(new Drukbox())); + //deuren[0]->addSlot(new SleutelSlot("cisco2")); deuren.emplace_back(std::shared_ptr (new draaideur(248,140,40,false))); deuren[1]->addSlot(new CodeSlot(1234)); deuren[1]->addSlot(new CodeSlot(5678)); @@ -91,20 +95,33 @@ void MainWindow::on_d2_clicked(){ void MainWindow::on_lineEdit_returnPressed(){ string eenSleutel = ui->lineEdit->text().toStdString(); - Slot* sleutelSlot0 = deuren[0]->geefSleutel(0); - Slot* sleutelSlot1 = deuren[0]->geefSleutel(1); - Slot* codeSlot0 = deuren[1]->geefSleutel(0); - Slot* codeSlot1 = deuren[1]->geefSleutel(1); - Slot* codeSlot2 = deuren[2]->geefSleutel(0); - sleutelSlot0->ontgrendel(eenSleutel); - sleutelSlot1->ontgrendel(eenSleutel); - codeSlot0->ontgrendel(eenSleutel); - codeSlot1->ontgrendel(eenSleutel); - codeSlot2->ontgrendel(eenSleutel); - +// Slot* sleutelSlot0 = deuren[0]->geefSleutel(0); +// Slot* sleutelSlot1 = deuren[0]->geefSleutel(1); +// Slot* codeSlot0 = deuren[1]->geefSleutel(0); +// Slot* codeSlot1 = deuren[1]->geefSleutel(1); +// Slot* codeSlot2 = deuren[2]->geefSleutel(0); +// sleutelSlot0->ontgrendel(eenSleutel); +// sleutelSlot1->ontgrendel(eenSleutel); +// codeSlot0->ontgrendel(eenSleutel); +// codeSlot1->ontgrendel(eenSleutel); +// codeSlot2->ontgrendel(eenSleutel); + for(ulong i = 0; i < deuren.size(); i++) { + std::list slotenDeur = deuren[i]->geefSlot(); + for (auto &j:slotenDeur) + (*j).ontgrendel(ui->lineEdit->text().toStdString()); + } } -void MainWindow::on_textBrowser_textChanged(){ - update(); +void MainWindow::on_Allow_clicked(){ + Slot* a = deuren[0]->geefSleutel(0); + HerkenningsSlot* b = dynamic_cast(a); + b->voegAutorisatieToe(ui->HerkenningAdd->text().toStdString(), true); +} + + +void MainWindow::on_Deny_clicked(){ + Slot* a = deuren[0]->geefSleutel(0); + HerkenningsSlot* b = dynamic_cast(a); + b->voegAutorisatieToe(ui->HerkenningAdd->text().toStdString(), false); } diff --git a/mainwindow.h b/mainwindow.h index cae3c79..69fcc5b 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -8,12 +8,14 @@ namespace Ui { class MainWindow; } + class Hallsensor; class Sensor; class Schuifdeur; class draaideur; class Deur; class SleutelSlot; +class HerkenningsSlot; class Slot; class MainWindow : public QMainWindow{ Q_OBJECT @@ -27,8 +29,10 @@ private slots: void on_vd_clicked(); void on_d1_clicked(); void on_d2_clicked(); - void on_lineEdit_returnPressed(); + void on_Allow_clicked(); + + void on_Deny_clicked(); private: Ui::MainWindow *ui; diff --git a/mainwindow.ui b/mainwindow.ui index 3dc8d11..64c30d8 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -6,7 +6,7 @@ 0 0 - 670 + 1171 431 @@ -88,14 +88,60 @@ + + + + 810 + 10 + 114 + 30 + + + + + + + 740 + 180 + 256 + 192 + + + + + + + 810 + 60 + 47 + 31 + + + + Allow + + + + + + 874 + 60 + 47 + 31 + + + + Deny + + 0 0 - 670 - 27 + 1171 + 22