ImmuNoattri/ImmuNoattri.cpp

75 lines
1.9 KiB
C++

#include "ImmuNoattri.hpp"
#include <QDebug>
#include "ui_ImmuNoattri.h"
bool decodeCodfis(const QString& input, QString& codfis, QString& anagrafica) {
codfis = input.mid(1, 16);
if (codfis.length() != 16) {
return false;
}
int end_anagrafica = input.indexOf(0x5f);
if (end_anagrafica < 0) {
return false;
}
anagrafica = input.mid(17, end_anagrafica - 17);
return true;
}
MainWindow::MainWindow(QWidget* parent)
: QMainWindow(parent),
ui(new Ui::MainWindow),
sqliteInterface("presenze.db") {
ui->setupUi(this);
connect(&lineTessera_timer, &QTimer::timeout, this,
&MainWindow::on_lineTessera_timer_timeout);
int registrati = sqliteInterface.count();
ui->lineRegistrati->setText(QString::number(registrati));
ui->lineStato->setText("Strusciare tessera magnetica");
}
MainWindow::~MainWindow() {}
void MainWindow::on_actionNuovo_triggered() {
qDebug() << "Falla finita di ciacciare";
}
void MainWindow::on_actionApri_triggered() {
qDebug() << "Falla finita di ciacciare";
}
void MainWindow::on_lineTessera_textEdited(const QString& text) {
// The magnetic reader has three newline characters
lineTessera_timer.start(std::chrono::milliseconds(500));
}
void MainWindow::on_lineTessera_timer_timeout() {
lineTessera_timer.stop();
QString codfis;
QString anagrafica;
// Validating input
if (decodeCodfis(ui->lineTessera->text(), codfis, anagrafica)) {
int registrati = ui->lineRegistrati->text().toInt();
registrati++;
ui->lineRegistrati->setText(QString(registrati));
ui->lineStato->setText("Tessera valida! Strusciare la prossima");
sqliteInterface.addVisitor(codfis, anagrafica);
} else {
ui->lineStato->setText("Tessera non valida, riprovare a strusciare!");
}
ui->lineTessera->setText("");
}
void MainWindow::on_pushMano_clicked() {}
void MainWindow::closeEvent(QCloseEvent *event) {
qDebug() << "Pulisco db";
sqliteInterface.cleanup();
}