| 14 | #include "modules/rfid/emv_reader.hpp" |
| 15 | #endif |
| 16 | void RFIDMenu::optionsMenu() { |
| 17 | options = { |
| 18 | #if !defined(REMOVE_RFID_HW_INTERFACE) // Remove Hardware interface menu due to lack of external GPIO |
| 19 | {"Read tag", [=]() { TagOMatic(); } }, |
| 20 | #ifndef LITE_VERSION |
| 21 | {"Read EMV", [=]() { EMVReader(); } }, |
| 22 | {"Read 125kHz", [=]() { RFID125(); } }, |
| 23 | #endif |
| 24 | {"Scan tags", [=]() { TagOMatic(TagOMatic::SCAN_MODE); } }, |
| 25 | {"Load file", [=]() { TagOMatic(TagOMatic::LOAD_MODE); } }, |
| 26 | {"Erase data", [=]() { TagOMatic(TagOMatic::ERASE_MODE); } }, |
| 27 | {"Write NDEF", [=]() { TagOMatic(TagOMatic::WRITE_NDEF_MODE); }}, |
| 28 | #endif |
| 29 | #ifndef LITE_VERSION |
| 30 | {"Amiibolink", [=]() { Amiibo(); } }, |
| 31 | #endif |
| 32 | {"Chameleon", [=]() { Chameleon(); } }, |
| 33 | #ifndef LITE_VERSION |
| 34 | {"PN532 BLE", [=]() { Pn532ble(); } }, |
| 35 | #if !defined(REMOVE_RFID_HW_INTERFACE) // Remove Hardware interface menu due to lack of external GPIO |
| 36 | {"PN532 UART", [=]() { PN532KillerTools(); } }, |
| 37 | #endif |
| 38 | #endif |
| 39 | {"Config", [this]() { configMenu(); } }, |
| 40 | }; |
| 41 | |
| 42 | #if !defined(REMOVE_RFID_HW_INTERFACE) |
| 43 | #ifndef LITE_VERSION |
| 44 | if (bruceConfigPins.rfidModule == PN532_I2C_MODULE) { |
| 45 | // Added SRIX Menu only if PN is set to i2c mode |
| 46 | options.insert(options.begin() + 3, {"SRIX Tool", [=]() { PN532_SRIX(); }}); |
| 47 | } |
| 48 | #endif |
| 49 | #endif |
| 50 | |
| 51 | addOptionToMainMenu(); |
| 52 | |
| 53 | vTaskDelay(pdMS_TO_TICKS(200)); |
| 54 | |
| 55 | String txt = "RFID"; |
| 56 | if (bruceConfigPins.rfidModule == M5_RFID2_MODULE) txt += " (RFID2)"; |
| 57 | #ifdef M5STICK |
| 58 | else if (bruceConfigPins.rfidModule == PN532_I2C_MODULE) txt += " (PN532-G33)"; |
| 59 | else if (bruceConfigPins.rfidModule == PN532_I2C_SPI_MODULE) txt += " (PN532-G36)"; |
| 60 | #else |
| 61 | else if (bruceConfigPins.rfidModule == PN532_I2C_MODULE) txt += " (PN532-I2C)"; |
| 62 | #endif |
| 63 | else if (bruceConfigPins.rfidModule == PN532_SPI_MODULE) txt += " (PN532-SPI)"; |
| 64 | else if (bruceConfigPins.rfidModule == RC522_SPI_MODULE) txt += " (RC522-SPI)"; |
| 65 | loopOptions(options, MENU_TYPE_SUBMENU, txt.c_str()); |
| 66 | } |
| 67 | |
| 68 | void RFIDMenu::configMenu() { |
| 69 | options = { |
nothing calls this directly
no test coverage detected