#pragma once #include "esphome/core/automation.h" #include "esphome/core/component.h" #include "esphome/components/pn7150/pn7150.h" namespace esphome { namespace pn7150 { class PN7150OnEmulatedTagScanTrigger : public Trigger<> { public: explicit PN7150OnEmulatedTagScanTrigger(PN7150 *parent) { parent->add_on_emulated_tag_scan_callback([this]() { this->trigger(); }); } }; class PN7150OnFinishedWriteTrigger : public Trigger<> { public: explicit PN7150OnFinishedWriteTrigger(PN7150 *parent) { parent->add_on_finished_write_callback([this]() { this->trigger(); }); } }; template class PN7150IsWritingCondition : 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 pn7150 } // namespace esphome