29 void play(const Ts &...
x)
override {
30 this->
parent_->enqueue(make_unique<PowerCommand>(0));
31 if (this->factory_reset_.has_value() && this->factory_reset_.value(
x...) ==
true) {
32 this->parent_->enqueue(make_unique<FactoryResetCommand>());
34 if (this->det_min1_.has_value() && this->det_max1_.has_value()) {
36 const float min1 = this->det_min1_.value(x...);
38 const float max1 = this->det_max1_.value(x...);
40 this->parent_->enqueue(make_unique<DetRangeCfgCommand>(
41 min1, max1, this->det_min2_.value_or(x..., -1), this->det_max2_.value_or(x..., -1),
42 this->det_min3_.value_or(x..., -1), this->det_max3_.value_or(x..., -1),
43 this->det_min4_.value_or(x..., -1), this->det_max4_.value_or(x..., -1)));
47 if (this->delay_after_detect_.has_value() && this->delay_after_disappear_.has_value()) {
48 float detect = this->delay_after_detect_.value(x...);
49 float disappear = this->delay_after_disappear_.value(x...);
50 if (detect >= 0 && disappear >= 0) {
51 this->parent_->enqueue(make_unique<SetLatencyCommand>(detect, disappear));
54 if (this->start_after_power_on_.has_value()) {
55 int8_t val = this->start_after_power_on_.value(x...);
57 this->parent_->enqueue(make_unique<SensorCfgStartCommand>(val));
60 if (this->turn_on_led_.has_value()) {
61 int8_t val = this->turn_on_led_.value(x...);
63 this->parent_->enqueue(make_unique<LedModeCommand>(val));
66 if (this->presence_via_uart_.has_value()) {
67 int8_t val = this->presence_via_uart_.value(x...);
69 this->parent_->enqueue(make_unique<UartOutputCommand>(val));
72 if (this->sensitivity_.has_value()) {
73 int8_t val = this->sensitivity_.value(x...);
78 this->parent_->enqueue(make_unique<SensitivityCommand>(val));
81 this->parent_->enqueue(make_unique<SaveCfgCommand>());
82 this->parent_->enqueue(make_unique<PowerCommand>(1));