#pragma once #include "esphome/core/automation.h" #include "esphome/core/component.h" #include "esphome/components/pn7160/pn7160.h" namespace esphome { namespace pn7160 { class PN7160OnEmulatedTagScanTrigger : public Trigger<> { public: explicit PN7160OnEmulatedTagScanTrigger(PN7160 *parent) { parent->add_on_emulated_tag_scan_callback([this]() { this->trigger(); }); } }; class PN7160OnFinishedWriteTrigger : public Trigger<> { public: explicit PN7160OnFinishedWriteTrigger(PN7160 *parent) { parent->add_on_finished_write_callback([this]() { this->trigger(); }); } }; template class PN7160IsWritingCondition : public Condition, public Parented { public: bool check(Ts... x) override { return this->parent_->is_writing(); } }; template class EmulationOffAction : public Action, public Parented { void play(Ts... x) override { this->parent_->set_tag_emulation_off(); } }; template class EmulationOnAction : public Action, public Parented { void play(Ts... x) override { this->parent_->set_tag_emulation_on(); } }; template class PollingOffAction : public Action, public Parented { void play(Ts... x) override { this->parent_->set_polling_off(); } }; template class PollingOnAction : public Action, public Parented { void play(Ts... x) override { this->parent_->set_polling_on(); } }; template class SetCleanModeAction : public Action, public Parented { void play(Ts... x) override { this->parent_->clean_mode(); } }; template class SetFormatModeAction : public Action, public Parented { void play(Ts... x) override { this->parent_->format_mode(); } }; template class SetReadModeAction : public Action, public Parented { void play(Ts... x) override { this->parent_->read_mode(); } }; template class SetEmulationMessageAction : public Action, public Parented { TEMPLATABLE_VALUE(std::string, message) TEMPLATABLE_VALUE(bool, include_android_app_record) void play(Ts... x) override { this->parent_->set_tag_emulation_message(this->message_.optional_value(x...), this->include_android_app_record_.optional_value(x...)); } }; template class SetWriteMessageAction : public Action, public Parented { TEMPLATABLE_VALUE(std::string, message) TEMPLATABLE_VALUE(bool, include_android_app_record) void play(Ts... x) override { this->parent_->set_tag_write_message(this->message_.optional_value(x...), this->include_android_app_record_.optional_value(x...)); } }; template class SetWriteModeAction : public Action, public Parented { void play(Ts... x) override { this->parent_->write_mode(); } }; } // namespace pn7160 } // namespace esphome