|
|
|
@ -72,6 +72,11 @@ DriverResult NfcProtocol::StartNFCPollingMode() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DriverResult NfcProtocol::ScanAmiibo(std::vector<u8>& data) {
|
|
|
|
|
if (update_counter++ < AMIIBO_UPDATE_DELAY) {
|
|
|
|
|
return DriverResult::Delayed;
|
|
|
|
|
}
|
|
|
|
|
update_counter = 0;
|
|
|
|
|
|
|
|
|
|
LOG_DEBUG(Input, "Start NFC pooling Mode");
|
|
|
|
|
ScopedSetBlocking sb(this);
|
|
|
|
|
DriverResult result{DriverResult::Success};
|
|
|
|
@ -87,7 +92,7 @@ DriverResult NfcProtocol::ScanAmiibo(std::vector<u8>& data) {
|
|
|
|
|
result = WaitUntilNfcIsReady();
|
|
|
|
|
}
|
|
|
|
|
if (result == DriverResult::Success) {
|
|
|
|
|
result = StartPolling(tag_data);
|
|
|
|
|
result = StartPolling(tag_data, 7);
|
|
|
|
|
}
|
|
|
|
|
if (result == DriverResult::Success) {
|
|
|
|
|
result = GetAmiiboData(data);
|
|
|
|
@ -129,9 +134,8 @@ DriverResult NfcProtocol::WaitUntilNfcIsReady() {
|
|
|
|
|
return DriverResult::Success;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DriverResult NfcProtocol::StartPolling(TagFoundData& data) {
|
|
|
|
|
DriverResult NfcProtocol::StartPolling(TagFoundData& data, std::size_t timeout_limit) {
|
|
|
|
|
LOG_DEBUG(Input, "Start Polling for tag");
|
|
|
|
|
constexpr std::size_t timeout_limit = 7;
|
|
|
|
|
MCUCommandResponse output{};
|
|
|
|
|
std::size_t tries = 0;
|
|
|
|
|
|
|
|
|
|