#include "ImmuNoattri.hpp" #include #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(); }