Files
kidsbox/device/main/RFIDInterface.hpp
T
Claude bf9852c345 Implement full NFC-URL streaming architecture
- rc522: add NDEF URL reading via WUPA+cascade anticoll+SELECT+TLV parse
- AudioPlayer: route http:// URIs to esp_player_http_music_play()
- CacheManager: download URLs async to /sdcard/cache/{hash}.{ext}
- TagPlayerControl: NDEF URL → cache-or-stream; fallback to UID local mapping
- RFIDInterface: wire ndef_callback, expose combined uid+url callback
- WebInterface: add /api/info, /api/storage, /api/playback, /api/bluetooth
- BluetoothInterface: stub for A2DP speaker mode
- Networking: WiFi connect with 30s timeout instead of blocking forever
- main.cpp: re-enable WiFi + web server, fix init order, add CacheManager
- www/: full SPA — playback controls, device info, storage, BT pairing
- .gitmodules: switch rc522 submodule URL to HTTPS

https://claude.ai/code/session_01MhAnh68DPNnTjcKqjNYDmk
2026-06-12 19:44:54 +00:00

27 lines
775 B
C++

#ifndef _RFID_INTERFACE_HPP
#define _RFID_INTERFACE_HPP
#include <rc522.h>
#include <functional>
#include "WebInterface.hpp"
class RFIDInterface {
rc522_start_args_t startConfig;
public:
RFIDInterface();
void start();
void registerWebResources(WebInterface* interface);
/* Callback receives (uid_string, url_or_null):
* uid == NULL → tag removed
* url == NULL → tag placed but no NDEF URI found (use uid for local lookup)
* url != NULL → tag placed with NDEF URI */
void registerTagCallback(std::function<void(const char* uid, const char* url)> cb);
/* Legacy: only fires with UID string (NULL on removal). Kept for compatibility. */
void registerTagChangeCallback(std::function<void(char*)> cb);
};
#endif