#include "lfrfid_app_scene_read.h" void LfRfidAppSceneRead::on_enter(LfRfidApp* app, bool need_restore) { auto popup = app->view_controller.get(); popup->set_header("Reading\nLF RFID", 89, 34, AlignCenter, AlignTop); popup->set_icon(0, 3, &I_RFIDDolphinReceive_97x61); app->view_controller.switch_to(); app->worker.start_read(); } bool LfRfidAppSceneRead::on_event(LfRfidApp* app, LfRfidApp::Event* event) { bool consumed = false; if(event->type == LfRfidApp::EventType::Tick) { if(app->worker.read()) { notification_message(app->notification, &sequence_success); app->scene_controller.switch_to_next_scene(LfRfidApp::SceneType::ReadSuccess); } else { if(app->worker.any_read()) { notification_message(app->notification, &sequence_blink_green_10); } else if(app->worker.detect()) { notification_message(app->notification, &sequence_blink_blue_10); } else { notification_message(app->notification, &sequence_blink_red_10); } } } return consumed; } void LfRfidAppSceneRead::on_exit(LfRfidApp* app) { app->view_controller.get()->clean(); app->worker.stop_read(); }