diff --git a/device/main/RFIDInterface.cpp b/device/main/RFIDInterface.cpp index 278407f..3818345 100644 --- a/device/main/RFIDInterface.cpp +++ b/device/main/RFIDInterface.cpp @@ -3,15 +3,16 @@ #include #include #include +#include #include "WebInterface.hpp" static const char* TAG = "rfid"; -void tag_handler(uint8_t* sn) { // serial number is always 5 bytes long - ESP_LOGI(TAG, "Tag: %#x %#x %#x %#x %#x", - sn[0], sn[1], sn[2], sn[3], sn[4] - ); +static char* lastTagId = (char*)malloc(26 * sizeof(char)); + +static char* getLastTagId() { + return lastTagId; } RFIDInterface::RFIDInterface() { @@ -20,7 +21,15 @@ RFIDInterface::RFIDInterface() { .mosi_io = 25, .sck_io = 23, .sda_io = 5, - .callback = &tag_handler + .callback = [](uint8_t* sn) { // serial number is always 5 bytes long + ESP_LOGI(TAG, "Tag: %#x %#x %#x %#x %#x", + sn[0], sn[1], sn[2], sn[3], sn[4] + ); + + sprintf(lastTagId, "%#x_%#x_%#x_%#x_%#x", sn[0], sn[1], sn[2], sn[3], sn[4]); + + ESP_LOGI(TAG, "sprintf tag id: %s", lastTagId); + } }; } @@ -32,12 +41,11 @@ void RFIDInterface::registerWebResources(WebInterface* interface) { httpd_uri_t config = { .uri = "/rfid", .method = HTTP_GET, - .handler = [](httpd_req_t *req) { - httpd_resp_send(req, "it's all fine!", HTTPD_RESP_USE_STRLEN); + .handler = [](httpd_req_t *req) { + httpd_resp_send(req, getLastTagId(), HTTPD_RESP_USE_STRLEN); return ESP_OK; } }; interface->registerResource(&config); -} - +} \ No newline at end of file diff --git a/device/main/RFIDInterface.hpp b/device/main/RFIDInterface.hpp index 4c1bd89..a760e7d 100644 --- a/device/main/RFIDInterface.hpp +++ b/device/main/RFIDInterface.hpp @@ -13,4 +13,4 @@ class RFIDInterface { void registerWebResources(WebInterface* interface); }; -#endif \ No newline at end of file +#endif \ No newline at end of file