#pragma once #include #include "config.h" #include "player.h" #include #include class Controller { private: MFRC522* _rfid; MCP* _mcp; bool _rfid_enabled = true; void _check_rfid(); void _check_serial(); void _check_buttons(); uint32_t _get_rfid_card_uid(); uint32_t _last_rfid_card_uid = 0; uint8_t _no_rfid_card_count = 0; Player* _player; unsigned long _last_rfid_scan_at = 0; String _serial_buffer = String(); void _execute_serial_command(String cmd); void _execute_command_ls(String path); void _execute_command_help(); unsigned long _button_last_pressed_at[NUM_BUTTONS]; bool _check_button(uint8_t btn); public: Controller(Player* p, MCP* m); String rfid_uid() { return String(_last_rfid_card_uid, HEX); } void loop(); };