mirror of
https://github.com/bdrtr/FINGER_DETECT.git
synced 2025-11-08 18:52:47 +00:00
80 lines
1.7 KiB
C++
80 lines
1.7 KiB
C++
#include "fServer.h"
|
|
#include "WebServer.h"
|
|
#include "ArduinoJson.h"
|
|
#include "Adafruit_Fingerprint.h"
|
|
#include "fProcess.h"
|
|
|
|
fServer::fServer(int port) : server(port) {
|
|
|
|
sprintf(info, "fserver established %s", "okey");
|
|
}
|
|
|
|
|
|
void fServer::func() {
|
|
|
|
if (server.hasArg("plain")) {
|
|
|
|
String data = server.arg("plain");
|
|
StaticJsonDocument<1024> document;
|
|
DeserializationError d_err = deserializeJson(document, data);
|
|
|
|
if (d_err) sprintf(info, "err occured during deserialization %s\n", d_err.c_str());
|
|
|
|
String message = document["message"].as<String>();
|
|
String message_code = document["function_code"].as<String>();
|
|
this->last_id = document["last_id"].as<uint16_t>();
|
|
|
|
this->selProcess(message_code);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
void fServer::sendReg() {
|
|
|
|
fProcess fp;
|
|
uint16_t temp_id = this->last_id + 1;
|
|
fp.enRoll(temp_id);
|
|
|
|
char RET[20];
|
|
sprintf(RET, "last_id: %u", temp_id);
|
|
server.send(200, "text/plain", RET);
|
|
|
|
}
|
|
|
|
void fServer::sendLog() {
|
|
|
|
fProcess fp;
|
|
char RET[20];
|
|
uint8_t id = fp.logIn();
|
|
|
|
if (id != FINGERPRINT_NOTFOUND) {
|
|
|
|
sprintf(RET, "current id: %u", id);
|
|
server.send(200, "text/plain", RET);
|
|
|
|
} else {
|
|
|
|
sprintf(RET, "current id: %d", -1);
|
|
server.send(200, "text/plain", RET);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
void fServer::selProcess(String message_code) {
|
|
|
|
if (message_code == "1") sendLog();
|
|
else if (message_code == "2") sendReg();
|
|
|
|
}
|
|
|
|
void fServer::Initialize(String subdomain, http_method method) {
|
|
|
|
server.on(subdomain, method, [this]() {this->func();});
|
|
server.begin();
|
|
}
|
|
|
|
void fServer::listen() {
|
|
server.handleClient();
|
|
} |